diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/app/Activity.java | 11 | ||||
| -rw-r--r-- | core/java/android/app/Dialog.java | 7 | ||||
| -rw-r--r-- | core/java/android/service/dreams/DreamService.java | 5 | ||||
| -rw-r--r-- | core/java/android/view/IWindow.aidl | 2 | ||||
| -rw-r--r-- | core/java/android/view/IWindowManager.aidl | 2 | ||||
| -rw-r--r-- | core/java/android/view/View.java | 2 | ||||
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 24 | ||||
| -rw-r--r-- | core/java/android/view/Window.java | 3 | ||||
| -rw-r--r-- | core/java/android/view/WindowCallbackWrapper.java | 5 | ||||
| -rw-r--r-- | core/java/android/view/WindowManager.java | 2 | ||||
| -rw-r--r-- | core/java/android/view/WindowManagerImpl.java | 5 |
11 files changed, 35 insertions, 33 deletions
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index cc1d68e88b6f..ee17e8a820fc 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -57,6 +57,7 @@ import android.graphics.drawable.Drawable; import android.graphics.drawable.InsetDrawable; import android.graphics.drawable.LayerDrawable; import android.graphics.drawable.ShapeDrawable; +import android.hardware.input.InputManager; import android.media.AudioManager; import android.media.session.MediaController; import android.net.Uri; @@ -91,6 +92,8 @@ import android.view.ContextMenu.ContextMenuInfo; import android.view.ContextThemeWrapper; import android.view.DragEvent; import android.view.DropPermissions; +import android.view.InputDevice; +import android.view.KeyCharacterMap; import android.view.KeyEvent; import android.view.KeyboardShortcutGroup; import android.view.KeyboardShortcutInfo; @@ -1679,10 +1682,16 @@ public class Activity extends ContextThemeWrapper } @Override - public void onProvideKeyboardShortcuts(List<KeyboardShortcutGroup> data, Menu menu) { + public void onProvideKeyboardShortcuts( + List<KeyboardShortcutGroup> data, Menu menu, int deviceId) { if (menu == null) { return; } + final InputDevice inputDevice = InputManager.getInstance().getInputDevice(deviceId); + if (inputDevice == null) { + return; + } + final KeyCharacterMap keyCharacterMap = inputDevice.getKeyCharacterMap(); KeyboardShortcutGroup group = null; int menuSize = menu.size(); for (int i = 0; i < menuSize; ++i) { diff --git a/core/java/android/app/Dialog.java b/core/java/android/app/Dialog.java index 79461b4863ef..0bb1097461fd 100644 --- a/core/java/android/app/Dialog.java +++ b/core/java/android/app/Dialog.java @@ -1082,13 +1082,6 @@ public class Dialog implements DialogInterface, Window.Callback, } /** - * {@inheritDoc} - */ - @Override - public void onProvideKeyboardShortcuts(List<KeyboardShortcutGroup> data, Menu menu) { - } - - /** * @return The activity associated with this dialog, or null if there is no associated activity. */ private ComponentName getAssociatedActivity() { diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java index 816ecde84377..7af0b05f9cc5 100644 --- a/core/java/android/service/dreams/DreamService.java +++ b/core/java/android/service/dreams/DreamService.java @@ -367,11 +367,6 @@ public class DreamService extends Service implements Window.Callback { @Override public void onActionModeFinished(ActionMode mode) { } - - /** {@inheritDoc} */ - @Override - public void onProvideKeyboardShortcuts(List<KeyboardShortcutGroup> data, Menu menu) { - } // end Window.Callback methods // begin public api diff --git a/core/java/android/view/IWindow.aidl b/core/java/android/view/IWindow.aidl index 70d0513bfbc5..707300f7987a 100644 --- a/core/java/android/view/IWindow.aidl +++ b/core/java/android/view/IWindow.aidl @@ -95,5 +95,5 @@ oneway interface IWindow { /** * Called when Keyboard Shortcuts are requested for the window. */ - void requestAppKeyboardShortcuts(IResultReceiver receiver); + void requestAppKeyboardShortcuts(IResultReceiver receiver, int deviceId); } diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl index d8b742107084..7af4a1fea441 100644 --- a/core/java/android/view/IWindowManager.aidl +++ b/core/java/android/view/IWindowManager.aidl @@ -387,7 +387,7 @@ interface IWindowManager * * @param receiver The receiver to deliver the results to. */ - void requestAppKeyboardShortcuts(IResultReceiver receiver); + void requestAppKeyboardShortcuts(IResultReceiver receiver, int deviceId); /** * Retrieves the current stable insets from the primary display. diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 6d35a58c3be4..6fa2aad2d65f 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -22187,7 +22187,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, /** * @hide */ - public void requestKeyboardShortcuts(List<KeyboardShortcutGroup> data) { + public void requestKeyboardShortcuts(List<KeyboardShortcutGroup> data, int deviceId) { // Do nothing. } diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index da7799c1ec3f..ffebf711e43e 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -3585,8 +3585,9 @@ public final class ViewRootImpl implements ViewParent, handleDispatchWindowShown(); } break; case MSG_REQUEST_KEYBOARD_SHORTCUTS: { - IResultReceiver receiver = (IResultReceiver) msg.obj; - handleRequestKeyboardShortcuts(receiver); + final IResultReceiver receiver = (IResultReceiver) msg.obj; + final int deviceId = msg.arg1; + handleRequestKeyboardShortcuts(receiver, deviceId); } break; case MSG_UPDATE_POINTER_ICON: { MotionEvent event = (MotionEvent) msg.obj; @@ -5507,11 +5508,11 @@ public final class ViewRootImpl implements ViewParent, mAttachInfo.mTreeObserver.dispatchOnWindowShown(); } - public void handleRequestKeyboardShortcuts(IResultReceiver receiver) { + public void handleRequestKeyboardShortcuts(IResultReceiver receiver, int deviceId) { Bundle data = new Bundle(); ArrayList<KeyboardShortcutGroup> list = new ArrayList<>(); if (mView != null) { - mView.requestKeyboardShortcuts(list); + mView.requestKeyboardShortcuts(list, deviceId); } data.putParcelableArrayList(WindowManager.PARCEL_KEY_SHORTCUTS_ARRAY, list); try { @@ -6468,8 +6469,9 @@ public final class ViewRootImpl implements ViewParent, } } - public void dispatchRequestKeyboardShortcuts(IResultReceiver receiver) { - mHandler.obtainMessage(MSG_REQUEST_KEYBOARD_SHORTCUTS, receiver).sendToTarget(); + public void dispatchRequestKeyboardShortcuts(IResultReceiver receiver, int deviceId) { + mHandler.obtainMessage( + MSG_REQUEST_KEYBOARD_SHORTCUTS, deviceId, 0, receiver).sendToTarget(); } /** @@ -7046,11 +7048,11 @@ public final class ViewRootImpl implements ViewParent, } @Override - public void requestAppKeyboardShortcuts(IResultReceiver receiver) { - ViewRootImpl viewAncestor = mViewAncestor.get(); - if (viewAncestor != null) { - viewAncestor.dispatchRequestKeyboardShortcuts(receiver); - } + public void requestAppKeyboardShortcuts(IResultReceiver receiver, int deviceId) { + ViewRootImpl viewAncestor = mViewAncestor.get(); + if (viewAncestor != null) { + viewAncestor.dispatchRequestKeyboardShortcuts(receiver, deviceId); + } } } diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java index 63f37440f832..36ee3e67ef79 100644 --- a/core/java/android/view/Window.java +++ b/core/java/android/view/Window.java @@ -565,9 +565,10 @@ public abstract class Window { * * @param data The data list to populate with shortcuts. * @param menu The current menu, which may be null. + * @param deviceId The id for the connected device the shortcuts should be provided for. */ default public void onProvideKeyboardShortcuts( - List<KeyboardShortcutGroup> data, @Nullable Menu menu) { }; + List<KeyboardShortcutGroup> data, @Nullable Menu menu, int deviceId) { }; } /** @hide */ diff --git a/core/java/android/view/WindowCallbackWrapper.java b/core/java/android/view/WindowCallbackWrapper.java index bed74e95ae0a..8f2d2e15a019 100644 --- a/core/java/android/view/WindowCallbackWrapper.java +++ b/core/java/android/view/WindowCallbackWrapper.java @@ -154,8 +154,9 @@ public class WindowCallbackWrapper implements Window.Callback { } @Override - public void onProvideKeyboardShortcuts(List<KeyboardShortcutGroup> data, Menu menu) { - mWrapped.onProvideKeyboardShortcuts(data, menu); + public void onProvideKeyboardShortcuts( + List<KeyboardShortcutGroup> data, Menu menu, int deviceId) { + mWrapped.onProvideKeyboardShortcuts(data, menu, deviceId); } } diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index 17f19912d31b..03dcf99258ab 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -158,7 +158,7 @@ public interface WindowManager extends ViewManager { * * @hide */ - public void requestAppKeyboardShortcuts(final KeyboardShortcutsReceiver receiver); + public void requestAppKeyboardShortcuts(final KeyboardShortcutsReceiver receiver, int deviceId); public static class LayoutParams extends ViewGroup.LayoutParams implements Parcelable { /** diff --git a/core/java/android/view/WindowManagerImpl.java b/core/java/android/view/WindowManagerImpl.java index 6e11671016b4..f8c7d68bd394 100644 --- a/core/java/android/view/WindowManagerImpl.java +++ b/core/java/android/view/WindowManagerImpl.java @@ -125,7 +125,8 @@ public final class WindowManagerImpl implements WindowManager { } @Override - public void requestAppKeyboardShortcuts(final KeyboardShortcutsReceiver receiver) { + public void requestAppKeyboardShortcuts( + final KeyboardShortcutsReceiver receiver, int deviceId) { IResultReceiver resultReceiver = new IResultReceiver.Stub() { @Override public void send(int resultCode, Bundle resultData) throws RemoteException { @@ -136,7 +137,7 @@ public final class WindowManagerImpl implements WindowManager { }; try { WindowManagerGlobal.getWindowManagerService() - .requestAppKeyboardShortcuts(resultReceiver); + .requestAppKeyboardShortcuts(resultReceiver, deviceId); } catch (RemoteException e) { } } |
