Android Open Source - Look Service Manager






From Project

Back to project page Look.

License

The source code is released under:

====================== LOOK! LICENSING TERMS ====================== look! is licensed under the BSD 3-Clause (also known as "BSD New" or "BSD Simplified"), as follows: Copyright (c) 2010-2012, Look...

If you think the Android project Look listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
*-----------------------------------------------------------------------------
* Copyright (c) 2012, Look! Development Team
* All rights reserved.//  w  w  w . j ava2s .  c  o  m
*
* Distributed under the terms of the BSD Simplified License.
*
* The full license is in the LICENSE file, distributed with this software.
*-----------------------------------------------------------------------------
*/
package es.ucm.look.data.remote.restful;

import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Handler;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
import android.widget.Toast;
import es.ucm.look.data.remote.LookProperties;

/**
 * The ServiceManager is the one who connect the service and manage their
 * Callbacks
 * 
 * @author Sergio
 * 
 */
public class ServiceManager {

  protected static final String LOG_TAG = "Look ServiceManager";
  public RemoteDataHandler restfulService;
  protected RestfulServiceConnection conn;
  protected boolean started = false;
  protected Context context;

  /**
   * Constructor class
   * @param context
   *     Context application
   */
  public ServiceManager(Context context) {
    this.context = context;
  }

  /**
   * To start the service
   */
  public void startService() {
    if (started) {
      Toast.makeText(context, "Service already started",
          Toast.LENGTH_SHORT).show();
    } else {

      Intent i = new Intent(context, LookService.class);
      context.startService(i);
      started = true;
    }
  }

  /**
   * To stop the service
   */
  public void stopService() {
    if (!started) {
      Toast.makeText(context, "Service not yet started",
          Toast.LENGTH_SHORT).show();
    } else {
      Intent i = new Intent(context, LookService.class);
      context.stopService(i);
      started = false;
    }
  }

  /**
   * To bind the Service
   */
  public void bindService() {
    if (conn == null) {
      conn = new RestfulServiceConnection();
      Intent i = new Intent(context, LookService.class);
      boolean connection = context.bindService(i, conn,
          Context.BIND_AUTO_CREATE);
      if (!connection) {
        Log.i(LOG_TAG,
            "There is a serious problem with bindService on ServiceManager");
      }

    } else {
      Toast.makeText(context, "Cannot bind - service already bound",
          Toast.LENGTH_SHORT).show();
    }
  }

  /**
   * Destroy the service
   */
  public void destroy() {
    releaseService();
  }

  /**
   * Release the service
   */
  private void releaseService() {
    if (conn != null) {
      context.unbindService(conn);
      conn = null;
      Log.d(LOG_TAG, "unbindService()");
    } else {
      Toast.makeText(context, "Cannot unbind - service not bound",
          Toast.LENGTH_SHORT).show();
    }
  }

  /**
   * To do the Connection in the service with the callbaks
   * @author Sergio
   *
   */
  public class RestfulServiceConnection implements ServiceConnection {
    @Override
    public void onServiceConnected(ComponentName className,
        IBinder boundService) {
      restfulService = RemoteDataHandler.Stub
          .asInterface((IBinder) boundService);
      try {
        restfulService.registerCallback(mCallback);
      } catch (RemoteException e) {
      }
    }

    @Override
    public void onServiceDisconnected(ComponentName className) {
      restfulService = null;
    }
  };

  /**
   * To Manage the Callbacks
   */
  private IRemoteServiceCallback mCallback = new IRemoteServiceCallback.Stub() {

    @Override
    public void userLogIn(String result) throws RemoteException {
      if (mHandler != null)
        mHandler.sendMessage(mHandler.obtainMessage(
            LookProperties.ACTION_LOGIN, result));

    }

    @Override
    public void sendResponse1(String result) throws RemoteException {
      if (mHandler != null)
        mHandler.sendMessage(mHandler.obtainMessage(
            LookProperties.ACTION_ADD_ELEMENT, result));

    }

    @Override
    public void sendResponse2(String result) throws RemoteException {
      if (mHandler != null)
        mHandler.sendMessage(mHandler.obtainMessage(
            LookProperties.UPDATE_DB, result));

    }

    @Override
    public void sendResponse3(String result) throws RemoteException {
      if (mHandler != null)
        mHandler.sendMessage(mHandler.obtainMessage(
            LookProperties.ACTION_MODIFY_PROPERTY, result));

    }
  };

  
  private Handler mHandler;

  /**
   * Set the handler to retrive the Callbacks to an application
   * 
   * @param handler
   */
  public void setHandler(Handler handler) {
    mHandler = handler;
  }
}




Java Source Code List

es.ucm.look.ar.LookAR.java
es.ucm.look.ar.Preview.java
es.ucm.look.ar.ar2D.AR2D.java
es.ucm.look.ar.ar2D.Drawable2D.java
es.ucm.look.ar.ar2D.HUDElement.java
es.ucm.look.ar.ar2D.drawables.Circle2D.java
es.ucm.look.ar.ar2D.drawables.Image2D.java
es.ucm.look.ar.ar2D.drawables.Text2D.java
es.ucm.look.ar.ar3D.Drawable3D.java
es.ucm.look.ar.ar3D.Renderer3D.java
es.ucm.look.ar.ar3D.core.Color4.java
es.ucm.look.ar.ar3D.core.TextureFactory.java
es.ucm.look.ar.ar3D.core.camera.Camera3D.java
es.ucm.look.ar.ar3D.core.camera.OrientedCamera.java
es.ucm.look.ar.ar3D.core.drawables.DrawablesDataBase.java
es.ucm.look.ar.ar3D.core.drawables.Entity3D.java
es.ucm.look.ar.ar3D.core.drawables.Mesh3D.java
es.ucm.look.ar.ar3D.core.drawables.primitives.CirclePrimitive.java
es.ucm.look.ar.ar3D.core.drawables.primitives.Cube.java
es.ucm.look.ar.ar3D.core.drawables.primitives.Grid.java
es.ucm.look.ar.ar3D.core.drawables.primitives.LinePrimitive.java
es.ucm.look.ar.ar3D.core.drawables.primitives.LinesLoopPrimitive.java
es.ucm.look.ar.ar3D.core.drawables.primitives.ObjMesh3D.java
es.ucm.look.ar.ar3D.core.drawables.primitives.PointPrimitive.java
es.ucm.look.ar.ar3D.core.drawables.primitives.Ring.java
es.ucm.look.ar.ar3D.core.drawables.primitives.SquarePrimitive.java
es.ucm.look.ar.ar3D.core.drawables.primitives.TrianglePrimitive.java
es.ucm.look.ar.ar3D.core.drawables.primitives.extra.ImagePrimitive.java
es.ucm.look.ar.ar3D.parser.MeshObjParser.java
es.ucm.look.ar.hud.ActionListener.java
es.ucm.look.ar.hud.BasicHud.java
es.ucm.look.ar.hud.Button.java
es.ucm.look.ar.hud.HUD.java
es.ucm.look.ar.listeners.CameraListener.java
es.ucm.look.ar.listeners.TouchListener.java
es.ucm.look.ar.math.collision.Armature.java
es.ucm.look.ar.math.collision.SphericalArmature.java
es.ucm.look.ar.math.collision.SquareArmature.java
es.ucm.look.ar.math.collision.debug.DebugArmature.java
es.ucm.look.ar.math.collision.debug.SphericalDebugArmature.java
es.ucm.look.ar.math.collision.debug.SquareDebugArmature.java
es.ucm.look.ar.math.geom.Matrix3.java
es.ucm.look.ar.math.geom.Plane.java
es.ucm.look.ar.math.geom.Point2.java
es.ucm.look.ar.math.geom.Point3.java
es.ucm.look.ar.math.geom.Ray.java
es.ucm.look.ar.math.geom.Triangle.java
es.ucm.look.ar.math.geom.Vector3.java
es.ucm.look.ar.util.CameraParametersHelper.java
es.ucm.look.ar.util.DeviceOrientation.java
es.ucm.look.ar.util.LookARUtil.java
es.ucm.look.ar.util.PositionTimerTask.java
es.ucm.look.data.EntityData.java
es.ucm.look.data.LookData.java
es.ucm.look.data.WorldEntityFactory.java
es.ucm.look.data.WorldEntity.java
es.ucm.look.data.World.java
es.ucm.look.data.filesManager.LookFilesManager.java
es.ucm.look.data.interfaces.DataGetter.java
es.ucm.look.data.interfaces.DataHandler.java
es.ucm.look.data.interfaces.DataSetter.java
es.ucm.look.data.local.BasicDataHandler.java
es.ucm.look.data.local.DBDataHandler.java
es.ucm.look.data.local.contentprovider.LookContentProvider.java
es.ucm.look.data.local.contentprovider.sql.LookSQLContentProvider.java
es.ucm.look.data.local.contentprovider.sql.LookSQLHelper.java
es.ucm.look.data.remote.ConfigNet.java
es.ucm.look.data.remote.LookProperties.java
es.ucm.look.data.remote.RemoteDBHandler.java
es.ucm.look.data.remote.restful.LookService.java
es.ucm.look.data.remote.restful.RestMethod.java
es.ucm.look.data.remote.restful.ServiceManager.java
es.ucm.look.location.LocationManager.java
es.ucm.look.locationProvider.DeviceSensor.java
es.ucm.look.locationProvider.InertialNavigationSystem.java
es.ucm.look.locationProvider.LocationProvider.java
es.ucm.look.locationProvider.Motion.java
es.ucm.look.locationProvider.Positioning.java
es.ucm.look.locationProvider.Util.java
es.ucm.look.locationProviderWifi.Cliente.java
es.ucm.look.locationProviderWifi.WifiLocation.java
es.ucm.look.locationProviderWifi.WifiService.java
es.ucm.look.locationProviderWifi.util.DateUtils.java
es.ucm.look.locationProviderWifi.util.DeviceReader.java
es.ucm.look.locationProviderWifi.util.DeviceWriter.java
es.ucm.look.locationProviderWifi.wifi.Lugar.java
es.ucm.look.locationProviderWifi.wifi.Lugares.java
es.ucm.look.locationProviderWifi.wifi.NodoWifi.java
es.ucm.look.locationProvider.map.Mapa.java
es.ucm.look.locationProvider.test.java