diff options
| author | 2016-02-05 17:27:19 +0000 | |
|---|---|---|
| committer | 2016-02-05 17:27:20 +0000 | |
| commit | 90bfa1580bd1f98fc9ad67acaff565d1ba58bef5 (patch) | |
| tree | fe0a3244b0e57354bdf1041c7eae9778b667512f | |
| parent | 6c89fa4988eef0ff7ecbc60b7568a3766907a2ab (diff) | |
| parent | f873769fba261fb26446b5082fddc4ca2724d931 (diff) | |
Merge "Move create folder and sort to overflow menu, cleanup back behavior."
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 @@ -32,23 +32,6 @@ android:imeOptions="actionSearch" android:visible="false" /> <item - android:id="@+id/menu_sort" - android:title="@string/menu_sort" - android:icon="@drawable/ic_menu_sortby" - android:showAsAction="always"> - <menu> - <item - android:id="@+id/menu_sort_name" - android:title="@string/sort_name" /> - <item - android:id="@+id/menu_sort_date" - android:title="@string/sort_date" /> - <item - android:id="@+id/menu_sort_size" - android:title="@string/sort_size" /> - </menu> - </item> - <item android:id="@+id/menu_grid" android:title="@string/menu_grid" android:icon="@drawable/ic_menu_view_grid" @@ -70,7 +53,7 @@ android:title="@string/menu_create_dir" android:icon="@drawable/ic_menu_new_folder" android:alphabeticShortcut="e" - android:showAsAction="always" + android:showAsAction="never" android:visible="false" /> <item android:id="@+id/menu_paste_from_clipboard" @@ -80,6 +63,23 @@ android:visible="false" /> <!-- Copy action is defined in mode_directory.xml --> <item + android:id="@+id/menu_sort" + android:title="@string/menu_sort" + android:icon="@drawable/ic_menu_sortby" + android:showAsAction="never"> + <menu> + <item + android:id="@+id/menu_sort_name" + android:title="@string/sort_name" /> + <item + android:id="@+id/menu_sort_date" + android:title="@string/sort_date" /> + <item + android:id="@+id/menu_sort_size" + android:title="@string/sort_size" /> + </menu> + </item> + <item android:id="@+id/menu_file_size" android:showAsAction="never" android:visible="false" /> diff --git a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java index 1e11b4e2f854..3c21a214b19b 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java @@ -65,6 +65,9 @@ public abstract class BaseActivity extends Activity static final String EXTRA_STATE = "state"; + // See comments where this const is referenced for details. + private static final int DRAWER_NO_FIDDLE_DELAY = 1500; + State mState; RootsCache mRoots; SearchManager mSearchManager; @@ -72,9 +75,14 @@ public abstract class BaseActivity extends Activity NavigationView mNavigator; private final String mTag; + @LayoutRes private int mLayoutId; + // Track the time we opened the drawer in response to back being pressed. + // We use the time gap to figure out whether to close app or reopen the drawer. + private long mDrawerLastFiddled; + public abstract void onDocumentPicked(DocumentInfo doc, @Nullable SiblingProvider siblings); public abstract void onDocumentsPicked(List<DocumentInfo> 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 @@ -221,14 +221,6 @@ public class DocumentsActivity extends BaseActivity { } @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 @@ -185,14 +185,6 @@ public class FilesActivity extends BaseActivity { } @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; |