Android Open Source - latrobe-datacapture-dir Data Service Connection






From Project

Back to project page latrobe-datacapture-dir.

License

The source code is released under:

MIT License

If you think the Android project latrobe-datacapture-dir 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

package com.example.DataCaptureApp.data;
//from w  ww  .j  ava  2s  .  co  m
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.IBinder;
import android.util.Log;

/**
 * Created by Tom on 26/10/2014.
 */
public class DataServiceConnection implements ServiceConnection, IEventSource
{
    private Context mContext;
    private DataService mService;
    private IEventListener mServiceListener;
    private Class mDataServiceClass;
    private boolean mIsBound = false;

    public DataServiceConnection(Class dataServiceClass)
    {
        mDataServiceClass = dataServiceClass;
        if(!DataService.class.isAssignableFrom(mDataServiceClass))
        {
            throw new IllegalArgumentException("Given class must be subclass of DataService class!");
        }
    }

    @Override
    public void onServiceConnected(ComponentName name, IBinder binder)
    {
        mService = ((DataService.LocalBinder)binder).getService();
        mServiceListener.onEvent(this, Event.SERVICE_AVAILABLE, mService);
    }

    @Override
    public void onServiceDisconnected(ComponentName name)
    {
        // Handling local services, this callback should not be called!
        Log.d("DataServiceConnection", "onServiceDisconnected callback!");
    }

    public void bind(Context context, IEventListener serviceListener)
    {
        if(!mIsBound)
        {
            mServiceListener = serviceListener;
            context.bindService(new Intent(context, mDataServiceClass), this, Context.BIND_AUTO_CREATE);
            mContext = context;
            mIsBound = true;
        }
        else
        {
            Log.d("DataServiceConnection", "Attempted binding while bound!");
        }
    }

    public void unbind()
    {
        if(mIsBound)
        {
            // Unbind
            mContext.unbindService(this);
            mContext = null;
            mServiceListener = null;
            mIsBound = false;
        }
        else
        {
            Log.d("DataServiceConnection", "Attempted unbinding while unbound!");
        }
    }

    public void start(Context context)
    {
        context.startService(new Intent(context, mDataServiceClass));
    }

    public void stop(Context context)
    {
        mContext.stopService(new Intent(context, mDataServiceClass));
    }

    @Override
    public void setEventListener(IEventListener listener)
    {
        mServiceListener = listener;
    }

    public boolean isBound()
    {
        return mIsBound;
    }

    public DataService getService()
    {
        return mService;
    }
}




Java Source Code List

com.example.DataCaptureApp.AdvConfigActivity.java
com.example.DataCaptureApp.ConfigActivity.java
com.example.DataCaptureApp.MasterActivity.java
com.example.DataCaptureApp.MasterService.java
com.example.DataCaptureApp.SlaveActivity.java
com.example.DataCaptureApp.SlaveService.java
com.example.DataCaptureApp.data.DataServiceConnection.java
com.example.DataCaptureApp.data.DataService.java
com.example.DataCaptureApp.data.DataTransform.java
com.example.DataCaptureApp.data.Data.java
com.example.DataCaptureApp.data.Event.java
com.example.DataCaptureApp.data.FailedInitialisationException.java
com.example.DataCaptureApp.data.IDataEventListener.java
com.example.DataCaptureApp.data.IDataListener.java
com.example.DataCaptureApp.data.IDataSource.java
com.example.DataCaptureApp.data.IDataTransform.java
com.example.DataCaptureApp.data.IEventListener.java
com.example.DataCaptureApp.data.IEventSource.java
com.example.DataCaptureApp.services.BluetoothConnectivityService.java
com.example.DataCaptureApp.services.BluetoothThread.java
com.example.DataCaptureApp.services.DataDbContract.java
com.example.DataCaptureApp.services.DataDbHelper.java
com.example.DataCaptureApp.services.DataStoreService.java
com.example.DataCaptureApp.services.HttpThread.java
com.example.DataCaptureApp.services.RemoteConnectivityService.java
com.example.DataCaptureApp.services.SensorSampleService.java
com.example.DataCaptureApp.services.SensorSampler.java
com.example.DataCaptureApp.testing.BluetoothActivity.java
com.example.DataCaptureApp.testing.DataStoreActivity.java
com.example.DataCaptureApp.testing.DataTester.java
com.example.DataCaptureApp.testing.IServiceListener.java
com.example.DataCaptureApp.testing.MainService.java
com.example.DataCaptureApp.testing.MasterTestActivity.java
com.example.DataCaptureApp.testing.RandomService.java
com.example.DataCaptureApp.testing.RemoteActivity.java
com.example.DataCaptureApp.testing.SensorSampleActivity.java
com.example.DataCaptureApp.testing.ServiceTestActivity.java
com.example.DataCaptureApp.testing.SlaveTestActivity.java
com.example.DataCaptureApp.testing.TestActivity.java
com.example.DataCaptureApp.transforms.AggregatorDataTransform.java
com.example.DataCaptureApp.transforms.ArithmeticDataTransform.java
com.example.DataCaptureApp.transforms.ArrayCollectDataTransform.java
com.example.DataCaptureApp.transforms.ArraySplitDataTransform.java
com.example.DataCaptureApp.transforms.DeserialiseDataTransform.java
com.example.DataCaptureApp.transforms.FieldCopyDataTransform.java
com.example.DataCaptureApp.transforms.FieldModifyDataTransform.java
com.example.DataCaptureApp.transforms.FieldRenameDataTransform.java
com.example.DataCaptureApp.transforms.IntervalAggregatorDataTransform.java
com.example.DataCaptureApp.transforms.PackDataTransform.java
com.example.DataCaptureApp.transforms.QuaternionDifferenceDataTransform.java
com.example.DataCaptureApp.transforms.RemoveDataTransform.java
com.example.DataCaptureApp.transforms.SetDataTransform.java
com.example.DataCaptureApp.transforms.UnpackDataTransform.java
com.example.DataCaptureApp.utils.BroadcastDataSource.java
com.example.DataCaptureApp.utils.ByteUtils.java
com.example.DataCaptureApp.utils.DataEventHandler.java
com.example.DataCaptureApp.utils.DataHandlerThread.java
com.example.DataCaptureApp.utils.JSONReader.java
com.example.DataCaptureApp.utils.Quaternion.java
com.example.DataCaptureApp.utils.SerialisationUtils.java