package com.seafile.seadroid2.ui.fragment; import android.os.Bundle; import com.seafile.seadroid2.R; import com.seafile.seadroid2.transfer.TaskState; import com.seafile.seadroid2.transfer.TransferTaskInfo; import com.seafile.seadroid2.transfer.UploadTaskInfo; import com.seafile.seadroid2.ui.adapter.TransferTaskAdapter; import java.util.List; /** * Upload tasks fragments * */ public class UploadTaskFragment extends TransferTaskFragment { private static final String DEBUG_TAG = "UploadTaskFragment"; @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); emptyView.setText(getString(R.string.no_upload_tasks)); } @Override protected List<? extends TransferTaskInfo> getTransferTaskInfos() { return txService.getAllUploadTaskInfos(); } @Override protected void setUpTransferList() { List<UploadTaskInfo> infos = txService.getAllUploadTaskInfos(); adapter = new TransferTaskAdapter(mActivity, infos); adapter.setCurrentTab(TransferTaskAdapter.TaskType.UPLOAD_TASK); mTransferTaskListView.setAdapter(adapter); } @Override protected boolean isNeedUpdateProgress() { return !txService.getAllUploadTaskInfos().isEmpty(); } /** * retry all failed tasks */ public void retryAllFailedTasks() { if (txService != null) { txService.restartAllUploadTasksByState(TaskState.FAILED); } } /** * restart all cancelled tasks */ public void restartAllCancelledTasks() { if (txService != null) { txService.restartAllUploadTasksByState(TaskState.CANCELLED); } } public void restartTasksByIds(List<Integer> ids) { if (txService != null) { txService.restartUploadTasksByIds(ids); } } /** * remove all failed Upload tasks */ public void removeAllFailedUploadTasks() { if (txService != null) { txService.removeAllUploadTasksByState(TaskState.FAILED); } } /** * remove all {@link TaskState#FINISHED}, {@link TaskState#FAILED} and {@link TaskState#CANCELLED} Upload tasks */ public void removeAllUploadTasks() { if (txService != null) { txService.removeAllUploadTasksByState(TaskState.FINISHED); txService.removeAllUploadTasksByState(TaskState.FAILED); txService.removeAllUploadTasksByState(TaskState.CANCELLED); } } /** * remove all finished Upload tasks */ public void removeAllFinishedUploadTasks() { if (txService != null) { txService.removeAllUploadTasksByState(TaskState.FINISHED); } } /** * cancel upload tasks * Note that, this method <strong>only</strong> use to cancel file upload tasks rather than Camera Upload tasks. * Because Camera Upload tasks will restarted again by Camera Upload Service. * If want to persistently turn off Camera Upload tasks, should turn off the Camera upload service in Settings Menu. */ public void cancelUploadTasks() { if (txService != null) { txService.cancelAllUploadTasks(); } } private void cancelUploadTasksByIds(List<Integer> ids) { if (txService != null) { txService.cancelUploadTasksByIds(ids); } } private void removeUploadTasksByIds(List<Integer> ids) { if (txService != null) { txService.removeUploadTasksByIds(ids); } } @Override protected void deleteSelectedItems(List<Integer> ids) { cancelUploadTasksByIds(ids); removeUploadTasksByIds(ids); } @Override protected void restartSelectedItems(List<Integer> ids) { restartTasksByIds(ids); removeUploadTasksByIds(ids); } }