diff options
| author | 2022-05-03 14:46:23 +0000 | |
|---|---|---|
| committer | 2022-05-03 14:46:23 +0000 | |
| commit | f37b7bf3fa6cd66e8a2d8bcc70b3b6250bc5bb2b (patch) | |
| tree | 70d52500c5fb6aa02b33ea67c7c05a857854130f | |
| parent | 064b49a1a1cf9fdec2a2391336b61d6d6af04773 (diff) | |
| parent | 195baa1c93f6e20bfe0030caf6dad88b70a85176 (diff) | |
Merge "[DO NOT MERGE] Bouncer - Update selected item text color" into tm-dev
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); - } } |