diff options
9 files changed, 49 insertions, 37 deletions
| diff --git a/packages/SystemUI/src/com/android/keyguard/BouncerKeyguardMessageArea.kt b/packages/SystemUI/src/com/android/keyguard/BouncerKeyguardMessageArea.kt index 450784ea8f03..f59bf8e766fe 100644 --- a/packages/SystemUI/src/com/android/keyguard/BouncerKeyguardMessageArea.kt +++ b/packages/SystemUI/src/com/android/keyguard/BouncerKeyguardMessageArea.kt @@ -69,10 +69,16 @@ open class BouncerKeyguardMessageArea(context: Context?, attrs: AttributeSet?) :          super.reloadColor()      } -    override fun setMessage(msg: CharSequence?) { +    override fun setMessage(msg: CharSequence?, animate: Boolean) {          if ((msg == textAboutToShow && msg != null) || msg == text) {              return          } + +        if (!animate) { +            super.setMessage(msg, animate) +            return +        } +          textAboutToShow = msg          if (animatorSet.isRunning) { @@ -89,7 +95,7 @@ open class BouncerKeyguardMessageArea(context: Context?, attrs: AttributeSet?) :          hideAnimator.addListener(              object : AnimatorListenerAdapter() {                  override fun onAnimationEnd(animation: Animator?) { -                    super@BouncerKeyguardMessageArea.setMessage(msg) +                    super@BouncerKeyguardMessageArea.setMessage(msg, animate)                  }              }          ) diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputViewController.java index 92ba619e7eb9..3e32cf5521ff 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputViewController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputViewController.java @@ -159,10 +159,12 @@ public abstract class KeyguardAbsKeyInputViewController<T extends KeyguardAbsKey                  int secondsRemaining = (int) Math.round(millisUntilFinished / 1000.0);                  Map<String, Object> arguments = new HashMap<>();                  arguments.put("count", secondsRemaining); -                mMessageAreaController.setMessage(PluralsMessageFormatter.format( -                        mView.getResources(), -                        arguments, -                        R.string.kg_too_many_failed_attempts_countdown)); +                mMessageAreaController.setMessage( +                        PluralsMessageFormatter.format( +                            mView.getResources(), +                            arguments, +                            R.string.kg_too_many_failed_attempts_countdown), +                        /* animate= */ false);              }              @Override diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java index c79fc2c27f0e..0e5f8c1c7a26 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java @@ -59,6 +59,7 @@ public abstract class KeyguardMessageArea extends TextView implements SecurityMe      @Nullable      private ViewGroup mContainer;      private int mTopMargin; +    protected boolean mAnimate;      public KeyguardMessageArea(Context context, AttributeSet attrs) {          super(context, attrs); @@ -106,7 +107,7 @@ public abstract class KeyguardMessageArea extends TextView implements SecurityMe      }      @Override -    public void setMessage(CharSequence msg) { +    public void setMessage(CharSequence msg, boolean animate) {          if (!TextUtils.isEmpty(msg)) {              securityMessageChanged(msg);          } else { @@ -115,21 +116,12 @@ public abstract class KeyguardMessageArea extends TextView implements SecurityMe      }      @Override -    public void setMessage(int resId) { -        CharSequence message = null; -        if (resId != 0) { -            message = getContext().getResources().getText(resId); -        } -        setMessage(message); -    } - -    @Override      public void formatMessage(int resId, Object... formatArgs) {          CharSequence message = null;          if (resId != 0) {              message = getContext().getString(resId, formatArgs);          } -        setMessage(message); +        setMessage(message, true);      }      private void securityMessageChanged(CharSequence message) { diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageAreaController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageAreaController.java index db986e0a631a..c29f632b88d3 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageAreaController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageAreaController.java @@ -92,11 +92,19 @@ public class KeyguardMessageAreaController<T extends KeyguardMessageArea>      }      public void setMessage(CharSequence s) { -        mView.setMessage(s); +        setMessage(s, true); +    } + +    /** +     * Sets a message to the underlying text view. +     */ +    public void setMessage(CharSequence s, boolean animate) { +        mView.setMessage(s, animate);      }      public void setMessage(int resId) { -        mView.setMessage(resId); +        String message = resId != 0 ? mView.getResources().getString(resId) : null; +        setMessage(message);      }      public void setNextMessageColor(ColorStateList colorState) { diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java index 1f0bd54f8e09..cdbfb2492e27 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java @@ -372,10 +372,13 @@ public class KeyguardPatternViewController                  Map<String, Object> arguments = new HashMap<>();                  arguments.put("count", secondsRemaining); -                mMessageAreaController.setMessage(PluralsMessageFormatter.format( -                        mView.getResources(), -                        arguments, -                        R.string.kg_too_many_failed_attempts_countdown)); +                mMessageAreaController.setMessage( +                        PluralsMessageFormatter.format( +                            mView.getResources(), +                            arguments, +                            R.string.kg_too_many_failed_attempts_countdown), +                        /* animate= */ false +                );              }              @Override diff --git a/packages/SystemUI/src/com/android/keyguard/SecurityMessageDisplay.java b/packages/SystemUI/src/com/android/keyguard/SecurityMessageDisplay.java index 777bd19864bf..3392a1cda90e 100644 --- a/packages/SystemUI/src/com/android/keyguard/SecurityMessageDisplay.java +++ b/packages/SystemUI/src/com/android/keyguard/SecurityMessageDisplay.java @@ -23,9 +23,10 @@ public interface SecurityMessageDisplay {      /** Set text color for the next security message. */      default void setNextMessageColor(ColorStateList colorState) {} -    void setMessage(CharSequence msg); - -    void setMessage(int resId); +    /** +     * Sets a message to the underlying text view. +     */ +    void setMessage(CharSequence msg, boolean animate);      void formatMessage(int resId, Object... formatArgs);  } diff --git a/packages/SystemUI/tests/src/com/android/keyguard/AuthKeyguardMessageAreaTest.java b/packages/SystemUI/tests/src/com/android/keyguard/AuthKeyguardMessageAreaTest.java index 0a9c745525c2..ffedb30a404d 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/AuthKeyguardMessageAreaTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/AuthKeyguardMessageAreaTest.java @@ -46,7 +46,7 @@ public class AuthKeyguardMessageAreaTest extends SysuiTestCase {      @Test      public void testShowsTextField() {          mKeyguardMessageArea.setVisibility(View.INVISIBLE); -        mKeyguardMessageArea.setMessage("oobleck"); +        mKeyguardMessageArea.setMessage("oobleck", /* animate= */ true);          assertThat(mKeyguardMessageArea.getVisibility()).isEqualTo(View.VISIBLE);          assertThat(mKeyguardMessageArea.getText()).isEqualTo("oobleck");      } @@ -55,7 +55,7 @@ public class AuthKeyguardMessageAreaTest extends SysuiTestCase {      public void testHiddenWhenBouncerHidden() {          mKeyguardMessageArea.setIsVisible(false);          mKeyguardMessageArea.setVisibility(View.INVISIBLE); -        mKeyguardMessageArea.setMessage("oobleck"); +        mKeyguardMessageArea.setMessage("oobleck", /* animate= */ true);          assertThat(mKeyguardMessageArea.getVisibility()).isEqualTo(View.INVISIBLE);          assertThat(mKeyguardMessageArea.getText()).isEqualTo("oobleck");      } @@ -63,7 +63,7 @@ public class AuthKeyguardMessageAreaTest extends SysuiTestCase {      @Test      public void testClearsTextField() {          mKeyguardMessageArea.setVisibility(View.VISIBLE); -        mKeyguardMessageArea.setMessage(""); +        mKeyguardMessageArea.setMessage("", /* animate= */ true);          assertThat(mKeyguardMessageArea.getVisibility()).isEqualTo(View.INVISIBLE);          assertThat(mKeyguardMessageArea.getText()).isEqualTo("");      } diff --git a/packages/SystemUI/tests/src/com/android/keyguard/BouncerKeyguardMessageAreaTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/BouncerKeyguardMessageAreaTest.kt index 7b9b39f23c29..ba46a874c260 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/BouncerKeyguardMessageAreaTest.kt +++ b/packages/SystemUI/tests/src/com/android/keyguard/BouncerKeyguardMessageAreaTest.kt @@ -49,30 +49,30 @@ class BouncerKeyguardMessageAreaTest : SysuiTestCase() {      @Test      fun testSetSameMessage() {          val underTestSpy = spy(underTest) -        underTestSpy.setMessage("abc") -        underTestSpy.setMessage("abc") +        underTestSpy.setMessage("abc", animate = true) +        underTestSpy.setMessage("abc", animate = true)          verify(underTestSpy, times(1)).text = "abc"      }      @Test      fun testSetDifferentMessage() { -        underTest.setMessage("abc") -        underTest.setMessage("def") +        underTest.setMessage("abc", animate = true) +        underTest.setMessage("def", animate = true)          assertThat(underTest.text).isEqualTo("def")      }      @Test      fun testSetNullMessage() { -        underTest.setMessage(null) +        underTest.setMessage(null, animate = true)          assertThat(underTest.text).isEqualTo("")      }      @Test      fun testSetNullClearsPreviousMessage() { -        underTest.setMessage("something not null") +        underTest.setMessage("something not null", animate = true)          assertThat(underTest.text).isEqualTo("something not null") -        underTest.setMessage(null) +        underTest.setMessage(null, animate = true)          assertThat(underTest.text).isEqualTo("")      }  } diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardMessageAreaControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardMessageAreaControllerTest.java index 829008403e02..0e837d2976ba 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardMessageAreaControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardMessageAreaControllerTest.java @@ -85,7 +85,7 @@ public class KeyguardMessageAreaControllerTest extends SysuiTestCase {      @Test      public void testClearsTextField() {          mMessageAreaController.setMessage(""); -        verify(mKeyguardMessageArea).setMessage(""); +        verify(mKeyguardMessageArea).setMessage("", /* animate= */ true);      }      @Test |