mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-22 03:54:18 -04:00
Increment: Add onFileTransferComplete() callback
- Async-tasks are now free of a LocalFileTransferActivity instance
This commit is contained in:
parent
2471385963
commit
e6fa97abba
@ -246,6 +246,11 @@ public class LocalFileTransferActivity extends AppCompatActivity implements
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFileTransferComplete() {
|
||||
finish();
|
||||
}
|
||||
|
||||
/* Helper methods used for checking permissions and states of services */
|
||||
private boolean checkCoarseLocationAccessPermission() { // Required by Android to detect wifi-p2p peers
|
||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
|
||||
|
@ -4,7 +4,6 @@ import android.os.AsyncTask;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import org.kiwix.kiwixmobile.BuildConfig;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
|
||||
@ -35,13 +34,10 @@ class ReceiverDeviceAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
||||
|
||||
private static final String TAG = "ReceiverDeviceAsyncTask";
|
||||
|
||||
private WeakReference<LocalFileTransferActivity> weakReferenceToActivity;
|
||||
private WifiDirectManager wifiDirectManager;
|
||||
private int fileItemIndex;
|
||||
private String incomingFileName;
|
||||
|
||||
public ReceiverDeviceAsyncTask(WifiDirectManager wifiDirectManager, LocalFileTransferActivity localFileTransferActivity) {
|
||||
this.weakReferenceToActivity = new WeakReference<>(localFileTransferActivity);
|
||||
this.wifiDirectManager = wifiDirectManager;
|
||||
}
|
||||
|
||||
@ -53,6 +49,7 @@ class ReceiverDeviceAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
||||
final String KIWIX_ROOT = wifiDirectManager.getZimStorageRootPath();
|
||||
int totalFileCount = wifiDirectManager.getTotalFilesForTransfer();
|
||||
boolean result = true;
|
||||
int fileItemIndex;
|
||||
|
||||
if (BuildConfig.DEBUG) Log.d(TAG, "Expecting "+totalFileCount+" files");
|
||||
|
||||
@ -115,13 +112,12 @@ class ReceiverDeviceAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
||||
protected void onPostExecute(Boolean allFilesReceived) {
|
||||
if (BuildConfig.DEBUG) Log.d(TAG, "File transfer complete");
|
||||
|
||||
final LocalFileTransferActivity localFileTransferActivity = weakReferenceToActivity.get();
|
||||
if (allFilesReceived) {
|
||||
wifiDirectManager.displayToast(R.string.file_transfer_complete, Toast.LENGTH_LONG);
|
||||
} else {
|
||||
wifiDirectManager.displayToast(R.string.error_during_transfer, Toast.LENGTH_LONG);
|
||||
}
|
||||
|
||||
localFileTransferActivity.finish();
|
||||
wifiDirectManager.onFileTransferAsyncTaskComplete();
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,6 @@ import android.os.AsyncTask;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import org.kiwix.kiwixmobile.BuildConfig;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
|
||||
@ -20,7 +19,6 @@ import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.Fil
|
||||
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.WifiDirectManager.FILE_TRANSFER_PORT;
|
||||
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.WifiDirectManager.copyToOutputStream;
|
||||
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.WifiDirectManager.getFileName;
|
||||
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.LocalFileTransferActivity.showToast;
|
||||
|
||||
/**
|
||||
* Helper class for the local file sharing module.
|
||||
@ -38,13 +36,12 @@ class SenderDeviceAsyncTask extends AsyncTask<Uri, Integer, Boolean> {
|
||||
|
||||
private static final String TAG = "SenderDeviceAsyncTask";
|
||||
|
||||
private WeakReference<LocalFileTransferActivity> weakReferenceToActivity;
|
||||
private WifiDirectManager wifiDirectManager;
|
||||
private int fileItemIndex = -1;
|
||||
private ContentResolver contentResolver;
|
||||
|
||||
public SenderDeviceAsyncTask(WifiDirectManager wifiDirectManager, LocalFileTransferActivity localFileTransferActivity) {
|
||||
this.weakReferenceToActivity = new WeakReference<>(localFileTransferActivity);
|
||||
this.wifiDirectManager = wifiDirectManager;
|
||||
this.contentResolver = localFileTransferActivity.getContentResolver();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -59,10 +56,8 @@ class SenderDeviceAsyncTask extends AsyncTask<Uri, Integer, Boolean> {
|
||||
|
||||
for(int i = 0; i < 2000000000; i++);
|
||||
|
||||
final LocalFileTransferActivity localFileTransferActivity = weakReferenceToActivity.get();
|
||||
ContentResolver contentResolver = localFileTransferActivity.getContentResolver();
|
||||
|
||||
Boolean result = true;
|
||||
boolean result = true;
|
||||
int fileItemIndex = -1;
|
||||
|
||||
for(Uri fileUri : fileUris) { // Uri of file to be transferred
|
||||
fileItemIndex++;
|
||||
@ -109,7 +104,7 @@ class SenderDeviceAsyncTask extends AsyncTask<Uri, Integer, Boolean> {
|
||||
wifiDirectManager.changeStatus(fileIndex, fileStatus);
|
||||
|
||||
if(fileStatus == ERROR) {
|
||||
wifiDirectManager.displayToast(R.string.error_transferring, getFileName(wifiDirectManager.getFileUriArrayList().get(fileItemIndex)), Toast.LENGTH_SHORT);
|
||||
wifiDirectManager.displayToast(R.string.error_transferring, getFileName(wifiDirectManager.getFileUriArrayList().get(fileIndex)), Toast.LENGTH_SHORT);
|
||||
}
|
||||
}
|
||||
|
||||
@ -119,11 +114,9 @@ class SenderDeviceAsyncTask extends AsyncTask<Uri, Integer, Boolean> {
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Boolean fileSendSuccessful) {
|
||||
final LocalFileTransferActivity localFileTransferActivity = weakReferenceToActivity.get();
|
||||
|
||||
if (wifiDirectManager.allFilesSent()) {
|
||||
wifiDirectManager.displayToast(R.string.file_transfer_complete, Toast.LENGTH_SHORT);
|
||||
localFileTransferActivity.finish();
|
||||
}
|
||||
wifiDirectManager.onFileTransferAsyncTaskComplete();
|
||||
}
|
||||
}
|
||||
|
@ -446,6 +446,10 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2
|
||||
showToast(activity, stringResourceId, duration);
|
||||
}
|
||||
|
||||
public void onFileTransferAsyncTaskComplete() {
|
||||
((Callbacks) activity).onFileTransferComplete();
|
||||
}
|
||||
|
||||
public interface Callbacks {
|
||||
void onUserDeviceDetailsAvailable(@Nullable WifiP2pDevice userDevice);
|
||||
|
||||
@ -458,5 +462,7 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2
|
||||
void onFilesForTransferAvailable(@NonNull ArrayList<FileItem> filesForTransfer);
|
||||
|
||||
void onFileStatusChanged(int itemIndex);
|
||||
|
||||
void onFileTransferComplete();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user