Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f873769f authored by Steve McKay's avatar Steve McKay
Browse files

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
parent a65d61a8
Loading
Loading
Loading
Loading
+18 −18
Original line number Diff line number Diff line
@@ -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"
+33 −21
Original line number Diff line number Diff line
@@ -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);
        } else if (size > 1) {
                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) {
+0 −8
Original line number Diff line number Diff line
@@ -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);
+0 −2
Original line number Diff line number Diff line
@@ -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);
+2 −12
Original line number Diff line number Diff line
@@ -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;