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