Adjust ImeTracker phases
Test: None
Bug: 353463205
Flag: android.view.inputmethod.refactor_insets_controller
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:15892ce1bbf68f49fc80ac6e0f99bc27bd1bd839)
Merged-In: I402f3c7babc927988890f54f31aa6b2b40474284
Change-Id: I402f3c7babc927988890f54f31aa6b2b40474284
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index 6d89f3d..f82e5f9 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -948,7 +948,7 @@
// requestedVisibleTypes of WindowInsetsController by hiding the IME
final var statsToken = ImeTracker.forLogging().onStart(
ImeTracker.TYPE_HIDE, ImeTracker.ORIGIN_CLIENT,
- SoftInputShowHideReason.REASON_HIDE_WINDOW_LOST_FOCUS,
+ SoftInputShowHideReason.HIDE_WINDOW_LOST_FOCUS,
false /* fromUser */);
if (DEBUG) {
Log.d(TAG, "onWindowLostFocus, hiding IME because "
diff --git a/core/java/com/android/internal/inputmethod/InputMethodDebug.java b/core/java/com/android/internal/inputmethod/InputMethodDebug.java
index 2a5593f..4d5e67a 100644
--- a/core/java/com/android/internal/inputmethod/InputMethodDebug.java
+++ b/core/java/com/android/internal/inputmethod/InputMethodDebug.java
@@ -299,6 +299,12 @@
return "SHOW_SOFT_INPUT_IMM_DEPRECATION";
case SoftInputShowHideReason.CONTROL_WINDOW_INSETS_ANIMATION:
return "CONTROL_WINDOW_INSETS_ANIMATION";
+ case SoftInputShowHideReason.SHOW_INPUT_TARGET_CHANGED:
+ return "SHOW_INPUT_TARGET_CHANGED";
+ case SoftInputShowHideReason.HIDE_INPUT_TARGET_CHANGED:
+ return "HIDE_INPUT_TARGET_CHANGED";
+ case SoftInputShowHideReason.HIDE_WINDOW_LOST_FOCUS:
+ return "HIDE_WINDOW_LOST_FOCUS";
default:
return "Unknown=" + reason;
}
diff --git a/core/java/com/android/internal/inputmethod/SoftInputShowHideReason.java b/core/java/com/android/internal/inputmethod/SoftInputShowHideReason.java
index 592ea9e..cf0580c 100644
--- a/core/java/com/android/internal/inputmethod/SoftInputShowHideReason.java
+++ b/core/java/com/android/internal/inputmethod/SoftInputShowHideReason.java
@@ -91,7 +91,7 @@
SoftInputShowHideReason.CONTROL_WINDOW_INSETS_ANIMATION,
SoftInputShowHideReason.SHOW_INPUT_TARGET_CHANGED,
SoftInputShowHideReason.HIDE_INPUT_TARGET_CHANGED,
- SoftInputShowHideReason.REASON_HIDE_WINDOW_LOST_FOCUS,
+ SoftInputShowHideReason.HIDE_WINDOW_LOST_FOCUS,
})
public @interface SoftInputShowHideReason {
/** Default, undefined reason. */
@@ -340,18 +340,6 @@
int HIDE_WINDOW_LEGACY_DIRECT = ImeProtoEnums.REASON_HIDE_WINDOW_LEGACY_DIRECT;
/**
- * Show soft input because the input target changed
- * {@link com.android.server.wm.ImeInsetsSourceProvider#onInputTargetChanged}.
- */
- int SHOW_INPUT_TARGET_CHANGED = ImeProtoEnums.REASON_SHOW_INPUT_TARGET_CHANGED;
-
- /**
- * Hide soft input because the input target changed by
- * {@link com.android.server.wm.ImeInsetsSourceProvider#onInputTargetChanged}.
- */
- int HIDE_INPUT_TARGET_CHANGED = ImeProtoEnums.REASON_HIDE_INPUT_TARGET_CHANGED;
-
- /**
* Show / Hide soft input by
* {@link android.inputmethodservice.InputMethodService#resetStateForNewConfiguration}.
*/
@@ -420,6 +408,18 @@
*/
int CONTROL_WINDOW_INSETS_ANIMATION = ImeProtoEnums.REASON_CONTROL_WINDOW_INSETS_ANIMATION;
+ /**
+ * Show soft input because the input target changed
+ * {@link com.android.server.wm.ImeInsetsSourceProvider#onInputTargetChanged}.
+ */
+ int SHOW_INPUT_TARGET_CHANGED = ImeProtoEnums.REASON_SHOW_INPUT_TARGET_CHANGED;
+
+ /**
+ * Hide soft input because the input target changed by
+ * {@link com.android.server.wm.ImeInsetsSourceProvider#onInputTargetChanged}.
+ */
+ int HIDE_INPUT_TARGET_CHANGED = ImeProtoEnums.REASON_HIDE_INPUT_TARGET_CHANGED;
+
/** Hide soft input when the window lost focus. */
- int REASON_HIDE_WINDOW_LOST_FOCUS = ImeProtoEnums.REASON_HIDE_WINDOW_LOST_FOCUS;
+ int HIDE_WINDOW_LOST_FOCUS = ImeProtoEnums.REASON_HIDE_WINDOW_LOST_FOCUS;
}
diff --git a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
index 4230cd8..cba606c 100644
--- a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
+++ b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
@@ -324,7 +324,8 @@
if (target != imeControlTarget) {
// TODO(b/353463205): check if fromUser=false is correct here
boolean imeVisible = target.isRequestedVisible(WindowInsets.Type.ime());
- ImeTracker.Token statsToken = ImeTracker.forLogging().onStart(ImeTracker.TYPE_HIDE,
+ ImeTracker.Token statsToken = ImeTracker.forLogging().onStart(
+ imeVisible ? ImeTracker.TYPE_SHOW : ImeTracker.TYPE_HIDE,
ImeTracker.ORIGIN_SERVER,
imeVisible ? SoftInputShowHideReason.SHOW_INPUT_TARGET_CHANGED
: SoftInputShowHideReason.HIDE_INPUT_TARGET_CHANGED,