summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Steve McKay <smckay@google.com> 2016-02-05 17:27:19 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-02-05 17:27:20 +0000
commit90bfa1580bd1f98fc9ad67acaff565d1ba58bef5 (patch)
treefe0a3244b0e57354bdf1041c7eae9778b667512f
parent6c89fa4988eef0ff7ecbc60b7568a3766907a2ab (diff)
parentf873769fba261fb26446b5082fddc4ca2724d931 (diff)
Merge "Move create folder and sort to overflow menu, cleanup back behavior."
-rw-r--r--packages/DocumentsUI/res/menu/activity.xml36
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java54
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java8
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/DownloadsActivity.java2
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java14
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;