package com.openfarmanager.android.filesystem.actions.network; import com.dropbox.client2.exception.DropboxException; import com.openfarmanager.android.filesystem.FileProxy; import com.openfarmanager.android.fragments.BaseFileSystemPanel; import com.openfarmanager.android.model.TaskStatusEnum; import com.openfarmanager.android.model.exeptions.NetworkException; import java.util.ArrayList; import static com.openfarmanager.android.model.TaskStatusEnum.ERROR_FILE_NOT_EXISTS; import static com.openfarmanager.android.model.TaskStatusEnum.ERROR_RENAME_FILE; import static com.openfarmanager.android.model.TaskStatusEnum.ERROR_WRONG_DESTINATION_FILE_NAME; import static com.openfarmanager.android.model.TaskStatusEnum.OK; import static com.openfarmanager.android.model.TaskStatusEnum.createNetworkError; public class RenameOnNetworkTask extends NetworkActionTask { private String mDestinationFileName; private FileProxy mSrcFile; public RenameOnNetworkTask(BaseFileSystemPanel panel, String destinationName, FileProxy file) { super(panel, new ArrayList<>()); mItems = new ArrayList<>(); mSrcFile = file; mDestinationFileName = destinationName; initNetworkPanelInfo(panel); } @Override protected TaskStatusEnum doInBackground(Void... voids) { if (mDestinationFileName == null || mDestinationFileName.trim().equals("")) { return ERROR_WRONG_DESTINATION_FILE_NAME; } try { if (!getApi().rename(mSrcFile, mSrcFile.getParentPath() + (mSrcFile.getParentPath().endsWith("/") ? "" : "/") + mDestinationFileName)) { return ERROR_RENAME_FILE; } } catch (NullPointerException e) { return ERROR_FILE_NOT_EXISTS; } catch (DropboxException e) { return createNetworkError(NetworkException.handleNetworkException(e)); } catch (Exception e) { return ERROR_RENAME_FILE; } return OK; } }