summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2020-04-07 20:14:31 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-04-07 20:14:31 +0000
commit645fdff012e6f281794c80a78a498071216e11ff (patch)
tree7418a2ce9f99779815206930baa6f65fca8ceb63
parent54225dfc655580582be46e0b43c06889c418f832 (diff)
parent9d892e4eba5a39551b386fa40524cf545ebed95e (diff)
Merge "Remove StateProvider from LockIcon" into rvc-dev
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java31
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java3
2 files changed, 15 insertions, 19 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
index d70484e9cf41..a19d35ac4e81 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
@@ -50,19 +50,22 @@ public class LockIcon extends KeyguardAffordanceView {
static final int STATE_BIOMETRICS_ERROR = 3;
private float mDozeAmount;
private int mIconColor;
- private StateProvider mStateProvider;
private int mOldState;
+ private int mState;
private boolean mPulsing;
private boolean mDozing;
private boolean mKeyguardJustShown;
+ private boolean mPredrawRegistered;
private final SparseArray<Drawable> mDrawableCache = new SparseArray<>();
private final OnPreDrawListener mOnPreDrawListener = new OnPreDrawListener() {
@Override
public boolean onPreDraw() {
getViewTreeObserver().removeOnPreDrawListener(this);
+ mPredrawRegistered = false;
- int newState = mStateProvider.getState();
+ int newState = mState;
+ mOldState = mState;
Drawable icon = getIcon(newState);
setImageDrawable(icon, false);
@@ -80,7 +83,7 @@ public class LockIcon extends KeyguardAffordanceView {
@Override
public void onAnimationEnd(Drawable drawable) {
if (getDrawable() == animation
- && newState == mStateProvider.getState()
+ && newState == mState
&& newState == STATE_SCANNING_FACE) {
animation.start();
} else {
@@ -100,10 +103,6 @@ public class LockIcon extends KeyguardAffordanceView {
super(context, attrs);
}
- void setStateProvider(StateProvider stateProvider) {
- mStateProvider = stateProvider;
- }
-
@Override
protected void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
@@ -135,13 +134,16 @@ public class LockIcon extends KeyguardAffordanceView {
return false;
}
- void update(int oldState, boolean pulsing, boolean dozing, boolean keyguardJustShown) {
- mOldState = oldState;
+ void update(int newState, boolean pulsing, boolean dozing, boolean keyguardJustShown) {
+ mState = newState;
mPulsing = pulsing;
mDozing = dozing;
mKeyguardJustShown = keyguardJustShown;
- getViewTreeObserver().addOnPreDrawListener(mOnPreDrawListener);
+ if (!mPredrawRegistered) {
+ mPredrawRegistered = true;
+ getViewTreeObserver().addOnPreDrawListener(mOnPreDrawListener);
+ }
}
void setDozeAmount(float dozeAmount) {
@@ -175,7 +177,7 @@ public class LockIcon extends KeyguardAffordanceView {
return mDrawableCache.get(iconRes);
}
- static int getIconForState(int state) {
+ private static int getIconForState(int state) {
int iconRes;
switch (state) {
case STATE_LOCKED:
@@ -196,7 +198,7 @@ public class LockIcon extends KeyguardAffordanceView {
return iconRes;
}
- static int getAnimationIndexForTransition(int oldState, int newState, boolean pulsing,
+ private static int getAnimationIndexForTransition(int oldState, int newState, boolean pulsing,
boolean dozing, boolean keyguardJustShown) {
// Never animate when screen is off
@@ -260,9 +262,4 @@ public class LockIcon extends KeyguardAffordanceView {
}
return LOCK_ANIM_RES_IDS[0][lockAnimIndex];
}
-
- interface StateProvider {
- int getState();
- }
-
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
index f7c861b84a68..a633e1979bad 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
@@ -352,7 +352,6 @@ public class LockscreenLockIconController {
mLockIcon.setOnClickListener(this::handleClick);
mLockIcon.setOnLongClickListener(this::handleLongClick);
mLockIcon.setAccessibilityDelegate(mAccessibilityDelegate);
- mLockIcon.setStateProvider(this::getState);
if (mLockIcon.isAttachedToWindow()) {
mOnAttachStateChangeListener.onViewAttachedToWindow(mLockIcon);
@@ -462,7 +461,7 @@ public class LockscreenLockIconController {
shouldUpdate = false;
}
if (shouldUpdate && mLockIcon != null) {
- mLockIcon.update(mLastState, mPulsing, mDozing, mKeyguardJustShown);
+ mLockIcon.update(state, mPulsing, mDozing, mKeyguardJustShown);
}
mLastState = state;
mKeyguardJustShown = false;