summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarthik Gopalan <quic_gkarth@quicinc.com>2022-04-27 11:30:21 +0530
committerKarthik Gopalan <quic_gkarth@quicinc.com>2022-05-27 08:49:48 +0530
commitb1184505778064efac71a58aaa26b04161728ab7 (patch)
tree43d18cdbd1b06a9857f189e56f6f5f351f187e28
parent15d9159eb00fb7fd92f9dc249af588f655fd8f66 (diff)
perf: IME boost
Add IME Boost Hook CRs-Fixed: 3195944 Change-Id: Icfa3e21fe22016a135753476f8fb9e3ce244ae74
-rw-r--r--core/java/android/util/BoostFramework.java3
-rw-r--r--core/java/android/view/inputmethod/InputMethodManager.java20
2 files changed, 23 insertions, 0 deletions
diff --git a/core/java/android/util/BoostFramework.java b/core/java/android/util/BoostFramework.java
index 1afe18cc95b6..ba73942a98a7 100644
--- a/core/java/android/util/BoostFramework.java
+++ b/core/java/android/util/BoostFramework.java
@@ -101,6 +101,9 @@ public class BoostFramework {
public static final int VENDOR_HINT_TAP_EVENT = 0x00001043;
public static final int VENDOR_HINT_DRAG_START = 0x00001051;
public static final int VENDOR_HINT_DRAG_END = 0x00001052;
+ //Ime Launch Boost Hint
+ public static final int VENDOR_HINT_IME_LAUNCH_EVENT = 0x0000109F;
+
//feedback hints
public static final int VENDOR_FEEDBACK_WORKLOAD_TYPE = 0x00001601;
public static final int VENDOR_FEEDBACK_LAUNCH_END_POINT = 0x00001602;
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index e6f103e6d53b..fede0dfa94db 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -67,6 +67,7 @@ import android.os.Trace;
import android.os.UserHandle;
import android.provider.Settings;
import android.text.style.SuggestionSpan;
+import android.util.BoostFramework;
import android.util.Log;
import android.util.Pools.Pool;
import android.util.Pools.SimplePool;
@@ -270,6 +271,11 @@ public final class InputMethodManager {
*/
private static final String SUBTYPE_MODE_VOICE = "voice";
+ //Perf
+ static BoostFramework mPerfBoost = null;
+ static boolean IME_BOOST_ENABLED = false;
+ static boolean isImeBoostPropertyRead = false;
+
/**
* Ensures that {@link #sInstance} becomes non-{@code null} for application that have directly
* or indirectly relied on {@link #sInstance} via reflection or something like that.
@@ -586,6 +592,20 @@ public final class InputMethodManager {
ImeTracing.getInstance().triggerClientDump(
"InputMethodManager.DelegateImpl#startInput", InputMethodManager.this,
null /* icProto */);
+
+ if (isImeBoostPropertyRead == false) {
+ mPerfBoost = new BoostFramework();
+
+ if (mPerfBoost != null) {
+ IME_BOOST_ENABLED = Boolean.parseBoolean(mPerfBoost.perfGetProp("ro.vendor.qti.sys.fw.use_ime_boost", "false"));
+ }
+ isImeBoostPropertyRead = true;
+ }
+
+ if (IME_BOOST_ENABLED == true && mPerfBoost != null) {
+ mPerfBoost.perfEvent(BoostFramework.VENDOR_HINT_IME_LAUNCH_EVENT, null);
+ }
+
synchronized (mH) {
mCurrentTextBoxAttribute = null;
mCompletions = null;