mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-24 05:04:50 -04:00
Refactor: Fix some lint errors
- Use weak reference to LocalFileTransferActivity in async tasks to prevent leaks - Add 'default' case in switch
This commit is contained in:
parent
fb4c6f80c7
commit
f8eda73ef9
@ -58,6 +58,8 @@ public class FileListAdapter extends RecyclerView.Adapter<FileListAdapter.FileVi
|
|||||||
case ERROR:
|
case ERROR:
|
||||||
holder.statusImage.setImageResource(R.drawable.ic_baseline_error_24px);
|
holder.statusImage.setImageResource(R.drawable.ic_baseline_error_24px);
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
holder.statusImage.setVisibility(View.VISIBLE);
|
holder.statusImage.setVisibility(View.VISIBLE);
|
||||||
|
@ -5,6 +5,7 @@ import android.net.wifi.p2p.WifiP2pInfo;
|
|||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
import org.kiwix.kiwixmobile.BuildConfig;
|
import org.kiwix.kiwixmobile.BuildConfig;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@ -39,11 +40,11 @@ class PeerGroupHandshakeAsyncTask extends AsyncTask<Void, Void, InetAddress> {
|
|||||||
private static final String TAG = "PeerGrpHndshakeAsyncTsk";
|
private static final String TAG = "PeerGrpHndshakeAsyncTsk";
|
||||||
private final String HANDSHAKE_MESSAGE = "Request Kiwix File Sharing";
|
private final String HANDSHAKE_MESSAGE = "Request Kiwix File Sharing";
|
||||||
|
|
||||||
private LocalFileTransferActivity localFileTransferActivity;
|
private WeakReference<LocalFileTransferActivity> weakReferenceToActivity;
|
||||||
private WifiP2pInfo groupInfo;
|
private WifiP2pInfo groupInfo;
|
||||||
|
|
||||||
public PeerGroupHandshakeAsyncTask(LocalFileTransferActivity localFileTransferActivity, WifiP2pInfo groupInfo) {
|
public PeerGroupHandshakeAsyncTask(LocalFileTransferActivity localFileTransferActivity, WifiP2pInfo groupInfo) {
|
||||||
this.localFileTransferActivity = localFileTransferActivity;
|
this.weakReferenceToActivity = new WeakReference<>(localFileTransferActivity);
|
||||||
this.groupInfo = groupInfo;
|
this.groupInfo = groupInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,6 +104,8 @@ class PeerGroupHandshakeAsyncTask extends AsyncTask<Void, Void, InetAddress> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void exchangeFileTransferMetadata(OutputStream outputStream, InputStream inputStream) {
|
private void exchangeFileTransferMetadata(OutputStream outputStream, InputStream inputStream) {
|
||||||
|
final LocalFileTransferActivity localFileTransferActivity = weakReferenceToActivity.get();
|
||||||
|
|
||||||
if (localFileTransferActivity.isFileSender()) {
|
if (localFileTransferActivity.isFileSender()) {
|
||||||
try (ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream)) {
|
try (ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream)) {
|
||||||
// Send total number of files which will be transferred
|
// Send total number of files which will be transferred
|
||||||
@ -149,6 +152,7 @@ class PeerGroupHandshakeAsyncTask extends AsyncTask<Void, Void, InetAddress> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(InetAddress inetAddress) {
|
protected void onPostExecute(InetAddress inetAddress) {
|
||||||
|
final LocalFileTransferActivity localFileTransferActivity = weakReferenceToActivity.get();
|
||||||
localFileTransferActivity.setClientAddress(inetAddress);
|
localFileTransferActivity.setClientAddress(inetAddress);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ 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;
|
||||||
|
|
||||||
@ -34,11 +35,11 @@ class ReceiverDeviceAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
|||||||
|
|
||||||
private static final String TAG = "ReceiverDeviceAsyncTask";
|
private static final String TAG = "ReceiverDeviceAsyncTask";
|
||||||
|
|
||||||
private LocalFileTransferActivity localFileTransferActivity;
|
private WeakReference<LocalFileTransferActivity> weakReferenceToActivity;
|
||||||
private int fileItemIndex;
|
private int fileItemIndex;
|
||||||
|
|
||||||
public ReceiverDeviceAsyncTask(LocalFileTransferActivity localFileTransferActivity) {
|
public ReceiverDeviceAsyncTask(LocalFileTransferActivity localFileTransferActivity) {
|
||||||
this.localFileTransferActivity = localFileTransferActivity;
|
this.weakReferenceToActivity = new WeakReference<>(localFileTransferActivity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -46,6 +47,7 @@ class ReceiverDeviceAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
|||||||
try (ServerSocket serverSocket = new ServerSocket(FILE_TRANSFER_PORT)) {
|
try (ServerSocket serverSocket = new ServerSocket(FILE_TRANSFER_PORT)) {
|
||||||
if (BuildConfig.DEBUG) Log.d(TAG, "Server: Socket opened at " + FILE_TRANSFER_PORT);
|
if (BuildConfig.DEBUG) Log.d(TAG, "Server: Socket opened at " + FILE_TRANSFER_PORT);
|
||||||
|
|
||||||
|
final LocalFileTransferActivity localFileTransferActivity = weakReferenceToActivity.get();
|
||||||
final String KIWIX_ROOT = localFileTransferActivity.getZimStorageRootPath();
|
final String KIWIX_ROOT = localFileTransferActivity.getZimStorageRootPath();
|
||||||
|
|
||||||
int totalFileCount = localFileTransferActivity.getTotalFilesForTransfer();
|
int totalFileCount = localFileTransferActivity.getTotalFilesForTransfer();
|
||||||
@ -90,6 +92,7 @@ class ReceiverDeviceAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
|||||||
@Override
|
@Override
|
||||||
protected void onProgressUpdate(Integer... values) {
|
protected void onProgressUpdate(Integer... values) {
|
||||||
int fileStatus = values[0];
|
int fileStatus = values[0];
|
||||||
|
final LocalFileTransferActivity localFileTransferActivity = weakReferenceToActivity.get();
|
||||||
localFileTransferActivity.changeStatus(fileItemIndex, fileStatus);
|
localFileTransferActivity.changeStatus(fileItemIndex, fileStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,6 +104,7 @@ 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) {
|
||||||
showToast(localFileTransferActivity, R.string.file_transfer_complete,
|
showToast(localFileTransferActivity, R.string.file_transfer_complete,
|
||||||
Toast.LENGTH_LONG);
|
Toast.LENGTH_LONG);
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package org.kiwix.kiwixmobile.zim_manager.local_file_transfer;
|
package org.kiwix.kiwixmobile.zim_manager.local_file_transfer;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.AsyncTask;
|
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;
|
||||||
|
|
||||||
@ -38,22 +38,24 @@ class SenderDeviceAsyncTask extends AsyncTask<Uri, Void, Boolean> {
|
|||||||
|
|
||||||
private static final String TAG = "SenderDeviceAsyncTask";
|
private static final String TAG = "SenderDeviceAsyncTask";
|
||||||
|
|
||||||
private LocalFileTransferActivity localFileTransferActivity;
|
private WeakReference<LocalFileTransferActivity> weakReferenceToActivity;
|
||||||
private int fileItemIndex;
|
private int fileItemIndex;
|
||||||
|
|
||||||
public SenderDeviceAsyncTask(LocalFileTransferActivity localFileTransferActivity, int fileItemIndex) {
|
public SenderDeviceAsyncTask(LocalFileTransferActivity localFileTransferActivity, int fileItemIndex) {
|
||||||
this.localFileTransferActivity = localFileTransferActivity;
|
this.weakReferenceToActivity = new WeakReference<>(localFileTransferActivity);
|
||||||
this.fileItemIndex = fileItemIndex;
|
this.fileItemIndex = fileItemIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPreExecute() {
|
protected void onPreExecute() {
|
||||||
|
final LocalFileTransferActivity localFileTransferActivity = weakReferenceToActivity.get();
|
||||||
localFileTransferActivity.changeStatus(fileItemIndex, SENDING);
|
localFileTransferActivity.changeStatus(fileItemIndex, SENDING);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Boolean doInBackground(Uri... fileUris) {
|
protected Boolean doInBackground(Uri... fileUris) {
|
||||||
Uri fileUri = fileUris[0]; // Uri of file to be transferred
|
Uri fileUri = fileUris[0]; // Uri of file to be transferred
|
||||||
|
final LocalFileTransferActivity localFileTransferActivity = weakReferenceToActivity.get();
|
||||||
ContentResolver contentResolver = localFileTransferActivity.getContentResolver();
|
ContentResolver contentResolver = localFileTransferActivity.getContentResolver();
|
||||||
|
|
||||||
try (Socket socket = new Socket();
|
try (Socket socket = new Socket();
|
||||||
@ -88,6 +90,7 @@ class SenderDeviceAsyncTask extends AsyncTask<Uri, Void, Boolean> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Boolean fileSendSuccessful) {
|
protected void onPostExecute(Boolean fileSendSuccessful) {
|
||||||
|
final LocalFileTransferActivity localFileTransferActivity = weakReferenceToActivity.get();
|
||||||
localFileTransferActivity.incrementTotalFilesSent();
|
localFileTransferActivity.incrementTotalFilesSent();
|
||||||
|
|
||||||
if (fileSendSuccessful) { // Whether this task was successful in sending the file
|
if (fileSendSuccessful) { // Whether this task was successful in sending the file
|
||||||
|
@ -22,8 +22,7 @@ import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.LocalFileTra
|
|||||||
/**
|
/**
|
||||||
* Helper class, part of the local file sharing module.
|
* Helper class, part of the local file sharing module.
|
||||||
*
|
*
|
||||||
* Defines the Adapter for the list of wifi peer-device items displayed in {
|
* Defines the Adapter for the list of wifi peer-device items displayed.
|
||||||
* DeviceListFragment}
|
|
||||||
*/
|
*/
|
||||||
public class WifiPeerListAdapter extends ArrayAdapter<WifiP2pDevice> {
|
public class WifiPeerListAdapter extends ArrayAdapter<WifiP2pDevice> {
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user