Skip to content

Commit

Permalink
Added SimpleCallback rather than asyncTask fixes Mariuxtheone#3
Browse files Browse the repository at this point in the history
  • Loading branch information
thedamfr committed Aug 8, 2014
1 parent e26cfe0 commit d1365cb
Showing 1 changed file with 49 additions and 19 deletions.
Expand Up @@ -46,6 +46,8 @@ public class TeleportClient implements DataApi.DataListener,
// private AsyncTask<?,?,?> asyncTask;
private OnSyncDataItemTask onSyncDataItemTask;
private OnGetMessageTask onGetMessageTask;
private OnSyncDataItemCallback onSyncDataItemCallback;
private OnGetMessageCallback onGetMessageCallback;

private Handler mHandler;

Expand Down Expand Up @@ -97,8 +99,15 @@ public void onDataChanged(DataEventBuffer dataEvents) {

DataMapItem dataMapItem = DataMapItem.fromDataItem(event.getDataItem());
DataMap dataMap = dataMapItem.getDataMap();
if (onSyncDataItemTask!=null)
boolean flagHandled = false;
if (onSyncDataItemCallback != null) {
onSyncDataItemCallback.onDataSync(dataMap);
flagHandled = true;
}
if (!flagHandled && onSyncDataItemTask != null) {
onSyncDataItemTask.execute(dataMap);
flagHandled = true;
}

} else if (event.getType() == DataEvent.TYPE_DELETED) {
Log.d("DataItem Deleted", event.getDataItem().toString());
Expand Down Expand Up @@ -183,8 +192,7 @@ public void onResult(DataApi.DataItemResult dataItemResult) {

/**
* Get the TeleportTask that will be executed when a DataItem is synced
*
*/
*/
public OnSyncDataItemTask getOnSyncDataItemTask() {
return onSyncDataItemTask;
}
Expand All @@ -200,12 +208,19 @@ public void setOnSyncDataItemTask(OnSyncDataItemTask onSyncDataItemTask) {
}


/**
* Set the Callback to be executed when a DataItem is synced
*
* @param onSyncDataItemCallback A Task that extends TeleportTask that should be executed when a DataItem is Synced. Keep in mind it will be executed only once, so you might need to reset it.
*/
public void setOnSyncDataItemCallback(OnSyncDataItemCallback onSyncDataItemCallback) {
this.onSyncDataItemCallback = onSyncDataItemCallback;
}


/**
* AsyncTask that will be executed when a DataItem is synced. You should extend this task and implement the onPostExecute() method when implementing your Activity.
*
*
* */
*/
public abstract static class OnSyncDataItemTask extends AsyncTask<DataMap, Void, DataMap> {

protected DataMap doInBackground(DataMap... param) {
Expand All @@ -220,6 +235,10 @@ protected DataMap doInBackground(DataMap... param) {
protected abstract void onPostExecute(DataMap result);
}

public abstract static class OnSyncDataItemCallback {

abstract public void onDataSync(DataMap dataMap);
}

//-----------------MESSAGING------------------//

Expand Down Expand Up @@ -278,19 +297,24 @@ public void sendMessage(String path, byte[] payload) {
public void onMessageReceived(MessageEvent messageEvent) {
Log.d(TAG, "onMessageReceived() A message from watch was received:" + messageEvent.getRequestId() + " " + messageEvent.getPath());

boolean flagHandled = false;

if(onGetMessageCallback != null) {
String messagePath = messageEvent.getPath();
onGetMessageCallback.onCallback(messagePath);
flagHandled = true;
}

if (onGetMessageTask != null) {
String messagePath= messageEvent.getPath();
if (!flagHandled && onGetMessageTask != null) {
String messagePath = messageEvent.getPath();
onGetMessageTask.execute(messagePath);
}

}

/**
* AsyncTask that will be executed when a Message is received You should extend this task and implement the onPostExecute() method when implementing your Activity.
*
* */
*/
public abstract static class OnGetMessageTask extends AsyncTask<String, Void, String> {

protected String doInBackground(String... path) {
Expand All @@ -304,6 +328,10 @@ protected String doInBackground(String... path) {
}


public abstract static class OnGetMessageCallback {

abstract public void onCallback(String dataMap);
}


public OnGetMessageTask getOnGetMessageTask() {
Expand All @@ -314,6 +342,10 @@ public void setOnGetMessageTask(OnGetMessageTask onGetMessageTask) {
this.onGetMessageTask = onGetMessageTask;
}


public void setOnGetMessageCallback(OnGetMessageCallback onGetMessageCallback) {
this.onGetMessageCallback = onGetMessageCallback;
}
//---END MESSAGING ------

@Override
Expand All @@ -332,8 +364,6 @@ public void onConnectionFailed(ConnectionResult connectionResult) {
}




public GoogleApiClient getGoogleApiClient() {
return mGoogleApiClient;
}
Expand All @@ -343,24 +373,26 @@ public void setGoogleApiClient(GoogleApiClient mGoogleApiClient) {
}


/***
/**
* Task to elaborate image from an Asset. You must pass the Asset and the mTeleportClient.getGoogleApiClient
*/
public abstract static class ImageFromAssetTask extends AsyncTask<Object, Void,Bitmap>{
public abstract static class ImageFromAssetTask extends AsyncTask<Object, Void, Bitmap> {

@Override
protected Bitmap doInBackground(Object... params) {
InputStream assetInputStream = Wearable.DataApi.getFdForAsset(
(GoogleApiClient)params[1], (Asset)params[0]).await().getInputStream();
Bitmap bitmap= BitmapFactory.decodeStream(assetInputStream);
(GoogleApiClient) params[1], (Asset) params[0]).await().getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(assetInputStream);
return bitmap;

}

@Override
protected abstract void onPostExecute(Bitmap bitmap);

};
}

;


// /**
Expand All @@ -387,6 +419,4 @@ protected Bitmap doInBackground(Object... params) {
// }




}

0 comments on commit d1365cb

Please sign in to comment.