summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Matt Pietal <mpietal@google.com> 2022-05-03 14:46:23 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-05-03 14:46:23 +0000
commitf37b7bf3fa6cd66e8a2d8bcc70b3b6250bc5bb2b (patch)
tree70d52500c5fb6aa02b33ea67c7c05a857854130f
parent064b49a1a1cf9fdec2a2391336b61d6d6af04773 (diff)
parent195baa1c93f6e20bfe0030caf6dad88b70a85176 (diff)
Merge "[DO NOT MERGE] Bouncer - Update selected item text color" into tm-dev
-rw-r--r--packages/SystemUI/res-keyguard/values-night/styles.xml26
-rw-r--r--packages/SystemUI/res/color/bouncer_user_switcher_item_text.xml21
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java19
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java9
-rw-r--r--packages/SystemUI/src/com/android/keyguard/NumPadAnimator.java98
5 files changed, 125 insertions, 48 deletions
diff --git a/packages/SystemUI/res-keyguard/values-night/styles.xml b/packages/SystemUI/res-keyguard/values-night/styles.xml
new file mode 100644
index 000000000000..b5e0b655254f
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-night/styles.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 2022, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License")
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
+ <style name="Bouncer.UserSwitcher.Spinner.Item">
+ <item name="android:textSize">@dimen/bouncer_user_switcher_item_text_size</item>
+ <item name="android:textColor">@color/bouncer_user_switcher_item_text</item>
+ </style>
+</resources>
diff --git a/packages/SystemUI/res/color/bouncer_user_switcher_item_text.xml b/packages/SystemUI/res/color/bouncer_user_switcher_item_text.xml
new file mode 100644
index 000000000000..b1e4b3467037
--- /dev/null
+++ b/packages/SystemUI/res/color/bouncer_user_switcher_item_text.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2022 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_selected="false"
+ android:color="?android:attr/textColorPrimary"/>
+
+ <item android:color="?android:attr/textColorPrimaryInverse"/>
+</selector>
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
index fd7a6e624e2d..f8c0590a8d75 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
@@ -707,6 +707,10 @@ public class KeyguardSecurityContainer extends FrameLayout {
mDisappearAnimRunning = false;
}
+ void reloadColors() {
+ mViewMode.reloadColors();
+ }
+
/**
* Enscapsulates the differences between bouncer modes for the container.
*/
@@ -728,6 +732,9 @@ public class KeyguardSecurityContainer extends FrameLayout {
/** Called when the view needs to reset or hides */
default void reset() {};
+ /** Refresh colors */
+ default void reloadColors() {};
+
/** On a successful auth, optionally handle how the view disappears */
default void startDisappearAnimation(SecurityMode securityMode) {};
@@ -822,6 +829,17 @@ public class KeyguardSecurityContainer extends FrameLayout {
}
@Override
+ public void reloadColors() {
+ TextView header = (TextView) mView.findViewById(R.id.user_switcher_header);
+ if (header != null) {
+ header.setTextColor(Utils.getColorAttrDefaultColor(mView.getContext(),
+ android.R.attr.textColorPrimary));
+ header.setBackground(mView.getContext().getDrawable(
+ R.drawable.bouncer_user_switcher_header_bg));
+ }
+ }
+
+ @Override
public void onDestroy() {
mUserSwitcherController.removeUserSwitchCallback(mUserSwitchCallback);
}
@@ -911,6 +929,7 @@ public class KeyguardSecurityContainer extends FrameLayout {
} else {
textView.setBackground(null);
}
+ textView.setSelected(item == currentUser);
view.setEnabled(item.isSwitchToEnabled);
view.setAlpha(view.isEnabled() ? USER_SWITCH_ENABLED_ALPHA :
USER_SWITCH_DISABLED_ALPHA);
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java
index 965fcd2653f4..19a2d9ed5b7b 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java
@@ -232,12 +232,12 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
new ConfigurationController.ConfigurationListener() {
@Override
public void onThemeChanged() {
- mSecurityViewFlipperController.reloadColors();
+ reloadColors();
}
@Override
public void onUiModeChanged() {
- mSecurityViewFlipperController.reloadColors();
+ reloadColors();
}
};
private final KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback =
@@ -635,6 +635,11 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
mView.updatePositionByTouchX(x);
}
+ private void reloadColors() {
+ mSecurityViewFlipperController.reloadColors();
+ mView.reloadColors();
+ }
+
static class Factory {
private final KeyguardSecurityContainer mView;
diff --git a/packages/SystemUI/src/com/android/keyguard/NumPadAnimator.java b/packages/SystemUI/src/com/android/keyguard/NumPadAnimator.java
index eb6705a2e979..caf7ee4db2c3 100644
--- a/packages/SystemUI/src/com/android/keyguard/NumPadAnimator.java
+++ b/packages/SystemUI/src/com/android/keyguard/NumPadAnimator.java
@@ -30,8 +30,8 @@ import android.widget.TextView;
import androidx.annotation.StyleRes;
+import com.android.settingslib.Utils;
import com.android.systemui.animation.Interpolators;
-import com.android.systemui.util.Utils;
/**
* Provides background color and radius animations for key pad buttons.
@@ -45,6 +45,7 @@ class NumPadAnimator {
private int mNormalColor;
private int mHighlightColor;
private int mStyle;
+ private TextView mDigitTextView;
private static final int EXPAND_ANIMATION_MS = 100;
private static final int EXPAND_COLOR_ANIMATION_MS = 50;
private static final int CONTRACT_ANIMATION_DELAY_MS = 33;
@@ -58,12 +59,54 @@ class NumPadAnimator {
@Nullable TextView digitTextView) {
mStyle = style;
mBackground = (GradientDrawable) drawable;
+ mDigitTextView = digitTextView;
reloadColors(context);
- int textColorPrimary = com.android.settingslib.Utils
- .getColorAttrDefaultColor(context, android.R.attr.textColorPrimary);
- int textColorPrimaryInverse = com.android.settingslib.Utils
- .getColorAttrDefaultColor(context, android.R.attr.textColorPrimaryInverse);
+ }
+
+ public void expand() {
+ mExpandAnimatorSet.cancel();
+ mContractAnimatorSet.cancel();
+ mExpandAnimatorSet.start();
+ }
+
+ public void contract() {
+ mExpandAnimatorSet.cancel();
+ mContractAnimatorSet.cancel();
+ mContractAnimatorSet.start();
+ }
+
+ void onLayout(int height) {
+ float startRadius = height / 2f;
+ float endRadius = height / 4f;
+ mBackground.setCornerRadius(startRadius);
+ mExpandAnimator.setFloatValues(startRadius, endRadius);
+ mContractAnimator.setFloatValues(endRadius, startRadius);
+ }
+
+ /**
+ * Reload colors from resources.
+ **/
+ void reloadColors(Context context) {
+ int[] customAttrs = {android.R.attr.colorControlNormal,
+ android.R.attr.colorControlHighlight};
+
+ ContextThemeWrapper ctw = new ContextThemeWrapper(context, mStyle);
+ TypedArray a = ctw.obtainStyledAttributes(customAttrs);
+ mNormalColor = getPrivateAttrColorIfUnset(ctw, a, 0, 0,
+ com.android.internal.R.attr.colorSurface);
+ mHighlightColor = a.getColor(1, 0);
+ a.recycle();
+
+ mBackground.setColor(mNormalColor);
+ createAnimators(context);
+ }
+
+ private void createAnimators(Context context) {
+ int textColorPrimary = Utils.getColorAttrDefaultColor(context,
+ android.R.attr.textColorPrimary);
+ int textColorPrimaryInverse = Utils.getColorAttrDefaultColor(context,
+ android.R.attr.textColorPrimaryInverse);
// Actual values will be updated later, usually during an onLayout() call
mExpandAnimator = ValueAnimator.ofFloat(0f, 1f);
@@ -85,8 +128,8 @@ class NumPadAnimator {
expandTextColorAnimator.setInterpolator(Interpolators.LINEAR);
expandTextColorAnimator.setDuration(EXPAND_COLOR_ANIMATION_MS);
expandTextColorAnimator.addUpdateListener(valueAnimator -> {
- if (digitTextView != null) {
- digitTextView.setTextColor((int) valueAnimator.getAnimatedValue());
+ if (mDigitTextView != null) {
+ mDigitTextView.setTextColor((int) valueAnimator.getAnimatedValue());
}
});
@@ -115,8 +158,8 @@ class NumPadAnimator {
contractTextColorAnimator.setStartDelay(CONTRACT_ANIMATION_DELAY_MS);
contractTextColorAnimator.setDuration(CONTRACT_ANIMATION_MS);
contractTextColorAnimator.addUpdateListener(valueAnimator -> {
- if (digitTextView != null) {
- digitTextView.setTextColor((int) valueAnimator.getAnimatedValue());
+ if (mDigitTextView != null) {
+ mDigitTextView.setTextColor((int) valueAnimator.getAnimatedValue());
}
});
@@ -124,42 +167,5 @@ class NumPadAnimator {
mContractAnimatorSet.playTogether(mContractAnimator,
contractBackgroundColorAnimator, contractTextColorAnimator);
}
-
- public void expand() {
- mExpandAnimatorSet.cancel();
- mContractAnimatorSet.cancel();
- mExpandAnimatorSet.start();
- }
-
- public void contract() {
- mExpandAnimatorSet.cancel();
- mContractAnimatorSet.cancel();
- mContractAnimatorSet.start();
- }
-
- void onLayout(int height) {
- float startRadius = height / 2f;
- float endRadius = height / 4f;
- mBackground.setCornerRadius(startRadius);
- mExpandAnimator.setFloatValues(startRadius, endRadius);
- mContractAnimator.setFloatValues(endRadius, startRadius);
- }
-
- /**
- * Reload colors from resources.
- **/
- void reloadColors(Context context) {
- int[] customAttrs = {android.R.attr.colorControlNormal,
- android.R.attr.colorControlHighlight};
-
- ContextThemeWrapper ctw = new ContextThemeWrapper(context, mStyle);
- TypedArray a = ctw.obtainStyledAttributes(customAttrs);
- mNormalColor = getPrivateAttrColorIfUnset(ctw, a, 0, 0,
- com.android.internal.R.attr.colorSurface);
- mHighlightColor = a.getColor(1, 0);
- a.recycle();
-
- mBackground.setColor(mNormalColor);
- }
}