Increment: Use type-annotation for file status constants

This commit is contained in:
Aditya-Sood 2019-07-11 21:59:07 +05:30
parent 1e74176c85
commit 0c14330003
7 changed files with 41 additions and 23 deletions

View File

@ -38,6 +38,7 @@ import java.net.InetAddress;
import java.util.ArrayList;
import java.util.List;
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.LocalFileTransferActivity.showToast;
/**
@ -101,7 +102,7 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P
totalFilesForTransfer = fileUriList.size();
for(int i = 0; i < fileUriList.size(); i++) {
filesToSend.add(new FileItem(getFileName(fileUriList.get(i)), FileItem.TO_BE_SENT));
filesToSend.add(new FileItem(getFileName(fileUriList.get(i)), TO_BE_SENT));
}
displayTransferProgressFragment();

View File

@ -1,25 +1,36 @@
package org.kiwix.kiwixmobile.zim_manager.local_file_transfer;
import androidx.annotation.IntDef;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.*;
/**
* Helper class, part of the local file sharing module.
*
* Defines a file-item to represent the files being transferred.
* */
public class FileItem {
public static final short TO_BE_SENT = -1; // File yet to be sent
public static final short SENDING = 0; // Being sent
public static final short SENT = +1; // Successfully sent
public static final short ERROR = +2; // Error encountered while transferring the file
@Retention(RetentionPolicy.SOURCE)
@IntDef({TO_BE_SENT, SENDING, SENT, ERROR})
public @interface FileStatus {
int TO_BE_SENT = -1; // File yet to be sent
int SENDING = 0; // Being sent
int SENT = +1; // Successfully sent
int ERROR = +2; // Error encountered while transferring the file
}
private String fileName;
private short fileStatus;
private int fileStatus;
public FileItem(String fileName, short fileStatus) {
public FileItem(String fileName, @FileStatus int fileStatus) {
this.fileName = fileName;
this.fileStatus = fileStatus;
}
public void setFileStatus(short fileStatus) {
public void setFileStatus(@FileStatus int fileStatus) {
this.fileStatus = fileStatus;
}
@ -27,7 +38,8 @@ public class FileItem {
return fileName;
}
public short getFileStatus() {
@FileStatus
public int getFileStatus() {
return fileStatus;
}
}

View File

@ -15,6 +15,8 @@ import org.kiwix.kiwixmobile.R;
import java.util.ArrayList;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.*;
/**
* Helper class, part of the local file sharing module.
*
@ -43,17 +45,17 @@ public class FileListAdapter extends RecyclerView.Adapter<FileListAdapter.FileVi
String name = fileItem.getFileName();
holder.fileName.setText(name);
if(fileItem.getFileStatus() == FileItem.SENDING) {
if(fileItem.getFileStatus() == SENDING) {
holder.statusImage.setVisibility(View.GONE);
holder.progressBar.setVisibility(View.VISIBLE);
} else if(fileItem.getFileStatus() != FileItem.TO_BE_SENT){ // Icon for TO_BE_SENT is assigned by default in the item layout
} else if(fileItem.getFileStatus() != TO_BE_SENT){ // Icon for TO_BE_SENT is assigned by default in the item layout
holder.progressBar.setVisibility(View.GONE);
switch (fileItem.getFileStatus()) {
case FileItem.SENT : holder.statusImage.setImageResource(R.drawable.ic_baseline_check_24px);
case SENT : holder.statusImage.setImageResource(R.drawable.ic_baseline_check_24px);
break;
case FileItem.ERROR: holder.statusImage.setImageResource(R.drawable.ic_baseline_error_24px);
case ERROR: holder.statusImage.setImageResource(R.drawable.ic_baseline_error_24px);
break;
}

View File

@ -19,7 +19,7 @@ import java.util.ArrayList;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.DeviceListFragment.PEER_HANDSHAKE_PORT;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.DeviceListFragment.getFileName;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.TO_BE_SENT;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.TO_BE_SENT;
/**
* Helper class for the local file sharing module, used in {@link DeviceListFragment}.

View File

@ -16,6 +16,8 @@ import java.util.ArrayList;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.DeviceListFragment.FILE_TRANSFER_PORT;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.DeviceListFragment.copyToOutputStream;
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.LocalFileTransferActivity.showToast;
/**
@ -28,7 +30,7 @@ import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.LocalFileTra
* A single Task is used for the entire file transfer (the server socket accepts connections as
* many times as the no. of files).
* */
class ReceiverDeviceAsyncTask extends AsyncTask<Void, Short, Boolean> {
class ReceiverDeviceAsyncTask extends AsyncTask<Void, Integer, Boolean> {
private static final String TAG = "ReceiverDeviceAsyncTask";
@ -56,7 +58,7 @@ class ReceiverDeviceAsyncTask extends AsyncTask<Void, Short, Boolean> {
if(BuildConfig.DEBUG) Log.d(TAG, "Server: Client connected for file " + currentFile);
fileItemIndex = currentFile-1;
publishProgress(FileItem.SENDING);
publishProgress(SENDING);
ArrayList<FileItem> fileItems = deviceListFragment.getFileItems();
String incomingFileName = fileItems.get(fileItemIndex).getFileName();
@ -73,7 +75,7 @@ class ReceiverDeviceAsyncTask extends AsyncTask<Void, Short, Boolean> {
copyToOutputStream(client.getInputStream(), new FileOutputStream(clientNoteFileLocation));
publishProgress(FileItem.SENT);
publishProgress(SENT);
deviceListFragment.incrementTotalFilesSent();
}
serverSocket.close();
@ -87,8 +89,8 @@ class ReceiverDeviceAsyncTask extends AsyncTask<Void, Short, Boolean> {
}
@Override
protected void onProgressUpdate(Short... values) {
short fileStatus = values[0];
protected void onProgressUpdate(Integer... values) {
int fileStatus = values[0];
transferProgressFragment.changeStatus(fileItemIndex, fileStatus);
}

View File

@ -18,6 +18,7 @@ import java.net.Socket;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.DeviceListFragment.FILE_TRANSFER_PORT;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.DeviceListFragment.getFileName;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.FileItem.FileStatus.*;
import static org.kiwix.kiwixmobile.zim_manager.local_file_transfer.LocalFileTransferActivity.showToast;
/**
@ -48,7 +49,7 @@ class SenderDeviceAsyncTask extends AsyncTask<Uri, Void, Boolean> {
@Override
protected void onPreExecute() {
transferProgressFragment.changeStatus(fileItemIndex, FileItem.SENDING);
transferProgressFragment.changeStatus(fileItemIndex, SENDING);
}
@Override
@ -97,11 +98,11 @@ class SenderDeviceAsyncTask extends AsyncTask<Uri, Void, Boolean> {
deviceListFragment.incrementTotalFilesSent();
if(fileSendSuccessful) {
transferProgressFragment.changeStatus(fileItemIndex, FileItem.SENT);
transferProgressFragment.changeStatus(fileItemIndex, SENT);
} else {
Activity activity = deviceListFragment.getActivity();
showToast(activity, activity.getString(R.string.error_sending) + " " + getFileName(deviceListFragment.getFileUriList().get(fileItemIndex)), Toast.LENGTH_SHORT);
transferProgressFragment.changeStatus(fileItemIndex, FileItem.ERROR);
transferProgressFragment.changeStatus(fileItemIndex, ERROR);
}
if(deviceListFragment.allFilesSent()) {

View File

@ -57,7 +57,7 @@ public class TransferProgressFragment extends Fragment {
if(unbinder != null) unbinder.unbind();
}
public void changeStatus(int itemIndex, short status) {
public void changeStatus(int itemIndex, @FileItem.FileStatus int status) {
fileItems.get(itemIndex).setFileStatus(status);
fileListAdapter.notifyItemChanged(itemIndex);
}