/* * Copyright (C) 2008 OpenIntents.org * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * Based on AndDev.org's file browser V 2.0. */ package org.openintents.filemanager; import java.io.File; import java.util.ArrayList; import java.util.List; import org.openintents.filemanager.intents.FileManagerIntents; import org.openintents.filemanager.util.FileUtils; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.TextUtils; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import com.robert.maps.applib.R; public class FileManagerActivity extends ListActivity { private int mState; private static final int STATE_BROWSE = 1; private static final int STATE_PICK_FILE = 2; private static final int STATE_PICK_DIRECTORY = 3; private static final String BUNDLE_CURRENT_DIRECTORY = "current_directory"; private static final String BUNDLE_CONTEXT_FILE = "context_file"; private static final String BUNDLE_CONTEXT_TEXT = "context_text"; private static final String BUNDLE_SHOW_DIRECTORY_INPUT = "show_directory_input"; private static final String BUNDLE_STEPS_BACK = "steps_back"; /** Contains directories and files together */ private ArrayList<IconifiedText> directoryEntries = new ArrayList<IconifiedText>(); /** Dir separate for sorting */ List<IconifiedText> mListDir = new ArrayList<IconifiedText>(); /** Files separate for sorting */ List<IconifiedText> mListFile = new ArrayList<IconifiedText>(); /** SD card separate for sorting */ List<IconifiedText> mListSdCard = new ArrayList<IconifiedText>(); private File currentDirectory = new File(""); private String mSdCardPath = ""; //private MimeTypes mMimeTypes; private String mContextText; private File mContextFile = new File(""); /** How many steps one can make back using the back key. */ private int mStepsBack; private EditText mEditFilename; private Button mButtonPick; // private LinearLayout mDirectoryButtons; private LinearLayout mDirectoryInput; private EditText mEditDirectory; private ImageButton mButtonDirectoryPick; private TextView mEmptyText; private TextView mPathText; // private ProgressBar mProgressBar; private DirectoryScanner mDirectoryScanner; private File mPreviousDirectory; // private ThumbnailLoader mThumbnailLoader; private Handler currentHandler; static final public int MESSAGE_SHOW_DIRECTORY_CONTENTS = 500; // List of contents is ready, obj = DirectoryContents /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); currentHandler = new Handler() { public void handleMessage(Message msg) { FileManagerActivity.this.handleMessage(msg); } }; requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); setContentView(R.layout.filelist); mEmptyText = (TextView) findViewById(R.id.empty_text); mPathText = (TextView) findViewById(R.id.path); getListView().setEmptyView(findViewById(R.id.empty)); getListView().setTextFilterEnabled(true); getListView().requestFocus(); getListView().requestFocusFromTouch(); // mDirectoryButtons = (LinearLayout) findViewById(R.id.directory_buttons); // mEditFilename = (EditText) findViewById(R.id.filename); // // mButtonPick = (Button) findViewById(R.id.button_pick); mButtonPick.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { pickFileOrDirectory(); } }); // Initialize only when necessary: mDirectoryInput = null; // Create map of extensions: mState = STATE_BROWSE; Intent intent = getIntent(); String action = intent.getAction(); File browseto = new File("/"); if (!TextUtils.isEmpty(mSdCardPath)) { browseto = new File(mSdCardPath); } if (action != null) { if (action.equals(FileManagerIntents.ACTION_PICK_FILE)) { mState = STATE_PICK_FILE; mButtonPick.setVisibility(View.GONE); } else if (action.equals(FileManagerIntents.ACTION_PICK_DIRECTORY)) { mState = STATE_PICK_DIRECTORY; // Remove edit text and make button fill whole line // mEditFilename.setVisibility(View.GONE); // mButtonPick.setLayoutParams(new LinearLayout.LayoutParams( // LinearLayout.LayoutParams.FILL_PARENT, // LinearLayout.LayoutParams.WRAP_CONTENT)); } } if (mState == STATE_BROWSE) { // Remove edit text and button. //mEditFilename.setVisibility(View.GONE); mButtonPick.setVisibility(View.GONE); } // Set current directory and file based on intent data. File file = FileUtils.getFile(intent.getData()); if (file != null) { File dir = FileUtils.getPathWithoutFilename(file); if (dir.isDirectory()) { browseto = dir; } // if (!file.isDirectory()) { // mEditFilename.setText(file.getName()); // } } // // String title = intent.getStringExtra(FileManagerIntents.EXTRA_TITLE); // if (title != null) { // setTitle(title); // } // // String buttontext = intent.getStringExtra(FileManagerIntents.EXTRA_BUTTON_TEXT); // if (buttontext != null) { // mButtonPick.setText(buttontext); // } mStepsBack = 0; if (icicle != null) { browseto = new File(icicle.getString(BUNDLE_CURRENT_DIRECTORY)); mContextFile = new File(icicle.getString(BUNDLE_CONTEXT_FILE)); mContextText = icicle.getString(BUNDLE_CONTEXT_TEXT); boolean show = icicle.getBoolean(BUNDLE_SHOW_DIRECTORY_INPUT); showDirectoryInput(show); mStepsBack = icicle.getInt(BUNDLE_STEPS_BACK); } browseTo(browseto); } public void onDestroy() { super.onDestroy(); // Stop the scanner. DirectoryScanner scanner = mDirectoryScanner; if (scanner != null) { scanner.cancel = true; } mDirectoryScanner = null; // ThumbnailLoader loader = mThumbnailLoader; // // if (loader != null) { // loader.cancel = true; //// mThumbnailLoader = null; // } } private void handleMessage(Message message) { // Log.v(TAG, "Received message " + message.what); switch (message.what) { case MESSAGE_SHOW_DIRECTORY_CONTENTS: showDirectoryContents((DirectoryContents) message.obj); break; } } // private void notifyIconChanged(IconifiedText text) { // if (getListAdapter() != null) { // ((BaseAdapter) getListAdapter()).notifyDataSetChanged(); // } // } // // private void setProgress(int progress, int maxProgress) { // mProgressBar.setMax(maxProgress); // mProgressBar.setProgress(progress); // mProgressBar.setVisibility(View.VISIBLE); // } // private void showDirectoryContents(DirectoryContents contents) { mDirectoryScanner = null; mListSdCard = contents.listSdCard; mListDir = contents.listDir; mListFile = contents.listFile; directoryEntries.ensureCapacity(mListSdCard.size() + mListDir.size() + mListFile.size()); addAllElements(directoryEntries, mListSdCard); addAllElements(directoryEntries, mListDir); addAllElements(directoryEntries, mListFile); IconifiedTextListAdapter itla = new IconifiedTextListAdapter(this); itla.setListItems(directoryEntries, getListView().hasTextFilter()); setListAdapter(itla); getListView().setTextFilterEnabled(true); selectInList(mPreviousDirectory); refreshDirectoryPanel(); setProgressBarIndeterminateVisibility(false); // mProgressBar.setVisibility(View.GONE); mEmptyText.setVisibility(View.VISIBLE); // mThumbnailLoader = new ThumbnailLoader(currentDirectory, mListFile, currentHandler); // mThumbnailLoader.start(); } private void onCreateDirectoryInput() { // mDirectoryInput = (LinearLayout) findViewById(R.id.directory_input); // mEditDirectory = (EditText) findViewById(R.id.directory_text); // // mButtonDirectoryPick = (ImageButton) findViewById(R.id.button_directory_pick); // // mButtonDirectoryPick.setOnClickListener(new View.OnClickListener() { // // public void onClick(View arg0) { // goToDirectoryInEditText(); // } // }); } //private boolean mHaveShownErrorMessage; private File mHaveShownErrorMessageForFile = null; private void goToDirectoryInEditText() { File browseto = new File(mEditDirectory.getText().toString()); if (browseto.equals(currentDirectory)) { showDirectoryInput(false); } else { if (mHaveShownErrorMessageForFile != null && mHaveShownErrorMessageForFile.equals(browseto)) { // Don't let user get stuck in wrong directory. mHaveShownErrorMessageForFile = null; showDirectoryInput(false); } else { if (!browseto.exists()) { // browseTo() below will show an error message, // because file does not exist. // It is ok to show this the first time. mHaveShownErrorMessageForFile = browseto; } browseTo(browseto); } } } /** * Show the directory line as input box instead of button row. * If Directory input does not exist yet, it is created. * Since the default is show == false, nothing is created if * it is not necessary (like after icicle). * @param show */ private void showDirectoryInput(boolean show) { if (show) { if (mDirectoryInput == null) { onCreateDirectoryInput(); } } if (mDirectoryInput != null) { mDirectoryInput.setVisibility(show ? View.VISIBLE : View.GONE); // mDirectoryButtons.setVisibility(show ? View.GONE : View.VISIBLE); } refreshDirectoryPanel(); } /** * */ private void refreshDirectoryPanel() { String path = currentDirectory.getAbsolutePath(); if (isDirectoryInputVisible()) { // Set directory path mEditDirectory.setText(path); // Set selection to last position so user can continue to type: mEditDirectory.setSelection(path.length()); } else { //setDirectoryButtons(); mPathText.setText(path); } } /* @Override protected void onResume() { super.onResume(); } */ @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); // remember file name outState.putString(BUNDLE_CURRENT_DIRECTORY, currentDirectory.getAbsolutePath()); outState.putString(BUNDLE_CONTEXT_FILE, mContextFile.getAbsolutePath()); outState.putString(BUNDLE_CONTEXT_TEXT, mContextText); boolean show = isDirectoryInputVisible(); outState.putBoolean(BUNDLE_SHOW_DIRECTORY_INPUT, show); outState.putInt(BUNDLE_STEPS_BACK, mStepsBack); } /** * @return */ private boolean isDirectoryInputVisible() { return ((mDirectoryInput != null) && (mDirectoryInput.getVisibility() == View.VISIBLE)); } private void pickFileOrDirectory() { File file = null; if (mState == STATE_PICK_FILE) { String filename = mEditFilename.getText().toString(); file = FileUtils.getFile(currentDirectory.getAbsolutePath(), filename); } else if (mState == STATE_PICK_DIRECTORY) { file = currentDirectory; } Intent intent = getIntent(); intent.setData(FileUtils.getUri(file)); setResult(RESULT_OK, intent); finish(); } /** * This function browses up one level * according to the field: currentDirectory */ private void upOneLevel(){ if (mStepsBack > 0) { mStepsBack--; } if(currentDirectory.getParent() != null) browseTo(currentDirectory.getParentFile()); } /** * Jump to some location by clicking on a * directory button. * * This resets the counter for "back" actions. * * @param aDirectory */ private void jumpTo(final File aDirectory) { mStepsBack = 0; browseTo(aDirectory); } /** * Browse to some location by clicking on a list item. * @param aDirectory */ private void browseTo(final File aDirectory){ // setTitle(aDirectory.getAbsolutePath()); if (aDirectory.isDirectory()){ if (aDirectory.equals(currentDirectory)) { // Switch from button to directory input showDirectoryInput(true); } else { mPreviousDirectory = currentDirectory; currentDirectory = aDirectory; refreshList(); // selectInList(previousDirectory); // refreshDirectoryPanel(); } } // else{ // if (mState == STATE_BROWSE || mState == STATE_PICK_DIRECTORY) { // // Lets start an intent to View the file, that was clicked... // //openFile(aDirectory); // } else if (mState == STATE_PICK_FILE) { // // Pick the file // mEditFilename.setText(aDirectory.getName()); // } // } } private void refreshList() { // Cancel an existing scanner, if applicable. DirectoryScanner scanner = mDirectoryScanner; if (scanner != null) { scanner.cancel = true; } // ThumbnailLoader loader = mThumbnailLoader; // if (loader != null) { // loader.cancel = true; // mThumbnailLoader = null; // } directoryEntries.clear(); mListDir.clear(); mListFile.clear(); mListSdCard.clear(); setProgressBarIndeterminateVisibility(true); // Don't show the "folder empty" text since we're scanning. mEmptyText.setVisibility(View.GONE); // Also DON'T show the progress bar - it's kind of lame to show that // for less than a second. // mProgressBar.setVisibility(View.GONE); setListAdapter(null); mDirectoryScanner = new DirectoryScanner(currentDirectory, this, currentHandler); mDirectoryScanner.start(); // Add the "." == "current directory" /*directoryEntries.add(new IconifiedText( getString(R.string.current_dir), getResources().getDrawable(R.drawable.ic_launcher_folder))); */ // and the ".." == 'Up one level' /* if(currentDirectory.getParent() != null) directoryEntries.add(new IconifiedText( getString(R.string.up_one_level), getResources().getDrawable(R.drawable.ic_launcher_folder_open))); */ } private void selectInList(File selectFile) { String filename = selectFile.getName(); IconifiedTextListAdapter la = (IconifiedTextListAdapter) getListAdapter(); int count = la.getCount(); for (int i = 0; i < count; i++) { IconifiedText it = (IconifiedText) la.getItem(i); if (it.getText().equals(filename)) { getListView().setSelection(i); break; } } } private void addAllElements(List<IconifiedText> addTo, List<IconifiedText> addFrom) { int size = addFrom.size(); for (int i = 0; i < size; i++) { addTo.add(addFrom.get(i)); } } // private void setDirectoryButtons() { // String[] parts = currentDirectory.getAbsolutePath().split("/"); // // mDirectoryButtons.removeAllViews(); // // int WRAP_CONTENT = LinearLayout.LayoutParams.WRAP_CONTENT; // // // Add home button separately // ImageButton ib = new ImageButton(this); // //ib.setImageResource(R.drawable.ic_launcher_home_small); // ib.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)); // ib.setOnClickListener(new View.OnClickListener() { // public void onClick(View view) { // jumpTo(new File("/")); // } // }); // mDirectoryButtons.addView(ib); // // // Add other buttons // // String dir = ""; // // for (int i = 1; i < parts.length; i++) { // dir += "/" + parts[i]; // if (dir.equals(mSdCardPath)) { // // Add SD card button // ib = new ImageButton(this); // //ib.setImageResource(R.drawable.icon_sdcard_small); // ib.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)); // ib.setOnClickListener(new View.OnClickListener() { // public void onClick(View view) { // jumpTo(new File(mSdCardPath)); // } // }); // mDirectoryButtons.addView(ib); // } else { // Button b = new Button(this); // b.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)); // b.setText(parts[i]); // b.setTag(dir); // b.setOnClickListener(new View.OnClickListener() { // public void onClick(View view) { // String dir = (String) view.getTag(); // jumpTo(new File(dir)); // } // }); // mDirectoryButtons.addView(b); // } // } // // checkButtonLayout(); // } // // private void checkButtonLayout() { // // // Let's measure how much space we need: // int spec = View.MeasureSpec.UNSPECIFIED; // mDirectoryButtons.measure(spec, spec); // int count = mDirectoryButtons.getChildCount(); // // int requiredwidth = mDirectoryButtons.getMeasuredWidth(); // int width = getWindowManager().getDefaultDisplay().getWidth(); // // if (requiredwidth > width) { // int WRAP_CONTENT = LinearLayout.LayoutParams.WRAP_CONTENT; // // // Create a new button that shows that there is more to the left: // ImageButton ib = new ImageButton(this); // //ib.setImageResource(R.drawable.ic_menu_back_small); // ib.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)); // // // ib.setOnClickListener(new View.OnClickListener() { // public void onClick(View view) { // // Up one directory. // upOneLevel(); // } // }); // mDirectoryButtons.addView(ib, 0); // // // New button needs even more space // ib.measure(spec, spec); // requiredwidth += ib.getMeasuredWidth(); // // // Need to take away some buttons // // but leave at least "back" button and one directory button. // while (requiredwidth > width && mDirectoryButtons.getChildCount() > 2) { // View view = mDirectoryButtons.getChildAt(1); // requiredwidth -= view.getMeasuredWidth(); // // mDirectoryButtons.removeViewAt(1); // } // } // } // @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); IconifiedTextListAdapter adapter = (IconifiedTextListAdapter) getListAdapter(); if (adapter == null) { return; } IconifiedText text = (IconifiedText) adapter.getItem(position); String file = text.getText(); if (file.equals("...")) { upOneLevel(); } else { String curdir = currentDirectory.getAbsolutePath(); File clickedFile = FileUtils.getFile(curdir, file); if (clickedFile != null) { if (clickedFile.isDirectory()) { // If we click on folders, we can return later by the "back" key. mStepsBack++; browseTo(clickedFile); } else if(mState == STATE_BROWSE || mState == STATE_PICK_FILE) { Intent intent = getIntent(); intent.setData(FileUtils.getUri(clickedFile)); setResult(RESULT_OK, intent); finish(); } } } } // @Override // public boolean onCreateOptionsMenu(Menu menu) { // super.onCreateOptionsMenu(menu); // // menu.add(0, MENU_NEW_FOLDER, 0, R.string.menu_new_folder).setIcon( // android.R.drawable.ic_menu_add).setShortcut('0', 'f'); // // UpdateMenu // .addUpdateMenu(this, menu, 0, MENU_UPDATE, 0, R.string.update); // menu.add(0, MENU_ABOUT, 0, R.string.about).setIcon( // android.R.drawable.ic_menu_info_details).setShortcut('0', 'a'); // // return true; // } // // // @Override // public boolean onPrepareOptionsMenu(Menu menu) { // super.onPrepareOptionsMenu(menu); // // // Generate any additional actions that can be performed on the // // overall list. This allows other applications to extend // // our menu with their own actions. // Intent intent = new Intent(null, getIntent().getData()); // intent.addCategory(Intent.CATEGORY_ALTERNATIVE); // // menu.addIntentOptions(Menu.CATEGORY_ALTERNATIVE, 0, 0, // // new ComponentName(this, NoteEditor.class), null, intent, 0, null); // // // Workaround to add icons: // MenuIntentOptionsWithIcons menu2 = new MenuIntentOptionsWithIcons(this, // menu); // menu2.addIntentOptions(Menu.CATEGORY_ALTERNATIVE, 0, 0, // new ComponentName(this, FileManagerActivity.class), null, intent, // 0, null); // // return true; // } // // @Override // public boolean onOptionsItemSelected(MenuItem item) { // //Intent intent; // switch (item.getItemId()) { // case MENU_NEW_FOLDER: // showDialog(DIALOG_NEW_FOLDER); // return true; // // case MENU_UPDATE: // UpdateMenu.showUpdateBox(this); // return true; // // case MENU_ABOUT: // showAboutBox(); // return true; ///* // case MENU_PREFERENCES: // intent = new Intent(this, PreferenceActivity.class); // startActivity(intent); // return true; // */ // } // return super.onOptionsItemSelected(item); // // } // // @Override // public void onCreateContextMenu(ContextMenu menu, View view, // ContextMenuInfo menuInfo) { // AdapterView.AdapterContextMenuInfo info; // try { // info = (AdapterView.AdapterContextMenuInfo) menuInfo; // } catch (ClassCastException e) { // Log.e(TAG, "bad menuInfo", e); // return; // } ///* // Cursor cursor = (Cursor) getListAdapter().getItem(info.position); // if (cursor == null) { // // For some reason the requested item isn't available, do nothing // return; // } //*/ // IconifiedTextListAdapter adapter = (IconifiedTextListAdapter) getListAdapter(); // // if (adapter == null) { // return; // } // // IconifiedText it = (IconifiedText) adapter.getItem(info.position); // menu.setHeaderTitle(it.getText()); // menu.setHeaderIcon(it.getIcon()); // File file = FileUtils.getFile(currentDirectory, it.getText()); // // // if (!file.isDirectory()) { // if (mState == STATE_PICK_FILE) { // // Show "open" menu // menu.add(0, MENU_OPEN, 0, R.string.menu_open); // } // menu.add(0, MENU_SEND, 0, R.string.menu_send); // } // menu.add(0, MENU_MOVE, 0, R.string.menu_move); // // if (!file.isDirectory()) { // menu.add(0, MENU_COPY, 0, R.string.menu_copy); // } // // menu.add(0, MENU_RENAME, 0, R.string.menu_rename); // menu.add(0, MENU_DELETE, 0, R.string.menu_delete); // // //if (!file.isDirectory()) { // Uri data = Uri.fromFile(file); // Intent intent = new Intent(null, data); // String type = mMimeTypes.getMimeType(file.getName()); // // intent.setDataAndType(data, type); // //intent.addCategory(Intent.CATEGORY_SELECTED_ALTERNATIVE); // // Log.v(TAG, "Data=" + data); // Log.v(TAG, "Type=" + type); // // if (type != null) { // // Add additional options for the MIME type of the selected file. // menu.addIntentOptions(Menu.CATEGORY_ALTERNATIVE, 0, 0, // new ComponentName(this, FileManagerActivity.class), null, intent, 0, null); // } // //} // } // // @Override // public boolean onContextItemSelected(MenuItem item) { // super.onContextItemSelected(item); // AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item // .getMenuInfo(); // // // Remember current selection // IconifiedTextListAdapter adapter = (IconifiedTextListAdapter) getListAdapter(); // // if (adapter == null) { // return false; // } // // IconifiedText ic = (IconifiedText) adapter.getItem(menuInfo.position); // mContextText = ic.getText(); // mContextIcon = ic.getIcon(); // mContextFile = FileUtils.getFile(currentDirectory, ic.getText()); // // switch (item.getItemId()) { // case MENU_OPEN: // openFile(mContextFile); // return true; // // case MENU_MOVE: // promptDestinationAndMoveFile(); // return true; // // case MENU_COPY: // promptDestinationAndCopyFile(); // return true; // // case MENU_DELETE: // showDialog(DIALOG_DELETE); // return true; // // case MENU_RENAME: // showDialog(DIALOG_RENAME); // return true; // // case MENU_SEND: // sendFile(mContextFile); // return true; // } // // return false; // } // // @Override // protected Dialog onCreateDialog(int id) { // // switch (id) { // case DIALOG_NEW_FOLDER: // LayoutInflater inflater = LayoutInflater.from(this); // View view = inflater.inflate(R.layout.dialog_new_folder, null); // final EditText et = (EditText) view // .findViewById(R.id.foldername); // et.setText(""); // return new AlertDialog.Builder(this) // .setIcon(android.R.drawable.ic_dialog_alert) // .setTitle(R.string.create_new_folder).setView(view).setPositiveButton( // android.R.string.ok, new OnClickListener() { // // public void onClick(DialogInterface dialog, int which) { // createNewFolder(et.getText().toString()); // } // // }).setNegativeButton(android.R.string.cancel, new OnClickListener() { // // public void onClick(DialogInterface dialog, int which) { // // Cancel should not do anything. // } // // }).create(); // // // case DIALOG_DELETE: // return new AlertDialog.Builder(this).setTitle(getString(R.string.really_delete, mContextText)) // .setIcon(android.R.drawable.ic_dialog_alert).setPositiveButton( // android.R.string.ok, new OnClickListener() { // // public void onClick(DialogInterface dialog, int which) { // deleteFileOrFolder(mContextFile); // } // // }).setNegativeButton(android.R.string.cancel, new OnClickListener() { // // public void onClick(DialogInterface dialog, int which) { // // Cancel should not do anything. // } // // }).create(); // // case DIALOG_RENAME: // inflater = LayoutInflater.from(this); // view = inflater.inflate(R.layout.dialog_new_folder, null); // final EditText et2 = (EditText) view // .findViewById(R.id.foldername); // return new AlertDialog.Builder(this) // .setTitle(R.string.menu_rename).setView(view).setPositiveButton( // android.R.string.ok, new OnClickListener() { // // public void onClick(DialogInterface dialog, int which) { // // renameFileOrFolder(mContextFile, et2.getText().toString()); // } // // }).setNegativeButton(android.R.string.cancel, new OnClickListener() { // // public void onClick(DialogInterface dialog, int which) { // // Cancel should not do anything. // } // // }).create(); // //// case DIALOG_ABOUT: //// return new AboutDialog(this); // // } // return null; // // } // // // @Override // protected void onPrepareDialog(int id, Dialog dialog) { // super.onPrepareDialog(id, dialog); // // switch (id) { // case DIALOG_NEW_FOLDER: // EditText et = (EditText) dialog.findViewById(R.id.foldername); // et.setText(""); // break; // // case DIALOG_DELETE: // ((AlertDialog) dialog).setTitle(getString(R.string.really_delete, mContextText)); // break; // // case DIALOG_RENAME: // et = (EditText) dialog.findViewById(R.id.foldername); // et.setText(mContextText); // TextView tv = (TextView) dialog.findViewById(R.id.foldernametext); // if (mContextFile.isDirectory()) { // tv.setText(R.string.file_name); // } else { // tv.setText(R.string.file_name); // } // ((AlertDialog) dialog).setIcon(mContextIcon); // break; // // case DIALOG_ABOUT: // break; // } // } // // private void showAboutBox() { // //startActivity(new Intent(this, AboutDialog.class)); // AboutDialog.showDialogOrStartActivity(this, DIALOG_ABOUT); // } // // private void promptDestinationAndMoveFile() { // // Intent intent = new Intent(FileManagerIntents.ACTION_PICK_DIRECTORY); // // intent.setData(FileUtils.getUri(currentDirectory)); // // intent.putExtra(FileManagerIntents.EXTRA_TITLE, getString(R.string.move_title)); // intent.putExtra(FileManagerIntents.EXTRA_BUTTON_TEXT, getString(R.string.move_button)); // // startActivityForResult(intent, REQUEST_CODE_MOVE); // } // // private void promptDestinationAndCopyFile() { // // Intent intent = new Intent(FileManagerIntents.ACTION_PICK_DIRECTORY); // // intent.setData(FileUtils.getUri(currentDirectory)); // // intent.putExtra(FileManagerIntents.EXTRA_TITLE, getString(R.string.copy_title)); // intent.putExtra(FileManagerIntents.EXTRA_BUTTON_TEXT, getString(R.string.copy_button)); // // startActivityForResult(intent, REQUEST_CODE_COPY); // } // // @Override // public boolean onKeyDown(int keyCode, KeyEvent event) { // // if (keyCode == KeyEvent.KEYCODE_BACK) { // if (mStepsBack > 0) { // upOneLevel(); // return true; // } // } // // return super.onKeyDown(keyCode, event); // } // For targetSdkVersion="5" or higher, one needs to use the following code instead of the one above: // (See http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html ) /* //@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR && keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { // Take care of calling this method on earlier versions of // the platform where it doesn't exist. onBackPressed(); } return super.onKeyDown(keyCode, event); } //@Override public void onBackPressed() { // This will be called either automatically for you on 2.0 // or later, or by the code above on earlier versions of the // platform. if (mStepsBack > 0) { upOneLevel(); } else { finish(); } } */ }