package com.seafile.seadroid2.ui.fragment; import android.os.Bundle; import android.util.Log; import com.seafile.seadroid2.R; import com.seafile.seadroid2.transfer.DownloadTaskInfo; import com.seafile.seadroid2.transfer.TaskState; import com.seafile.seadroid2.transfer.TransferTaskInfo; import com.seafile.seadroid2.ui.adapter.TransferTaskAdapter; import java.util.List; /** * Download tasks fragments */ public class DownloadTaskFragment extends TransferTaskFragment { private static final String DEBUG_TAG = "DownloadTaskFragment"; @Override public void onActivityCreated(Bundle savedInstanceState) { Log.d(DEBUG_TAG, "onActivityCreated"); super.onActivityCreated(savedInstanceState); emptyView.setText(getString(R.string.no_download_tasks)); } @Override protected List<? extends TransferTaskInfo> getTransferTaskInfos() { return txService.getAllDownloadTaskInfos(); } @Override protected void setUpTransferList() { Log.d(DEBUG_TAG, "bind TransferService"); List<DownloadTaskInfo> infos = txService.getAllDownloadTaskInfos(); adapter = new TransferTaskAdapter(mActivity, infos); adapter.setCurrentTab(TransferTaskAdapter.TaskType.DOWNLOAD_TASK); mTransferTaskListView.setAdapter(adapter); } protected boolean isNeedUpdateProgress() { return !txService.getAllDownloadTaskInfos().isEmpty(); } /** * retry all failed tasks */ public void retryAllFailedTasks() { if (txService != null) { txService.restartAllDownloadTasksByState(TaskState.FAILED); } } /** * restart all cancelled tasks */ public void restartAllCancelledTasks() { if (txService != null) { txService.restartAllDownloadTasksByState(TaskState.CANCELLED); } } public void restartTasksByIds(List<Integer> ids) { if (txService != null) { txService.restartDownloadTasksByIds(ids); } } /** * remove all failed download tasks */ public void removeAllFailedDownloadTasks() { if (txService != null) { txService.removeAllDownloadTasksByState(TaskState.FAILED); } } /** * remove all {@link TaskState#FINISHED}, {@link TaskState#FAILED} and {@link TaskState#CANCELLED} download tasks. */ public void removeAllDownloadTasks() { if (txService != null) { txService.removeAllDownloadTasksByState(TaskState.FINISHED); txService.removeAllDownloadTasksByState(TaskState.FAILED); txService.removeAllDownloadTasksByState(TaskState.CANCELLED); } } /** * remove cancelled download tasks by Ids */ public void removeDownloadTasksByIds(List<Integer> ids) { if (txService != null) { txService.removeDownloadTasksByIds(ids); } } /** * remove all finished download tasks */ public void removeAllFinishedDownloadTasks() { if (txService != null) { txService.removeAllDownloadTasksByState(TaskState.FINISHED); } } /** * cancel all download tasks */ public void cancelAllDownloadTasks() { if (txService != null) { txService.cancellAllDownloadTasks(); } } /** * cancel download tasks by ids */ public void cancelDownloadTasksByIds(List<Integer> ids) { if (txService != null) { txService.cancellDownloadTasksByIds(ids); } } @Override protected void deleteSelectedItems(List<Integer> ids) { cancelDownloadTasksByIds(ids); removeDownloadTasksByIds(ids); } @Override protected void restartSelectedItems(List<Integer> ids) { restartTasksByIds(ids); removeDownloadTasksByIds(ids); } }