From 19b316644e88a12281b92b890d156bea07572ddd Mon Sep 17 00:00:00 2001 From: Aditya-Sood Date: Fri, 2 Aug 2019 11:47:14 +0530 Subject: [PATCH] Refactor WifiDirectManager - Consolidate the wifi direct transfer cleanup code in WDM - Cleanup now performed by WDM, initiated by the destroyWifiDirectManager() call in onDestroy() --- .../LocalFileTransferActivity.java | 12 +++++----- .../ReceiverDeviceAsyncTask.java | 2 +- .../WifiDirectManager.java | 22 ++++++++++--------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/LocalFileTransferActivity.java b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/LocalFileTransferActivity.java index d8066d3f6..8e8dfa17e 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/LocalFileTransferActivity.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/LocalFileTransferActivity.java @@ -133,11 +133,11 @@ public class LocalFileTransferActivity extends AppCompatActivity implements actionBar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - wifiDirectManager.closeLocalFileTransferActivity(); + finish(); } }); - wifiDirectManager.initialiseWifiDirectManager(alertDialogShower); + wifiDirectManager.createWifiDirectManager(alertDialogShower); listViewPeerDevices.setAdapter( new WifiPeerListAdapter(this, R.layout.row_peer_device, peerDevices)); @@ -269,7 +269,7 @@ public class LocalFileTransferActivity extends AppCompatActivity implements if (clientAddress == null) { // null is returned only in case of a failed handshake showToast(this, R.string.device_not_cooperating, Toast.LENGTH_LONG); - wifiDirectManager.closeLocalFileTransferActivity(); + finish(); return; } @@ -440,7 +440,7 @@ public class LocalFileTransferActivity extends AppCompatActivity implements Log.e(TAG, "Location permission not granted"); showToast(this, R.string.permission_refused_location, Toast.LENGTH_LONG); - wifiDirectManager.closeLocalFileTransferActivity(); + finish(); break; } @@ -448,7 +448,7 @@ public class LocalFileTransferActivity extends AppCompatActivity implements Log.e(TAG, "Storage write permission not granted"); showToast(this, R.string.permission_refused_storage, Toast.LENGTH_LONG); - wifiDirectManager.closeLocalFileTransferActivity(); + finish(); break; } @@ -574,6 +574,6 @@ public class LocalFileTransferActivity extends AppCompatActivity implements @Override protected void onDestroy() { super.onDestroy(); - cancelAsyncTasks(); + wifiDirectManager.destroyWifiDirectManager(); } } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/ReceiverDeviceAsyncTask.java b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/ReceiverDeviceAsyncTask.java index ceb152f66..f5ca691a2 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/ReceiverDeviceAsyncTask.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/ReceiverDeviceAsyncTask.java @@ -119,6 +119,6 @@ class ReceiverDeviceAsyncTask extends AsyncTask { Toast.LENGTH_LONG); } - (localFileTransferActivity).wifiDirectManager.closeLocalFileTransferActivity(); + localFileTransferActivity.finish(); } } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/WifiDirectManager.java b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/WifiDirectManager.java index 20ad7f335..dc13a7de4 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/WifiDirectManager.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/WifiDirectManager.java @@ -57,7 +57,7 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2 } /* Initialisations for using the WiFi P2P API */ - public void initialiseWifiDirectManager(@NonNull AlertDialogShower alertDialogShower) { + public void createWifiDirectManager(@NonNull AlertDialogShower alertDialogShower) { this.alertDialogShower = alertDialogShower; manager = (WifiP2pManager) activity.getSystemService(Context.WIFI_P2P_SERVICE); @@ -213,14 +213,14 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2 } // TODO: Shift async tasks to WDM and handle cleanup from here itself - public void closeLocalFileTransferActivity() { + public void destroyWifiDirectManager() { activity.cancelAsyncTasks(); - activity.isFileSender = false; - if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { - channel.close(); + if (!activity.isFileSender) { + disconnect(); + } else { + closeChannel(); } - disconnect(); } public void disconnect() { @@ -229,19 +229,21 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2 @Override public void onFailure(int reasonCode) { Log.d(TAG, "Disconnect failed. Reason: " + reasonCode); - closeActivity(); + closeChannel(); } @Override public void onSuccess() { Log.d(TAG, "Disconnect successful"); - closeActivity(); + closeChannel(); } }); } - public void closeActivity() { - activity.finish(); + public void closeChannel() { + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { + channel.close(); + } }