package com.openfarmanager.android.dialogs; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.view.View; import com.openfarmanager.android.R; import com.openfarmanager.android.fragments.MainPanel; import com.openfarmanager.android.utils.Extensions; /** * author: Vlad Namashko */ public class CopyMoveFileDialog extends BaseFileDialog { private boolean mIsCopy; private boolean mIsRename; private String mDefaultDestination; public CopyMoveFileDialog(Context context, Handler handler, MainPanel inactivePanel) { super(context, handler, inactivePanel); mIsCopy = true; } public CopyMoveFileDialog(Context context, Handler handler, MainPanel inactivePanel, boolean isRename, String destination) { this(context, handler, inactivePanel); mIsCopy = false; mIsRename = isRename; mDefaultDestination = destination; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String destinationFolder = mDefaultDestination == null ? mInactivePanel.getCurrentPath() : mDefaultDestination; if (mIsCopy) { updateLabels(getSafeString(R.string.action_copy), getSafeString(R.string.copy_files), destinationFolder); } else { updateLabels(getSafeString(mIsRename ? R.string.action_rename : R.string.action_move), getSafeString(mIsRename ? R.string.rename_file : R.string.move_files), destinationFolder); } } @Override public int getContentView() { return R.layout.dialog_file_action_confirm; } @Override protected boolean validate() { if (Extensions.isNullOrEmpty(mDestination.getText().toString())) { setErrorMessage(getSafeString(R.string.error_destination_empty)); return false; } return true; } @Override protected void execute() { if (mIsCopy) { mHandler.sendMessage(mHandler.obtainMessage(MainPanel.FILE_COPY, new CopyMoveFileResult(mInactivePanel, mDestination.getText().toString()))); } else { mHandler.sendMessage(mHandler.obtainMessage(MainPanel.FILE_MOVE, new CopyMoveFileResult(mInactivePanel, mDestination.getText().toString(), mIsRename))); } } public class CopyMoveFileResult { public MainPanel inactivePanel; public String destination; public boolean isRename; public CopyMoveFileResult(MainPanel panel, String dest) { inactivePanel = panel; destination = dest; } public CopyMoveFileResult(MainPanel panel, String dest, boolean rename) { inactivePanel = panel; destination = dest; isRename = rename; } } }