1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package de.tudarmstadt.informatik.hostage.sync.wifi_direct.sync_tasks;
- import android.content.Context;
- import android.util.Log;
- import de.tudarmstadt.informatik.hostage.logging.SyncData;
- import de.tudarmstadt.informatik.hostage.logging.SyncInfo;
- import de.tudarmstadt.informatik.hostage.persistence.HostageDBOpenHelper;
- import de.tudarmstadt.informatik.hostage.sync.Synchronizer;
- import de.tudarmstadt.informatik.hostage.sync.wifi_direct.WiFiP2pClientTask;
- import de.tudarmstadt.informatik.hostage.sync.wifi_direct.WiFiP2pSerializableObject;
- /**
- * Created by Julien on 14.01.2015.
- */
- public class SyncClientTask extends WiFiP2pClientTask {
- private HostageDBOpenHelper mdbh;
- private Synchronizer synchronizer;
- public SyncClientTask(String hostIP, BackgroundTaskCompletionListener l, Context context) {
- super(hostIP, l);
- mdbh = new HostageDBOpenHelper(context);
- synchronizer = new Synchronizer(mdbh);
- }
- @Override
- public WiFiP2pSerializableObject handleReceivedObject(WiFiP2pSerializableObject receivedObj) {
- if (receivedObj == null) {
- SyncInfo thisSyncInfo = synchronizer.getSyncInfo();
- WiFiP2pSerializableObject syncObj = new WiFiP2pSerializableObject();
- syncObj.setObjectToSend(thisSyncInfo);
- syncObj.setMethodName(SyncHostTask.SYNC_INFO_REQUEST);
- return syncObj;
- } else {
- Log.i("WiFi Direct Client", "Received: " + receivedObj.getMethodName());
- if (receivedObj.getMethodName().equals(SyncHostTask.SYNC_INFO_RESPONSE)) {
- SyncInfo sinfo = (SyncInfo) receivedObj.getObjectToSend();
- if (sinfo != null && sinfo.getClass().isInstance(SyncInfo.class)) {
- SyncData syncData = synchronizer.getSyncData(sinfo);
- WiFiP2pSerializableObject syncObj = new WiFiP2pSerializableObject();
- syncObj.setObjectToSend(syncData);
- syncObj.setMethodName(SyncHostTask.SYNC_DATA_REQUEST);
- return syncObj;
- }
- } else if (receivedObj.getMethodName().equals(SyncHostTask.SYNC_DATA_RESPONSE)) {
- SyncData sdata = (SyncData) receivedObj.getObjectToSend();
- if (sdata != null && sdata.getClass().isInstance(SyncData.class)) {
- synchronizer.updateFromSyncData(sdata);
- }
- }
- }
- // DISCONNECT
- this.interrupt(true);
- return null;
- }
- }
|