|
@@ -8,6 +8,7 @@ import android.content.DialogInterface;
|
|
|
import android.content.Intent;
|
|
|
import android.net.wifi.p2p.WifiP2pDevice;
|
|
|
import android.net.wifi.p2p.WifiP2pInfo;
|
|
|
+import android.os.AsyncTask;
|
|
|
import android.os.Bundle;
|
|
|
import android.provider.Settings;
|
|
|
import android.util.Log;
|
|
@@ -128,6 +129,7 @@ public class WiFiP2pSyncActivity extends Activity implements AdapterView.OnItemC
|
|
|
if (this.clientTask != null) this.clientTask.interrupt(true);
|
|
|
if (this.hostTask != null) this.hostTask.interrupt(true);
|
|
|
|
|
|
+ this.wifiEventHandler().disconnect();
|
|
|
this.wifiEventHandler().stopService();
|
|
|
super.onPause();
|
|
|
}
|
|
@@ -173,20 +175,20 @@ public class WiFiP2pSyncActivity extends Activity implements AdapterView.OnItemC
|
|
|
|
|
|
@Override
|
|
|
public void discoveredDevices(List<WifiP2pDevice> peers) {
|
|
|
- Log.d("WiFiP2pSyncActivity", "Actualise devices list");
|
|
|
+ Log.d("DEBUG_WiFiP2pSyncActivity", "Actualise devices list");
|
|
|
this.activity.updateDeviceListView(peers);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void wifiP2pIsEnabled(boolean enabled) {
|
|
|
String tmp = enabled? "enabled" : "disabled";
|
|
|
- Log.d("WiFiP2pSyncActivity", "Peer to peer is " + tmp + ".");
|
|
|
+ Log.d("DEBUG_WiFiP2pSyncActivity", "Peer to peer is " + tmp + ".");
|
|
|
this.activity.setWifiDirectAvailable(enabled);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void didConnect(boolean isHost, WifiP2pInfo connectionInfo) {
|
|
|
- Log.d("WiFiP2pSyncActivity", "Did connect");
|
|
|
+ Log.d("DEBUG_WiFiP2pSyncActivity", "Did connect");
|
|
|
|
|
|
String progressTitle = PROGRESS_TITLE_LOADING;
|
|
|
if (this.activity.progressDialog != null){
|
|
@@ -197,41 +199,46 @@ public class WiFiP2pSyncActivity extends Activity implements AdapterView.OnItemC
|
|
|
|
|
|
this.activity.setHost(isHost);
|
|
|
if (isHost){
|
|
|
- Log.d("WiFiP2pSyncActivity", "Connected as HOST");
|
|
|
+ Log.d("DEBUG_WiFiP2pSyncActivity", "Connected as HOST");
|
|
|
this.activity.startHost();
|
|
|
} else {
|
|
|
- Log.d("WiFiP2pSyncActivity", "Connected as Client");
|
|
|
+ Log.d("DEBUG_WiFiP2pSyncActivity", "Connected as Client");
|
|
|
this.activity.startClient(connectionInfo);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void failedToConnect() {
|
|
|
- Log.d("WiFiP2pSyncActivity", "Failed to connect");
|
|
|
+ Log.d("DEBUG_WiFiP2pSyncActivity", "Failed to connect");
|
|
|
Toast.makeText(this.activity, COULD_NOT_CONNECT_MESSAGE , Toast.LENGTH_LONG).show();
|
|
|
- this.activity.progressDialog.dismiss();
|
|
|
+ if (this.activity.progressDialog != null){
|
|
|
+ this.activity.progressDialog.dismiss();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void didDisconnect() {
|
|
|
- Log.d("WiFiP2pSyncActivity", "Did disconnect");
|
|
|
- this.activity.progressDialog.dismiss();
|
|
|
+ Log.d("DEBUG_WiFiP2pSyncActivity", "Did disconnect");
|
|
|
+ if (this.activity.progressDialog != null){
|
|
|
+ this.activity.progressDialog.dismiss();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void failedToDisconnect() {
|
|
|
- Log.d("WiFiP2pSyncActivity", "Failed to disconnect");
|
|
|
+ Log.d("DEBUG_WiFiP2pSyncActivity", "Failed to disconnect");
|
|
|
//Toast.makeText(this.activity, "Could not disconnect with device. Retry.", Toast.LENGTH_LONG).show();
|
|
|
// Other device did disconnect a while before.
|
|
|
- this.activity.progressDialog.dismiss();
|
|
|
+ if (this.activity.progressDialog != null){
|
|
|
+ this.activity.progressDialog.dismiss();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void ownDeviceInformationIsUpdated(WifiP2pDevice device) {
|
|
|
- Log.d("WiFiP2pSyncActivity", "Updated device " + device.deviceName + " " + device.deviceAddress + ".");
|
|
|
+ Log.d("DEBUG_WiFiP2pSyncActivity", "Updated device " + device.deviceName + " " + device.deviceAddress + ".");
|
|
|
this.activity.updateOwnDeviceInformation(device);
|
|
|
this.activity.searchForDevices();
|
|
|
-
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -275,8 +282,10 @@ public class WiFiP2pSyncActivity extends Activity implements AdapterView.OnItemC
|
|
|
public void didSucceed() {
|
|
|
Toast.makeText(this.activity, SYNCHRONIZATION_COMPLETE_MESSAGE , Toast.LENGTH_SHORT).show();
|
|
|
this.activity.wifiEventHandler().disconnect();
|
|
|
- this.activity.hostTask.setInterrupted(true);
|
|
|
- this.activity.hostTask = null;
|
|
|
+ if (this.activity.hostTask != null){
|
|
|
+ this.activity.hostTask.setInterrupted(true);
|
|
|
+ this.activity.hostTask = null;
|
|
|
+ }
|
|
|
//this.activity.clientTask = null;
|
|
|
}
|
|
|
|
|
@@ -284,8 +293,10 @@ public class WiFiP2pSyncActivity extends Activity implements AdapterView.OnItemC
|
|
|
public void didFail() {
|
|
|
Toast.makeText(this.activity, SYNCHRONIZATION_FAILED_MESSAGE, Toast.LENGTH_LONG).show();
|
|
|
this.activity.wifiEventHandler().disconnect();
|
|
|
- this.activity.hostTask.setInterrupted(true);
|
|
|
- this.activity.hostTask = null;
|
|
|
+ if (this.activity.hostTask != null){
|
|
|
+ this.activity.hostTask.setInterrupted(true);
|
|
|
+ this.activity.hostTask = null;
|
|
|
+ }
|
|
|
//this.activity.clientTask = null;
|
|
|
}
|
|
|
}.init(this);
|
|
@@ -324,7 +335,7 @@ public class WiFiP2pSyncActivity extends Activity implements AdapterView.OnItemC
|
|
|
return this;
|
|
|
}
|
|
|
}.init(this.mLstP2PDevices));
|
|
|
- Log.d("WiFiP2pSyncActivity", " Discovered "+peers.size()+" devices.");
|
|
|
+ Log.d("DEBUG_WiFiP2pSyncActivity", " Discovered "+peers.size()+" devices.");
|
|
|
|
|
|
if (peers.size() == 0){
|
|
|
this.searchForDevices();
|
|
@@ -336,15 +347,16 @@ public class WiFiP2pSyncActivity extends Activity implements AdapterView.OnItemC
|
|
|
*/
|
|
|
private void startHost()
|
|
|
{
|
|
|
- if (this.hostTask == null || this.hostTask.isInterrupted()){
|
|
|
- Log.d("WiFiP2pSyncActivity", "Starting HOST Task");
|
|
|
+
|
|
|
+ //if (this.hostTask == null || this.hostTask.isInterrupted()){
|
|
|
+ Log.d("DEBUG_WiFiP2pSyncActivity", "Starting HOST Task");
|
|
|
//Toast.makeText(this, PERFORMING_TASK_AS_HOST , Toast.LENGTH_SHORT).show();
|
|
|
this.hostTask = new SyncHostTask(this.ownDevice, this.syncCompletionListener(), getApplicationContext());
|
|
|
this.executingTask = this.hostTask;
|
|
|
this.hostTask.execute();
|
|
|
- } else {
|
|
|
- Log.d("WiFiP2pSyncActivity", "Preventing third device for any syncing.");
|
|
|
- }
|
|
|
+ //} else {
|
|
|
+ // Log.d("DEBUG_WiFiP2pSyncActivity", "Preventing third device for any syncing.");
|
|
|
+ //}
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -353,7 +365,7 @@ public class WiFiP2pSyncActivity extends Activity implements AdapterView.OnItemC
|
|
|
*/
|
|
|
private void startClient(WifiP2pInfo info)
|
|
|
{
|
|
|
- Log.d("WiFiP2pSyncActivity", "Starting CLIENT Task");
|
|
|
+ Log.d("DEBUG_WiFiP2pSyncActivity", "Starting CLIENT Task");
|
|
|
this.clientTask = new SyncClientTask( info.groupOwnerAddress.getHostAddress(),this.ownDevice, this.syncCompletionListener(), getApplicationContext() );
|
|
|
this.executingTask = this.clientTask;
|
|
|
this.clientTask.execute();
|
|
@@ -367,12 +379,27 @@ public class WiFiP2pSyncActivity extends Activity implements AdapterView.OnItemC
|
|
|
String connectionTitle = PROGRESS_TITLE_CONNECTING;
|
|
|
if (device != null){
|
|
|
if (progressDialog == null){
|
|
|
- this.progressDialog = ProgressDialog.show(this, "", connectionTitle);
|
|
|
+ this.progressDialog = ProgressDialog.show(this, "", PROGRESS_TITLE_CONNECTING);
|
|
|
} else {
|
|
|
- progressDialog.setTitle(connectionTitle);
|
|
|
+ this.progressDialog.setTitle(PROGRESS_TITLE_CONNECTING);
|
|
|
}
|
|
|
+ new Thread()
|
|
|
+ {
|
|
|
+ public void run()
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ sleep(20);
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+ }
|
|
|
+ progressDialog.setTitle(PROGRESS_TITLE_CONNECTING);
|
|
|
+ }
|
|
|
+ }.start();
|
|
|
mOtherDevice = device;
|
|
|
this.wifiEventHandler().connect(device);
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -498,6 +525,8 @@ public class WiFiP2pSyncActivity extends Activity implements AdapterView.OnItemC
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* Array adapter for ListFragment that maintains WifiP2pDevice list.
|
|
|
*/
|