summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/Activity.java11
-rw-r--r--core/java/android/app/Dialog.java7
-rw-r--r--core/java/android/service/dreams/DreamService.java5
-rw-r--r--core/java/android/view/IWindow.aidl2
-rw-r--r--core/java/android/view/IWindowManager.aidl2
-rw-r--r--core/java/android/view/View.java2
-rw-r--r--core/java/android/view/ViewRootImpl.java24
-rw-r--r--core/java/android/view/Window.java3
-rw-r--r--core/java/android/view/WindowCallbackWrapper.java5
-rw-r--r--core/java/android/view/WindowManager.java2
-rw-r--r--core/java/android/view/WindowManagerImpl.java5
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) {
}
}