package com.openfarmanager.android.filesystem.commands;
import com.openfarmanager.android.core.AbstractCommand;
import com.openfarmanager.android.core.bus.RxBus;
import com.openfarmanager.android.core.bus.TaskErrorEvent;
import com.openfarmanager.android.core.bus.TaskOkEvent;
import com.openfarmanager.android.filesystem.actions.MoveTask;
import com.openfarmanager.android.filesystem.actions.RenameTask;
import com.openfarmanager.android.fragments.ErrorDialog;
import com.openfarmanager.android.fragments.MainPanel;
import com.openfarmanager.android.model.TaskStatusEnum;
import java.io.File;
/**
* @author Vlad Namashko
*/
public class MoveCommand implements AbstractCommand {
private MainPanel mPanel;
private File mDestination;
private String mDestinationFileName;
private boolean mDoRename;
private File mLastSelectedFile;
public MoveCommand(MainPanel panel, File destination, String destinationFileName, boolean doRename, File lastSelectedFile) {
mPanel = panel;
mDestination = destination;
mDestinationFileName = destinationFileName;
mDoRename = doRename;
mLastSelectedFile = lastSelectedFile;
}
@Override
public void execute(Object... args) {
if (mDoRename) {
TaskStatusEnum status = new RenameTask(mLastSelectedFile, mDestinationFileName).execute();
if (status == TaskStatusEnum.OK) {
RxBus.getInstance().postEvent(new TaskOkEvent(mPanel.getPanelLocation()));
} else {
RxBus.getInstance().postEvent(new TaskErrorEvent(mPanel.getPanelLocation()).setStatus(status));
}
} else {
try {
new MoveTask(mPanel.getContext(), mPanel.getPanelLocation(), mPanel.getSelectedFiles(), mDestination, mDestinationFileName).execute();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}