package com.openfarmanager.android.filesystem.actions.multi.network; import android.content.Context; import com.openfarmanager.android.filesystem.actions.OnActionListener; import com.openfarmanager.android.fragments.BaseFileSystemPanel; import com.openfarmanager.android.fragments.NetworkPanel; import com.openfarmanager.android.model.NetworkEnum; import com.openfarmanager.android.model.TaskStatusEnum; import org.apache.commons.io.FileDeleteStrategy; import java.io.File; import java.io.IOException; import java.util.List; import static com.openfarmanager.android.model.TaskStatusEnum.ERROR_DELETE_FILE; import static com.openfarmanager.android.model.TaskStatusEnum.ERROR_FILE_NOT_EXISTS; /** * @author Vlad Namashko */ public class MoveToNetworkMultiTask extends CopyToNetworkMultiTask { public MoveToNetworkMultiTask(NetworkPanel panel, List<File> items, String destination) { super(panel, items, destination); } @Override public TaskStatusEnum doAction() { FileDeleteStrategy strategy = FileDeleteStrategy.FORCE; for (File file : mItems) { try { strategy.delete(file); } catch (NullPointerException e) { return ERROR_FILE_NOT_EXISTS; } catch (IOException e) { return ERROR_DELETE_FILE; } catch (Exception e) { return ERROR_DELETE_FILE; } } return TaskStatusEnum.OK; } protected Runnable getActionRunnable() { return mActionRunnable; } private Runnable mActionRunnable = () -> { calculateSize(); TaskStatusEnum status = MoveToNetworkMultiTask.super.doAction(); if (hasSubTasks() && handleSubTasks(status)) { return; } onTaskDone(doAction()); }; }