Merge "Move create folder and sort to overflow menu, cleanup back behavior."
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user