Merge "Move create folder and sort to overflow menu, cleanup back behavior."

This commit is contained in:
Steve McKay
2016-02-05 17:27:19 +00:00
committed by Android (Google) Code Review
5 changed files with 53 additions and 61 deletions

View File

@@ -31,23 +31,6 @@
android:actionViewClass="android.widget.SearchView"
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"
@@ -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"
@@ -79,6 +62,23 @@
android:showAsAction="never"
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"

View File

@@ -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();
if (mDrawer.isOpen()) {
mDrawer.setOpen(false);
} else if (size > 1) {
// 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;
}
// 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) {

View File

@@ -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);

View File

@@ -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);

View File

@@ -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;