From 1fae62abc1227e1222c4e764ab9ea0f7b212142d Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Tue, 27 Aug 2019 16:46:16 -0700 Subject: [PATCH] Move IPC out of critical path isTactileFeedbackEnabled will consult a Setting. Let's postpone the possible IPC until we actually need to read the value. Subsequent calls will be cached by the Settings internal cache. Fixes: 140043085 Test: unlock with pin, feel haptics Change-Id: I50d43ff25ee4ff32044ca626e5a87929bb163170 --- .../src/com/android/keyguard/NumPadKey.java | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/SystemUI/src/com/android/keyguard/NumPadKey.java b/packages/SystemUI/src/com/android/keyguard/NumPadKey.java index 8109f47d0ae72..1edb57eaaaa0c 100644 --- a/packages/SystemUI/src/com/android/keyguard/NumPadKey.java +++ b/packages/SystemUI/src/com/android/keyguard/NumPadKey.java @@ -16,8 +16,6 @@ package com.android.keyguard; -import static com.android.systemui.DejankUtils.whitelistIpcs; - import android.content.Context; import android.content.res.TypedArray; import android.os.PowerManager; @@ -36,13 +34,14 @@ public class NumPadKey extends ViewGroup { // list of "ABC", etc per digit, starting with '0' static String sKlondike[]; + private final TextView mDigitText; + private final TextView mKlondikeText; + private final LockPatternUtils mLockPatternUtils; + private final PowerManager mPM; + private int mDigit = -1; private int mTextViewResId; private PasswordTextView mTextView; - private TextView mDigitText; - private TextView mKlondikeText; - private boolean mEnableHaptics; - private PowerManager mPM; private View.OnClickListener mListener = new View.OnClickListener() { @Override @@ -92,10 +91,7 @@ public class NumPadKey extends ViewGroup { setOnClickListener(mListener); setOnHoverListener(new LiftToActivateListener(context)); - // TODO(b/140043085) - mEnableHaptics = whitelistIpcs(() -> - new LockPatternUtils(context).isTactileFeedbackEnabled()); - + mLockPatternUtils = new LockPatternUtils(context); mPM = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); LayoutInflater inflater = (LayoutInflater) getContext().getSystemService( Context.LAYOUT_INFLATER_SERVICE); @@ -166,7 +162,7 @@ public class NumPadKey extends ViewGroup { // Cause a VIRTUAL_KEY vibration public void doHapticKeyClick() { - if (mEnableHaptics) { + if (mLockPatternUtils.isTactileFeedbackEnabled()) { performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING | HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);