From f873769fba261fb26446b5082fddc4ca2724d931 Mon Sep 17 00:00:00 2001 From: Steve McKay Date: Thu, 4 Feb 2016 19:40:45 -0800 Subject: Move create folder and sort to overflow menu, cleanup back behavior. Improved drawer management in reponse to back button presses: - if drawer is open (and we didn't just open it), close it. - if at top of root (and we didn't close root) open it. - there's a timeout on this behavior such that pressing back a second time within a 1.5 second perior will NOT initiate the behaviors described above. Change-Id: I5990848cd3047d9dc985ec10e57ab3a0f99ce79c --- packages/DocumentsUI/res/menu/activity.xml | 36 +++++++-------- .../src/com/android/documentsui/BaseActivity.java | 54 +++++++++++++--------- .../com/android/documentsui/DocumentsActivity.java | 8 ---- .../com/android/documentsui/DownloadsActivity.java | 2 - .../src/com/android/documentsui/FilesActivity.java | 14 +----- 5 files changed, 53 insertions(+), 61 deletions(-) diff --git a/packages/DocumentsUI/res/menu/activity.xml b/packages/DocumentsUI/res/menu/activity.xml index b791ef12b6f3..73571af20134 100644 --- a/packages/DocumentsUI/res/menu/activity.xml +++ b/packages/DocumentsUI/res/menu/activity.xml @@ -31,23 +31,6 @@ android:actionViewClass="android.widget.SearchView" android:imeOptions="actionSearch" android:visible="false" /> - - - - - - - + + + + + + + docs); @@ -232,21 +240,6 @@ public abstract class BaseActivity extends Activity } } - void expandMenus(Menu menu) { - for (int i = 0; i < menu.size(); i++) { - final MenuItem item = menu.getItem(i); - switch (item.getItemId()) { - case R.id.menu_advanced: - case R.id.menu_file_size: - case R.id.menu_new_window: - case R.id.menu_search: - break; - default: - item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); - } - } - } - @Override public boolean onOptionsItemSelected(MenuItem item) { @@ -541,16 +534,35 @@ public abstract class BaseActivity extends Activity return; } - final int size = mState.stack.size(); + int size = mState.stack.size(); + + // Do some "do what a I want" drawer fiddling, but don't + // do it if user already hit back recently and we recently + // did some fiddling. + if ((System.currentTimeMillis() - mDrawerLastFiddled) > DRAWER_NO_FIDDLE_DELAY) { + // Close drawer if it is open. + if (mDrawer.isOpen()) { + mDrawer.setOpen(false); + mDrawerLastFiddled = System.currentTimeMillis(); + return; + } - if (mDrawer.isOpen()) { - mDrawer.setOpen(false); - } else if (size > 1) { + // Open the Close drawer if it is closed and we're at the top of a root. + if (size == 1) { + mDrawer.setOpen(true); + // Remember so we don't just close it again if back is pressed again. + mDrawerLastFiddled = System.currentTimeMillis(); + return; + } + } + + if (size > 1) { mState.stack.pop(); refreshCurrentRootAndDirectory(ANIM_LEAVE); - } else { - super.onBackPressed(); + return; } + + super.onBackPressed(); } public void onStackPicked(DocumentStack stack) { diff --git a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java index 5a092dbac66c..3485fe4446f5 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java @@ -220,14 +220,6 @@ public class DocumentsActivity extends BaseActivity { return title; } - @Override - public boolean onCreateOptionsMenu(Menu menu) { - boolean showMenu = super.onCreateOptionsMenu(menu); - - expandMenus(menu); - return showMenu; - } - @Override public boolean onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); diff --git a/packages/DocumentsUI/src/com/android/documentsui/DownloadsActivity.java b/packages/DocumentsUI/src/com/android/documentsui/DownloadsActivity.java index dae4bf7418df..d589d5e0e237 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DownloadsActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DownloadsActivity.java @@ -100,14 +100,12 @@ public class DownloadsActivity extends BaseActivity { final MenuItem advanced = menu.findItem(R.id.menu_advanced); final MenuItem createDir = menu.findItem(R.id.menu_create_dir); - final MenuItem newWindow = menu.findItem(R.id.menu_new_window); final MenuItem pasteFromCb = menu.findItem(R.id.menu_paste_from_clipboard); final MenuItem fileSize = menu.findItem(R.id.menu_file_size); advanced.setVisible(false); createDir.setVisible(false); pasteFromCb.setEnabled(false); - newWindow.setEnabled(false); fileSize.setVisible(false); Menus.disableHiddenItems(menu); diff --git a/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java b/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java index c55f814dfef2..c81f342822f6 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java @@ -184,14 +184,6 @@ public class FilesActivity extends BaseActivity { return getResources().getString(R.string.files_label); } - @Override - public boolean onCreateOptionsMenu(Menu menu) { - boolean showMenu = super.onCreateOptionsMenu(menu); - - expandMenus(menu); - return showMenu; - } - @Override public boolean onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); @@ -201,15 +193,13 @@ public class FilesActivity extends BaseActivity { final MenuItem createDir = menu.findItem(R.id.menu_create_dir); final MenuItem pasteFromCb = menu.findItem(R.id.menu_paste_from_clipboard); final MenuItem settings = menu.findItem(R.id.menu_settings); + final MenuItem newWindow = menu.findItem(R.id.menu_new_window); createDir.setVisible(true); createDir.setEnabled(canCreateDirectory()); pasteFromCb.setEnabled(mClipper.hasItemsToPaste()); settings.setVisible(root.hasSettings()); - - // TODO: For some reason settings menu item is not - // honoring the "showAsAction=never" setting in activity.xml. - settings.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); + newWindow.setVisible(true); Menus.disableHiddenItems(menu, pasteFromCb); return true; -- cgit v1.2.3-59-g8ed1b