Reformat LocalFileTransfer sub-package

This commit is contained in:
Aditya-Sood 2019-08-13 21:00:24 +05:30
parent bdf979d973
commit a17db838ff
9 changed files with 137 additions and 142 deletions

View File

@ -1,15 +1,15 @@
package org.kiwix.kiwixmobile.zim_manager.local_file_transfer;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.*;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.ERROR;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.SENDING;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.SENT;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.TO_BE_SENT;
/**
* Helper class, part of the local file sharing module.

View File

@ -6,17 +6,17 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import java.util.ArrayList;
import org.kiwix.kiwixmobile.R;
import java.util.ArrayList;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.*;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.ERROR;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.SENDING;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.SENT;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.TO_BE_SENT;
/**
* Helper class, part of the local file sharing module.
@ -33,9 +33,9 @@ public class FileListAdapter extends RecyclerView.Adapter<FileListAdapter.FileVi
@NonNull
@Override
public FileListAdapter.FileViewHolder onCreateViewHolder(@NonNull ViewGroup parent,
int viewType) {
int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_transfer_list, parent, false);
.inflate(R.layout.item_transfer_list, parent, false);
return new FileViewHolder(itemView, this);
}

View File

@ -6,7 +6,6 @@ import android.content.Intent;
import android.net.NetworkInfo;
import android.net.wifi.p2p.WifiP2pDevice;
import android.net.wifi.p2p.WifiP2pManager;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@ -27,10 +26,11 @@ public class KiwixWifiP2pBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(@NonNull Context context, @NonNull Intent intent) {
switch(intent.getAction()) {
switch (intent.getAction()) {
case WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION: {
int wifiP2pState = intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, -1);
p2pEventListener.onWifiP2pStateChanged((wifiP2pState == WifiP2pManager.WIFI_P2P_STATE_ENABLED));
p2pEventListener.onWifiP2pStateChanged(
(wifiP2pState == WifiP2pManager.WIFI_P2P_STATE_ENABLED));
break;
}
@ -51,7 +51,8 @@ public class KiwixWifiP2pBroadcastReceiver extends BroadcastReceiver {
break;
}
default: break;
default:
break;
}
}

View File

@ -20,20 +20,20 @@ import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnItemClick;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import org.kiwix.kiwixmobile.KiwixApplication;
@ -42,10 +42,6 @@ import org.kiwix.kiwixmobile.utils.AlertDialogShower;
import org.kiwix.kiwixmobile.utils.KiwixDialog;
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
import java.util.ArrayList;
import javax.inject.Inject;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.WifiDirectManager.getDeviceStatus;
/**
@ -63,7 +59,7 @@ import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.WifiDirectMa
*/
@SuppressLint("GoogleAppIndexingApiWarning")
public class LocalFileTransferActivity extends AppCompatActivity implements
WifiDirectManager.Callbacks {
WifiDirectManager.Callbacks {
// Not a typo, 'Log' tags have a length upper limit of 25 characters
public static final String TAG = "LocalFileTransferActvty";
@ -93,10 +89,11 @@ public class LocalFileTransferActivity extends AppCompatActivity implements
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
KiwixApplication.getApplicationComponent().activityComponent()
.activity(this)
.build()
.inject(this);
setTheme(sharedPreferenceUtil.nightMode() ? R.style.Theme_AppCompat_DayNight_NoActionBar : R.style.AppTheme);
.activity(this)
.build()
.inject(this);
setTheme(sharedPreferenceUtil.nightMode() ? R.style.Theme_AppCompat_DayNight_NoActionBar
: R.style.AppTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_local_file_transfer);
ButterKnife.bind(this);
@ -118,7 +115,7 @@ public class LocalFileTransferActivity extends AppCompatActivity implements
actionBar.setNavigationOnClickListener(v -> finish());
listViewPeerDevices.setAdapter(
new WifiPeerListAdapter(this, R.layout.row_peer_device, availablePeerDevices));
new WifiPeerListAdapter(this, R.layout.row_peer_device, availablePeerDevices));
if (isFileSender) {
for (int i = 0; i < fileUriArrayList.size(); i++) {
@ -134,7 +131,7 @@ public class LocalFileTransferActivity extends AppCompatActivity implements
@OnItemClick(R.id.list_peer_devices)
void onItemClick(int position) {
WifiP2pDevice senderSelectedPeerDevice =
(WifiP2pDevice) listViewPeerDevices.getAdapter().getItem(position);
(WifiP2pDevice) listViewPeerDevices.getAdapter().getItem(position);
wifiDirectManager.sendToDevice(senderSelectedPeerDevice);
}
@ -178,7 +175,8 @@ public class LocalFileTransferActivity extends AppCompatActivity implements
}
@Override
public void onUserDeviceDetailsAvailable(@Nullable WifiP2pDevice userDevice) { // Update UI with user device's details
public void onUserDeviceDetailsAvailable(@Nullable WifiP2pDevice userDevice) {
// Update UI with user device's details
if (userDevice != null) {
deviceName.setText(userDevice.deviceName);
Log.d(TAG, getDeviceStatus(userDevice.status));
@ -236,23 +234,25 @@ public class LocalFileTransferActivity extends AppCompatActivity implements
/* 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)
== PackageManager.PERMISSION_DENIED) {
== PackageManager.PERMISSION_DENIED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION)) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.ACCESS_COARSE_LOCATION)) {
alertDialogShower.show(KiwixDialog.LocationPermissionRationale.INSTANCE,
new Function0<Unit>() {
@Override public Unit invoke() {
ActivityCompat.requestPermissions(LocalFileTransferActivity.this, new String[] { Manifest.permission.ACCESS_COARSE_LOCATION },
PERMISSION_REQUEST_CODE_COARSE_LOCATION);
return Unit.INSTANCE;
}
});
new Function0<Unit>() {
@Override public Unit invoke() {
ActivityCompat.requestPermissions(LocalFileTransferActivity.this,
new String[] { Manifest.permission.ACCESS_COARSE_LOCATION },
PERMISSION_REQUEST_CODE_COARSE_LOCATION);
return Unit.INSTANCE;
}
});
} else {
ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.ACCESS_COARSE_LOCATION },
PERMISSION_REQUEST_CODE_COARSE_LOCATION);
ActivityCompat.requestPermissions(this,
new String[] { Manifest.permission.ACCESS_COARSE_LOCATION },
PERMISSION_REQUEST_CODE_COARSE_LOCATION);
}
return false;
} else {
return true; // Control reaches here: Either permission granted at install time, or at the time of request
}
@ -260,23 +260,25 @@ public class LocalFileTransferActivity extends AppCompatActivity implements
private boolean checkExternalStorageWritePermission() { // To access and store the zims
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
== PackageManager.PERMISSION_DENIED) {
== PackageManager.PERMISSION_DENIED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
alertDialogShower.show(KiwixDialog.StoragePermissionRationale.INSTANCE,
new Function0<Unit>() {
@Override public Unit invoke() {
ActivityCompat.requestPermissions(LocalFileTransferActivity.this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
PERMISSION_REQUEST_CODE_STORAGE_WRITE_ACCESS);
return Unit.INSTANCE;
}
});
new Function0<Unit>() {
@Override public Unit invoke() {
ActivityCompat.requestPermissions(LocalFileTransferActivity.this,
new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
PERMISSION_REQUEST_CODE_STORAGE_WRITE_ACCESS);
return Unit.INSTANCE;
}
});
} else {
ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
PERMISSION_REQUEST_CODE_STORAGE_WRITE_ACCESS);
ActivityCompat.requestPermissions(this,
new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
PERMISSION_REQUEST_CODE_STORAGE_WRITE_ACCESS);
}
return false;
} else {
return true; // Control reaches here: Either permission granted at install time, or at the time of request
}
@ -284,7 +286,7 @@ public class LocalFileTransferActivity extends AppCompatActivity implements
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
@NonNull int[] grantResults) {
if (grantResults[0] == PackageManager.PERMISSION_DENIED) {
switch (requestCode) {
@ -314,7 +316,8 @@ public class LocalFileTransferActivity extends AppCompatActivity implements
}
private boolean isLocationServiceEnabled() {
return (isProviderEnabled(LocationManager.GPS_PROVIDER) || isProviderEnabled(LocationManager.NETWORK_PROVIDER));
return (isProviderEnabled(LocationManager.GPS_PROVIDER)
|| isProviderEnabled(LocationManager.NETWORK_PROVIDER));
}
private boolean isProviderEnabled(String locationProvider) {
@ -328,43 +331,44 @@ public class LocalFileTransferActivity extends AppCompatActivity implements
}
}
default: return false;
default:
return false;
}
}
private void requestEnableLocationServices() {
alertDialogShower.show(KiwixDialog.EnableLocationServices.INSTANCE,
new Function0<Unit>() {
@Override public Unit invoke() {
startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS),
REQUEST_ENABLE_LOCATION_SERVICES);
return Unit.INSTANCE;
}
},
new Function0<Unit>() {
@Override public Unit invoke() {
showToast(LocalFileTransferActivity.this, R.string.discovery_needs_location,
Toast.LENGTH_SHORT);
return Unit.INSTANCE;
}
});
new Function0<Unit>() {
@Override public Unit invoke() {
startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS),
REQUEST_ENABLE_LOCATION_SERVICES);
return Unit.INSTANCE;
}
},
new Function0<Unit>() {
@Override public Unit invoke() {
showToast(LocalFileTransferActivity.this, R.string.discovery_needs_location,
Toast.LENGTH_SHORT);
return Unit.INSTANCE;
}
});
}
private void requestEnableWifiP2pServices() {
alertDialogShower.show(KiwixDialog.EnableWifiP2pServices.INSTANCE,
new Function0<Unit>() {
@Override public Unit invoke() {
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
return Unit.INSTANCE;
}
},
new Function0<Unit>() {
@Override public Unit invoke() {
showToast(LocalFileTransferActivity.this, R.string.discovery_needs_wifi,
Toast.LENGTH_SHORT);
return Unit.INSTANCE;
}
});
new Function0<Unit>() {
@Override public Unit invoke() {
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
return Unit.INSTANCE;
}
},
new Function0<Unit>() {
@Override public Unit invoke() {
showToast(LocalFileTransferActivity.this, R.string.discovery_needs_wifi,
Toast.LENGTH_SHORT);
return Unit.INSTANCE;
}
});
}
@Override

View File

@ -1,11 +1,7 @@
package org.kiwix.kiwixmobile.zim_manager.local_file_transfer;
import android.net.Uri;
import android.os.AsyncTask;
import android.util.Log;
import org.kiwix.kiwixmobile.BuildConfig;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@ -15,9 +11,7 @@ import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.TO_BE_SENT;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.WifiDirectManager.getFileName;
import org.kiwix.kiwixmobile.BuildConfig;
/**
* Helper class for the local file sharing module.
@ -46,7 +40,7 @@ class PeerGroupHandshakeAsyncTask extends AsyncTask<Void, Void, InetAddress> {
@Override
protected InetAddress doInBackground(Void... voids) {
if(BuildConfig.DEBUG) {
if (BuildConfig.DEBUG) {
Log.d(TAG, "Handshake in progress");
}
@ -76,12 +70,13 @@ class PeerGroupHandshakeAsyncTask extends AsyncTask<Void, Void, InetAddress> {
} else if (wifiDirectManager.isGroupFormed() && !isCancelled()) { //&& !groupInfo.isGroupOwner
try (Socket client = new Socket()) {
client.setReuseAddress(true);
client.connect((new InetSocketAddress(wifiDirectManager.getGroupOwnerAddress().getHostAddress(),
client.connect(
(new InetSocketAddress(wifiDirectManager.getGroupOwnerAddress().getHostAddress(),
PEER_HANDSHAKE_PORT)), 15000);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(client.getOutputStream());
objectOutputStream.writeObject(
HANDSHAKE_MESSAGE); // Send message for the peer device to verify
HANDSHAKE_MESSAGE); // Send message for the peer device to verify
exchangeFileTransferMetadata(client.getOutputStream(), client.getInputStream());
@ -122,7 +117,7 @@ class PeerGroupHandshakeAsyncTask extends AsyncTask<Void, Void, InetAddress> {
if (totalFilesObject.getClass().equals(String.class)) {
int total = Integer.parseInt((String) totalFilesObject);
wifiDirectManager.setTotalFilesForTransfer(total);
if (BuildConfig.DEBUG) Log.d(TAG, "Metadata: "+total+" files");
if (BuildConfig.DEBUG) Log.d(TAG, "Metadata: " + total + " files");
ArrayList<FileItem> fileItems = new ArrayList<>();
for (int i = 0; i < total; i++) { // Read names of each of those files, in order
@ -130,7 +125,7 @@ class PeerGroupHandshakeAsyncTask extends AsyncTask<Void, Void, InetAddress> {
if (fileNameObject.getClass().equals(String.class)) {
fileItems.add(new FileItem((String) fileNameObject));
if (BuildConfig.DEBUG) Log.d(TAG, "Expecting "+fileNameObject);
if (BuildConfig.DEBUG) Log.d(TAG, "Expecting " + fileNameObject);
}
}

View File

@ -3,16 +3,14 @@ package org.kiwix.kiwixmobile.zim_manager.local_file_transfer;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.Toast;
import org.kiwix.kiwixmobile.BuildConfig;
import org.kiwix.kiwixmobile.R;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import org.kiwix.kiwixmobile.BuildConfig;
import org.kiwix.kiwixmobile.R;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.ERROR;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.SENDING;
@ -51,7 +49,7 @@ class ReceiverDeviceAsyncTask extends AsyncTask<Void, Integer, Boolean> {
boolean result = true;
int fileItemIndex;
if (BuildConfig.DEBUG) Log.d(TAG, "Expecting "+totalFileCount+" files");
if (BuildConfig.DEBUG) Log.d(TAG, "Expecting " + totalFileCount + " files");
for (int currentFile = 1; currentFile <= totalFileCount && !isCancelled(); currentFile++) {
fileItemIndex = currentFile - 1;
@ -75,7 +73,6 @@ class ReceiverDeviceAsyncTask extends AsyncTask<Void, Integer, Boolean> {
copyToOutputStream(client.getInputStream(), new FileOutputStream(clientNoteFileLocation));
publishProgress(fileItemIndex, SENT);
} catch (IOException e) {
Log.e(TAG, e.getMessage());
result = false;
@ -86,7 +83,6 @@ class ReceiverDeviceAsyncTask extends AsyncTask<Void, Integer, Boolean> {
}
return (!isCancelled() && result);
} catch (IOException e) {
Log.e(TAG, e.getMessage());
return false; // Returned when an error was encountered during transfer
@ -99,8 +95,9 @@ class ReceiverDeviceAsyncTask extends AsyncTask<Void, Integer, Boolean> {
int fileStatus = values[1];
wifiDirectManager.changeStatus(fileIndex, fileStatus);
if(fileStatus == ERROR) {
wifiDirectManager.displayToast(R.string.error_transferring, incomingFileName, Toast.LENGTH_SHORT);
if (fileStatus == ERROR) {
wifiDirectManager.displayToast(R.string.error_transferring, incomingFileName,
Toast.LENGTH_SHORT);
}
}

View File

@ -3,16 +3,16 @@ package org.kiwix.kiwixmobile.zim_manager.local_file_transfer;
import android.content.ContentResolver;
import android.os.AsyncTask;
import android.util.Log;
import org.kiwix.kiwixmobile.BuildConfig;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import org.kiwix.kiwixmobile.BuildConfig;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.*;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.ERROR;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.SENDING;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.SENT;
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;
@ -35,7 +35,8 @@ class SenderDeviceAsyncTask extends AsyncTask<FileItem, Integer, Boolean> {
private WifiDirectManager wifiDirectManager;
private ContentResolver contentResolver;
public SenderDeviceAsyncTask(WifiDirectManager wifiDirectManager, LocalFileTransferActivity localFileTransferActivity) {
public SenderDeviceAsyncTask(WifiDirectManager wifiDirectManager,
LocalFileTransferActivity localFileTransferActivity) {
this.wifiDirectManager = wifiDirectManager;
this.contentResolver = localFileTransferActivity.getContentResolver();
}
@ -50,7 +51,7 @@ class SenderDeviceAsyncTask extends AsyncTask<FileItem, Integer, Boolean> {
boolean result = true;
int fileItemIndex = -1;
for(FileItem fileItem : fileItems) { // Uri of file to be transferred
for (FileItem fileItem : fileItems) { // Uri of file to be transferred
fileItemIndex++;
try (Socket socket = new Socket(); // Represents the sender device
@ -74,7 +75,6 @@ class SenderDeviceAsyncTask extends AsyncTask<FileItem, Integer, Boolean> {
if (BuildConfig.DEBUG) Log.d(TAG, "Sender: Data written");
publishProgress(fileItemIndex, SENT);
} catch (IOException e) {
Log.e(TAG, e.getMessage());
e.printStackTrace();

View File

@ -4,7 +4,6 @@ import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.IntentFilter;
import android.net.NetworkInfo;
import android.net.Uri;
import android.net.wifi.WpsInfo;
import android.net.wifi.p2p.WifiP2pConfig;
@ -36,12 +35,13 @@ import static android.os.Looper.getMainLooper;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.ERROR;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.LocalFileTransferActivity.showToast;
/**
* Manager for the Wifi-P2p API, used in the local file transfer module
* */
public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2pManager.PeerListListener, WifiP2pManager.ConnectionInfoListener,
KiwixWifiP2pBroadcastReceiver.P2pEventListener {
*/
public class WifiDirectManager
implements WifiP2pManager.ChannelListener, WifiP2pManager.PeerListListener,
WifiP2pManager.ConnectionInfoListener,
KiwixWifiP2pBroadcastReceiver.P2pEventListener {
private static final String TAG = "WifiDirectManager";
public static int FILE_TRANSFER_PORT = 8008;
@ -81,8 +81,9 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2
private boolean hasSenderStartedConnection = false;
@Inject
public WifiDirectManager(@NonNull Activity activity, @NonNull SharedPreferenceUtil sharedPreferenceUtil,
@NonNull AlertDialogShower alertDialogShower) {
public WifiDirectManager(@NonNull Activity activity,
@NonNull SharedPreferenceUtil sharedPreferenceUtil,
@NonNull AlertDialogShower alertDialogShower) {
this.activity = (LocalFileTransferActivity) activity;
this.callbacks = (Callbacks) activity;
this.sharedPreferenceUtil = sharedPreferenceUtil;
@ -94,7 +95,7 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2
this.filesForTransfer = filesForTransfer;
this.isFileSender = (filesForTransfer != null && filesForTransfer.size() > 0);
if(isFileSender) {
if (isFileSender) {
this.totalFilesForTransfer = filesForTransfer.size();
}
@ -140,7 +141,7 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2
public void onWifiP2pStateChanged(boolean isEnabled) {
this.isWifiP2pEnabled = isEnabled;
if(!isWifiP2pEnabled) {
if (!isWifiP2pEnabled) {
displayToast(R.string.discovery_needs_wifi, Toast.LENGTH_SHORT);
callbacks.onConnectionToPeersLost();
}
@ -226,19 +227,19 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2
this.senderSelectedPeerDevice = senderSelectedPeerDevice;
alertDialogShower.show(
new KiwixDialog.FileTransferConfirmation(senderSelectedPeerDevice.deviceName),
new Function0<Unit>() {
@Override public Unit invoke() {
hasSenderStartedConnection = true;
connect();
displayToast(R.string.performing_handshake, Toast.LENGTH_LONG);
return Unit.INSTANCE;
}
});
new KiwixDialog.FileTransferConfirmation(senderSelectedPeerDevice.deviceName),
new Function0<Unit>() {
@Override public Unit invoke() {
hasSenderStartedConnection = true;
connect();
displayToast(R.string.performing_handshake, Toast.LENGTH_LONG);
return Unit.INSTANCE;
}
});
}
public void connect() {
if(senderSelectedPeerDevice == null) {
if (senderSelectedPeerDevice == null) {
Log.d(TAG, "No device set as selected");
}
@ -301,9 +302,8 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2
return fileReceiverDeviceAddress;
}
public static void copyToOutputStream(@NonNull InputStream inputStream, @NonNull
OutputStream outputStream)
throws IOException {
public static void copyToOutputStream(@NonNull InputStream inputStream,
@NonNull OutputStream outputStream) throws IOException {
byte[] bufferForBytes = new byte[1024];
int bytesRead;
@ -336,7 +336,7 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2
Log.d(LocalFileTransferActivity.TAG, "Starting file transfer");
fileReceiverDeviceAddress =
(isGroupOwner()) ? selectedPeerDeviceInetAddress : getGroupOwnerAddress();
(isGroupOwner()) ? selectedPeerDeviceInetAddress : getGroupOwnerAddress();
displayToast(R.string.preparing_files, Toast.LENGTH_LONG);
ArrayList<Uri> fileUriArrayList = new ArrayList<>();
@ -345,7 +345,6 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2
}
senderDeviceAsyncTask = new SenderDeviceAsyncTask(this, activity);
senderDeviceAsyncTask.execute(filesForTransfer.toArray(new FileItem[0]));
} else {
callbacks.onFilesForTransferAvailable(filesForTransfer);
@ -359,8 +358,9 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2
filesForTransfer.get(itemIndex).setFileStatus(status);
callbacks.onFileStatusChanged(itemIndex);
if(status == ERROR) {
displayToast(R.string.error_transferring, filesForTransfer.get(itemIndex).getFileName(), Toast.LENGTH_SHORT);
if (status == ERROR) {
displayToast(R.string.error_transferring, filesForTransfer.get(itemIndex).getFileName(),
Toast.LENGTH_SHORT);
}
}
@ -402,12 +402,11 @@ public class WifiDirectManager implements WifiP2pManager.ChannelListener, WifiP2
}
void closeChannel() {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
channel.close();
}
}
public @NonNull String getErrorMessage(int reason) {
switch (reason) {
case WifiP2pManager.ERROR:

View File

@ -13,9 +13,8 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import butterknife.BindView;
import butterknife.ButterKnife;
import org.kiwix.kiwixmobile.R;
import java.util.List;
import org.kiwix.kiwixmobile.R;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.WifiDirectManager.getDeviceStatus;
@ -32,7 +31,7 @@ public class WifiPeerListAdapter extends ArrayAdapter<WifiP2pDevice> {
private List<WifiP2pDevice> listItems;
public WifiPeerListAdapter(@NonNull Context context, int resource,
@NonNull List<WifiP2pDevice> objects) {
@NonNull List<WifiP2pDevice> objects) {
super(context, resource, objects);
this.context = context;
this.listItems = objects;