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

Commit 2a997f93 authored by Ben Lin's avatar Ben Lin Committed by android-build-merger
Browse files

Integrating Android Keyboard Helper to surface commands to users.

am: a8673231

Change-Id: Ia3e50e5e5034e29b25cf955892f98d404d5088d0
parents 52c7df0b a8673231
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -47,6 +47,7 @@ import android.support.annotation.VisibleForTesting;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.util.Log;
import android.view.KeyEvent;
import android.view.KeyEvent;
import android.view.KeyboardShortcutGroup;
import android.view.Menu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuItem;
import android.view.View;
import android.view.View;
+5 −0
Original line number Original line Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.documentsui;
package com.android.documentsui;


import android.app.Fragment;
import android.app.Fragment;
import android.view.KeyboardShortcutGroup;
import android.view.Menu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.MenuItem;
@@ -27,10 +28,14 @@ import com.android.documentsui.base.Menus;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.Shared;
import com.android.documentsui.base.Shared;
import com.android.documentsui.base.State;
import com.android.documentsui.base.State;
import com.android.documentsui.dirlist.ActionModeController;
import com.android.documentsui.dirlist.DirectoryFragment;
import com.android.documentsui.dirlist.DirectoryFragment;
import com.android.documentsui.sidebar.RootsFragment;
import com.android.documentsui.sidebar.RootsFragment;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.annotations.VisibleForTesting;


import java.util.List;
import java.util.function.IntFunction;

public abstract class MenuManager {
public abstract class MenuManager {


    final protected SearchViewManager mSearchManager;
    final protected SearchViewManager mSearchManager;
+7 −0
Original line number Original line Diff line number Diff line
@@ -31,6 +31,7 @@ import android.support.design.widget.Snackbar;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.util.Log;
import android.view.KeyEvent;
import android.view.KeyEvent;
import android.view.KeyboardShortcutGroup;
import android.view.Menu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuItem;


@@ -224,6 +225,12 @@ public class FilesActivity extends BaseActivity implements ActionHandler.Addons
        return true;
        return true;
    }
    }


    @Override
    public void onProvideKeyboardShortcuts(
            List<KeyboardShortcutGroup> data, Menu menu, int deviceId) {
        getMenuManager().updateKeyboardShortcutsMenu(data, this::getString);
    }

    @Override
    @Override
    public void refreshDirectory(@AnimationType int anim) {
    public void refreshDirectory(@AnimationType int anim) {
        final FragmentManager fm = getFragmentManager();
        final FragmentManager fm = getFragmentManager();
+32 −0
Original line number Original line Diff line number Diff line
@@ -17,17 +17,24 @@
package com.android.documentsui.files;
package com.android.documentsui.files;


import android.app.Fragment;
import android.app.Fragment;
import android.view.KeyEvent;
import android.view.KeyboardShortcutGroup;
import android.view.KeyboardShortcutInfo;
import android.view.Menu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.MenuItem;
import android.view.View;
import android.view.View;


import com.android.documentsui.BaseActivity;
import com.android.documentsui.R;
import com.android.documentsui.R;
import com.android.documentsui.SearchViewManager;
import com.android.documentsui.SearchViewManager;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.State;
import com.android.documentsui.base.State;


import java.util.List;
import java.util.function.IntFunction;

public final class MenuManager extends com.android.documentsui.MenuManager {
public final class MenuManager extends com.android.documentsui.MenuManager {


    public MenuManager(
    public MenuManager(
@@ -45,6 +52,31 @@ public final class MenuManager extends com.android.documentsui.MenuManager {
        mSearchManager.updateMenu();
        mSearchManager.updateMenu();
    }
    }


    /**
     * @see FilesActivity#onProvideKeyboardShortcuts(List, Menu, int)
     */
    public void updateKeyboardShortcutsMenu(
            List<KeyboardShortcutGroup> data, IntFunction<String> stringSupplier) {
        KeyboardShortcutGroup group = new KeyboardShortcutGroup(
                stringSupplier.apply(R.string.app_label));
        group.addItem(new KeyboardShortcutInfo(
                stringSupplier.apply(R.string.menu_cut_to_clipboard), KeyEvent.KEYCODE_X,
                KeyEvent.META_CTRL_ON));
        group.addItem(new KeyboardShortcutInfo(
                stringSupplier.apply(R.string.menu_copy_to_clipboard), KeyEvent.KEYCODE_C,
                KeyEvent.META_CTRL_ON));
        group.addItem(new KeyboardShortcutInfo(
                stringSupplier.apply(R.string.menu_paste_from_clipboard), KeyEvent.KEYCODE_V,
                KeyEvent.META_CTRL_ON));
        group.addItem(new KeyboardShortcutInfo(
                stringSupplier.apply(R.string.menu_select_all), KeyEvent.KEYCODE_A,
                KeyEvent.META_CTRL_ON));
        group.addItem(new KeyboardShortcutInfo(
                stringSupplier.apply(R.string.menu_new_window), KeyEvent.KEYCODE_N,
                KeyEvent.META_CTRL_ON));
        data.add(group);
    }

    @Override
    @Override
    public void showContextMenu(Fragment f, View v, float x, float y) {
    public void showContextMenu(Fragment f, View v, float x, float y) {
        // Register context menu here so long-press doesn't trigger this context floating menu.
        // Register context menu here so long-press doesn't trigger this context floating menu.
+0 −1
Original line number Original line Diff line number Diff line
@@ -28,7 +28,6 @@ import com.android.documentsui.R;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.State;
import com.android.documentsui.base.State;
import com.android.documentsui.files.MenuManager;
import com.android.documentsui.testing.TestDirectoryDetails;
import com.android.documentsui.testing.TestDirectoryDetails;
import com.android.documentsui.testing.TestMenu;
import com.android.documentsui.testing.TestMenu;
import com.android.documentsui.testing.TestMenuInflater;
import com.android.documentsui.testing.TestMenuInflater;