diff options
| -rw-r--r-- | packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java index 648c79e9fc41..b67a6915add9 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java @@ -284,7 +284,7 @@ public abstract class BaseActivity extends Activity if (dir != null) { dir.pasteFromClipboard(); } - return true; + return true; case R.id.menu_advanced: setDisplayAdvancedDevices(!LocalPreferences.getDisplayAdvancedDevices(this)); @@ -456,7 +456,7 @@ public abstract class BaseActivity extends Activity DirectoryFragment dir = getDirectoryFragment(); if (dir != null) { dir.onSortOrderChanged(); - }; + } } /** @@ -473,7 +473,7 @@ public abstract class BaseActivity extends Activity DirectoryFragment dir = getDirectoryFragment(); if (dir != null) { dir.onViewModeChanged(); - }; + } } public void setPending(boolean pending) { @@ -561,9 +561,7 @@ public abstract class BaseActivity extends Activity } } - if (size > 1) { - mState.stack.pop(); - refreshCurrentRootAndDirectory(ANIM_LEAVE); + if (popDir()) { return; } @@ -603,8 +601,12 @@ public abstract class BaseActivity extends Activity return true; } } else if (keyCode == KeyEvent.KEYCODE_TAB) { + // Tab toggles focus on the navigation drawer. toggleNavDrawerFocus(); return true; + } else if (keyCode == KeyEvent.KEYCODE_DEL) { + popDir(); + return true; } return super.onKeyDown(keyCode, event); } @@ -641,6 +643,21 @@ public abstract class BaseActivity extends Activity } } + /** + * Pops the top entry off the directory stack, and returns the user to the previous directory. + * If the directory stack only contains one item, this method does nothing. + * + * @return Whether the stack was popped. + */ + private boolean popDir() { + if (mState.stack.size() > 1) { + mState.stack.pop(); + refreshCurrentRootAndDirectory(ANIM_LEAVE); + return true; + } + return false; + } + private static final class PickRootTask extends PairedTask<BaseActivity, Void, DocumentInfo> { private RootInfo mRoot; |