SyncClientTask.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. SyncInfo thisSyncInfo = synchronizer.getSyncInfo();
  25. WiFiP2pSerializableObject syncObj = new WiFiP2pSerializableObject();
  26. syncObj.setObjectToSend(thisSyncInfo);
  27. syncObj.setMethodName(SyncHostTask.SYNC_INFO_REQUEST);
  28. return syncObj;
  29. } else {
  30. Log.i("WiFi Direct Client", "Received: " + receivedObj.getMethodName());
  31. if (receivedObj.getMethodName().equals(SyncHostTask.SYNC_INFO_RESPONSE)) {
  32. SyncInfo sinfo = (SyncInfo) receivedObj.getObjectToSend();
  33. if (sinfo != null && sinfo.getClass().isInstance(SyncInfo.class)) {
  34. SyncData syncData = synchronizer.getSyncData(sinfo);
  35. WiFiP2pSerializableObject syncObj = new WiFiP2pSerializableObject();
  36. syncObj.setObjectToSend(syncData);
  37. syncObj.setMethodName(SyncHostTask.SYNC_DATA_REQUEST);
  38. return syncObj;
  39. }
  40. } else if (receivedObj.getMethodName().equals(SyncHostTask.SYNC_DATA_RESPONSE)) {
  41. SyncData sdata = (SyncData) receivedObj.getObjectToSend();
  42. if (sdata != null && sdata.getClass().isInstance(SyncData.class)) {
  43. synchronizer.updateFromSyncData(sdata);
  44. }
  45. }
  46. }
  47. // DISCONNECT
  48. this.interrupt(true);
  49. return null;
  50. }
  51. }