SyncClientTask.java 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package de.tudarmstadt.informatik.hostage.sync.wifi_direct.sync_tasks;
  2. import android.content.Context;
  3. import android.util.Log;
  4. import de.tudarmstadt.informatik.hostage.logging.SyncData;
  5. import de.tudarmstadt.informatik.hostage.logging.SyncInfo;
  6. import de.tudarmstadt.informatik.hostage.persistence.HostageDBOpenHelper;
  7. import de.tudarmstadt.informatik.hostage.sync.Synchronizer;
  8. import de.tudarmstadt.informatik.hostage.sync.wifi_direct.WiFiP2pClientTask;
  9. import de.tudarmstadt.informatik.hostage.sync.wifi_direct.WiFiP2pSerializableObject;
  10. /**
  11. * Created by Julien on 14.01.2015.
  12. */
  13. public class SyncClientTask extends WiFiP2pClientTask {
  14. private HostageDBOpenHelper mdbh;
  15. private Synchronizer synchronizer;
  16. public SyncClientTask(String hostIP, BackgroundTaskCompletionListener l, Context context) {
  17. super(hostIP, l);
  18. mdbh = new HostageDBOpenHelper(context);
  19. synchronizer = new Synchronizer(mdbh);
  20. }
  21. @Override
  22. public WiFiP2pSerializableObject handleReceivedObject(WiFiP2pSerializableObject receivedObj) {
  23. if (receivedObj == null) {
  24. Log.i("WiFiP2p_Client", "Starting sync process: " + SyncHostTask.SYNC_INFO_REQUEST);
  25. SyncInfo thisSyncInfo = synchronizer.getSyncInfo();
  26. WiFiP2pSerializableObject syncObj = new WiFiP2pSerializableObject();
  27. syncObj.setObjectToSend(thisSyncInfo);
  28. syncObj.setMethodName(SyncHostTask.SYNC_INFO_REQUEST);
  29. return syncObj;
  30. } else {
  31. Log.i("WiFiP2p_Client", "Received: " + receivedObj.getMethodName());
  32. if (receivedObj.getMethodName().equals(SyncHostTask.SYNC_INFO_RESPONSE)) {
  33. SyncInfo sinfo = (SyncInfo) receivedObj.getObjectToSend();
  34. if (sinfo != null && (sinfo instanceof SyncInfo)) {
  35. Log.i("WiFiP2p_Client", "Sending Data: " + SyncHostTask.SYNC_DATA_REQUEST);
  36. SyncData syncData = synchronizer.getSyncData(sinfo);
  37. WiFiP2pSerializableObject syncObj = new WiFiP2pSerializableObject();
  38. syncObj.setObjectToSend(syncData);
  39. syncObj.setMethodName(SyncHostTask.SYNC_DATA_REQUEST);
  40. return syncObj;
  41. }
  42. } else if (receivedObj.getMethodName().equals(SyncHostTask.SYNC_DATA_RESPONSE)) {
  43. Log.i("WiFiP2p_Client", "Received Sync Data - ending sync process successfully." );
  44. SyncData sdata = (SyncData) receivedObj.getObjectToSend();
  45. if (sdata != null && (sdata instanceof SyncData)) {
  46. synchronizer.updateFromSyncData(sdata);
  47. }
  48. }
  49. }
  50. // DISCONNECT
  51. this.interrupt(true);
  52. return null;
  53. }
  54. }