From 2066db6bd9546943a8bd1919306dc562f44d810c Mon Sep 17 00:00:00 2001 From: Aditya-Sood Date: Sun, 23 Jun 2019 19:26:14 +0530 Subject: [PATCH] Increment: Improve flow of LocalFileTransfer activity - File receiver device can not initiate connection anymore - Activity closes on both devices once transfer is complete --- .../DeviceListFragment.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/DeviceListFragment.java b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/DeviceListFragment.java index c4a68e084..537eb952b 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/DeviceListFragment.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/DeviceListFragment.java @@ -77,6 +77,7 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P private boolean fileSender = false; private ArrayList fileUriList; private int totalFiles = -1; + private int totalFilesSent = 0; private ArrayList fileNames; @Override @@ -141,6 +142,9 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P @Override public void onListItemClick(ListView l, View v, int position, long id) { + if(!isFileSender()) + return; + selectedPeerDevice = (WifiP2pDevice) getListAdapter().getItem(position); Toast.makeText(getActivity(), selectedPeerDevice.deviceName, Toast.LENGTH_SHORT).show(); @@ -232,6 +236,14 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P return fileUriList; } + public void incrementTotalFilesSent() { + this.totalFilesSent++; + } + + public boolean allFilesSent() { + return (totalFilesSent == totalFiles); + } + private void startFileTransfer() { if(groupInfo.groupFormed && !fileSender) { new FileServerAsyncTask(getActivity(), this).execute(); @@ -553,6 +565,16 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P return ""; } } + + @Override + protected void onPostExecute(String s) { + // + deviceListFragment.incrementTotalFilesSent(); + + if(deviceListFragment.allFilesSent()) { + deviceListFragment.getActivity().finish(); + } + } } public static class FileServerAsyncTask extends AsyncTask { @@ -612,6 +634,7 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P super.onPostExecute(s); Toast.makeText(context, "File transfer complete", Toast.LENGTH_LONG).show(); Log.d(LocalFileTransferActivity.TAG, "File transfer complete"); + deviceListFragment.getActivity().finish(); /*File recvFile = new File(filePath); Uri fileUri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID+".fileprovider",recvFile);