Revert "Remove notifyConfigurationChanged policy call"
Revert submission 28338641-remove_notify_configuration_changed
Reason for revert: Droidmonitor created revert due to http://b/353980868 - verifying through ABTD before submission.
Reverted changes: /q/submissionid:28338641-remove_notify_configuration_changed
Change-Id: I90a37ca9b2d88e314d92c2345c0837a10fc76236
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
index bb2efa1..1f46af8 100644
--- a/services/core/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -2224,6 +2224,12 @@
// Native callback.
@SuppressWarnings("unused")
+ private void notifyConfigurationChanged(long whenNanos) {
+ mWindowManagerCallbacks.notifyConfigurationChanged();
+ }
+
+ // Native callback.
+ @SuppressWarnings("unused")
private void notifyInputDevicesChanged(InputDevice[] inputDevices) {
synchronized (mInputDevicesLock) {
if (!mInputDevicesChangedPending) {
@@ -2234,9 +2240,6 @@
mInputDevices = inputDevices;
}
- // Input device change can possibly change configuration, so notify window manager to update
- // its configuration.
- mWindowManagerCallbacks.notifyConfigurationChanged();
}
// Native callback.
diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp
index 4d6a90c..5719810 100644
--- a/services/core/jni/com_android_server_input_InputManagerService.cpp
+++ b/services/core/jni/com_android_server_input_InputManagerService.cpp
@@ -104,6 +104,7 @@
static struct {
jclass clazz;
+ jmethodID notifyConfigurationChanged;
jmethodID notifyInputDevicesChanged;
jmethodID notifySwitch;
jmethodID notifyInputChannelBroken;
@@ -313,6 +314,7 @@
void getReaderConfiguration(InputReaderConfiguration* outConfig) override;
void notifyInputDevicesChanged(const std::vector<InputDeviceInfo>& inputDevices) override;
+ void notifyConfigurationChanged(nsecs_t when) override;
std::shared_ptr<KeyCharacterMap> getKeyboardLayoutOverlay(
const InputDeviceIdentifier& identifier,
const std::optional<KeyboardLayoutInfo> keyboardLayoutInfo) override;
@@ -938,6 +940,18 @@
checkAndClearExceptionFromCallback(env, "notifySwitch");
}
+void NativeInputManager::notifyConfigurationChanged(nsecs_t when) {
+#if DEBUG_INPUT_DISPATCHER_POLICY
+ ALOGD("notifyConfigurationChanged - when=%lld", when);
+#endif
+ ATRACE_CALL();
+
+ JNIEnv* env = jniEnv();
+
+ env->CallVoidMethod(mServiceObj, gServiceClassInfo.notifyConfigurationChanged, when);
+ checkAndClearExceptionFromCallback(env, "notifyConfigurationChanged");
+}
+
static jobject getInputApplicationHandleObjLocalRef(
JNIEnv* env, const std::shared_ptr<InputApplicationHandle>& inputApplicationHandle) {
if (inputApplicationHandle == nullptr) {
@@ -2859,6 +2873,9 @@
FIND_CLASS(clazz, "com/android/server/input/InputManagerService");
gServiceClassInfo.clazz = reinterpret_cast<jclass>(env->NewGlobalRef(clazz));
+ GET_METHOD_ID(gServiceClassInfo.notifyConfigurationChanged, clazz,
+ "notifyConfigurationChanged", "(J)V");
+
GET_METHOD_ID(gServiceClassInfo.notifyInputDevicesChanged, clazz,
"notifyInputDevicesChanged", "([Landroid/view/InputDevice;)V");