package org.openintents.filemanager.dialogs;
import java.io.File;
import org.openintents.filemanager.R;
import org.openintents.filemanager.dialogs.OverwriteFileDialog.Overwritable;
import org.openintents.filemanager.lists.FileListFragment;
import org.openintents.filemanager.util.UIUtils;
import org.openintents.intents.FileManagerIntents;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class CreateDirectoryDialog extends DialogFragment implements Overwritable {
private File mIn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mIn = new File(getArguments().getString(FileManagerIntents.EXTRA_DIR_PATH));
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
LayoutInflater inflater = LayoutInflater.from(getActivity());
LinearLayout view = (LinearLayout) inflater.inflate(
R.layout.dialog_text_input, null);
final EditText v = (EditText) view.findViewById(R.id.foldername);
v.setHint(R.string.folder_name);
v.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView text, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_GO)
createFolder(text.getText(), getActivity());
return true;
}
});
return new AlertDialog.Builder(getActivity())
.setInverseBackgroundForced(UIUtils.shouldDialogInverseBackground(getActivity()))
.setTitle(R.string.create_new_folder)
.setIcon(android.R.drawable.ic_dialog_alert)
.setView(view)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
createFolder(v.getText(), getActivity());
}
}).setNegativeButton(android.R.string.cancel, null)
.create();
}
private void createFolder(final CharSequence text, Context c) {
if (text.length() != 0) {
tbcreated = new File(mIn + File.separator + text.toString());
if (tbcreated.exists()) {
this.text = text;
this.c = c;
OverwriteFileDialog dialog = new OverwriteFileDialog();
dialog.setTargetFragment(this, 0);
dialog.show(getFragmentManager(), "OverwriteFileDialog");
} else {
if (tbcreated.mkdirs())
Toast.makeText(c, R.string.create_dir_success, Toast.LENGTH_SHORT).show();
else
Toast.makeText(c, R.string.create_dir_failure, Toast.LENGTH_SHORT).show();
((FileListFragment) getTargetFragment()).refresh();
dismiss();
}
}
}
private File tbcreated;
private CharSequence text;
private Context c;
@Override
public void overwrite() {
tbcreated.delete();
createFolder(text, c);
}
}