Show privacy chip in QQS

Test: manual
Fixes: 186791035
Change-Id: I5fffe4481a64db0a021500506634bb374587daa9
This commit is contained in:
Fabian Kozynski
2021-04-30 12:52:45 -04:00
parent ebffd9b97f
commit 73f1a3e2d3
2 changed files with 37 additions and 6 deletions

View File

@@ -55,9 +55,13 @@ public class QuickStatusBarHeader extends FrameLayout {
private TouchAnimator mAlphaAnimator;
private TouchAnimator mTranslationAnimator;
private TouchAnimator mIconsAlphaAnimator;
private TouchAnimator mIconsAlphaAnimatorFixed;
protected QuickQSPanel mHeaderQsPanel;
private View mDatePrivacyView;
private View mDateView;
private View mSecurityHeaderView;
private View mClockIconsView;
private View mContainer;
@@ -66,7 +70,7 @@ public class QuickStatusBarHeader extends FrameLayout {
private Space mSpace;
private BatteryMeterView mBatteryRemainingIcon;
private StatusIconContainer mIconContainer;
private View mPrivacyChip;
private TintedIconManager mTintedIconManager;
private QSExpansionPathInterpolator mQSExpansionPathInterpolator;
@@ -79,7 +83,6 @@ public class QuickStatusBarHeader extends FrameLayout {
private int mCutOutPaddingLeft;
private int mCutOutPaddingRight;
private float mClockIconsAlpha = 1.0f;
private float mDatePrivacyAlpha = 1.0f;
private float mKeyguardExpansionFraction;
private int mTextColorPrimary = Color.TRANSPARENT;
private int mTopViewMeasureHeight;
@@ -113,6 +116,9 @@ public class QuickStatusBarHeader extends FrameLayout {
mQSCarriers = findViewById(R.id.carrier_group);
mContainer = findViewById(R.id.container);
mIconContainer = findViewById(R.id.statusIcons);
mPrivacyChip = findViewById(R.id.privacy_chip);
mDateView = findViewById(R.id.date);
mSecurityHeaderView = findViewById(R.id.header_text_container);
mClockView = findViewById(R.id.clock);
mSpace = findViewById(R.id.space);
@@ -126,6 +132,11 @@ public class QuickStatusBarHeader extends FrameLayout {
// QS will always show the estimate, and BatteryMeterView handles the case where
// it's unavailable or charging
mBatteryRemainingIcon.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE);
mIconsAlphaAnimatorFixed = new TouchAnimator.Builder()
.addFloat(mIconContainer, "alpha", 0, 1)
.addFloat(mBatteryRemainingIcon, "alpha", 0, 1)
.build();
}
void onAttach(TintedIconManager iconManager,
@@ -226,8 +237,12 @@ public class QuickStatusBarHeader extends FrameLayout {
StatusBarIconView callStrengthIcon =
((StatusBarIconView) mIconContainer.getViewForSlot(mCallStrengthSlotName));
TouchAnimator.Builder builder = new TouchAnimator.Builder()
.addFloat(mQSCarriers, "alpha", 0, 1)
.addFloat(mDatePrivacyView, "alpha", 0, mDatePrivacyAlpha);
// The following two views have to be hidden manually, so as not to hide the
// Privacy chip in QQS
.addFloat(mDateView, "alpha", 0, 1)
.addFloat(mSecurityHeaderView, "alpha", 0, 1)
.addFloat(mQSCarriers, "alpha", 0, 1);
if (noCallingIcon != null || callStrengthIcon != null) {
if (noCallingIcon != null) {
builder.addFloat(noCallingIcon, "alpha", 1, 0);
@@ -259,6 +274,20 @@ public class QuickStatusBarHeader extends FrameLayout {
mAlphaAnimator = builder.build();
}
void setChipVisibility(boolean visibility) {
mPrivacyChip.setVisibility(visibility ? View.VISIBLE : View.GONE);
if (visibility) {
// Animates the icons and battery indicator from alpha 0 to 1, when the chip is visible
mIconsAlphaAnimator = mIconsAlphaAnimatorFixed;
mIconsAlphaAnimator.setPosition(mKeyguardExpansionFraction);
} else {
mIconsAlphaAnimator = null;
mIconContainer.setAlpha(1);
mBatteryRemainingIcon.setAlpha(1);
}
}
/** */
public void setExpanded(boolean expanded, QuickQSPanelController quickQSPanelController) {
if (mExpanded == expanded) return;
@@ -285,6 +314,9 @@ public class QuickStatusBarHeader extends FrameLayout {
if (mTranslationAnimator != null) {
mTranslationAnimator.setPosition(keyguardExpansionFraction);
}
if (mIconsAlphaAnimator != null) {
mIconsAlphaAnimator.setPosition(keyguardExpansionFraction);
}
// If forceExpanded (we are opening QS from lockscreen), the animators have been set to
// position = 1f.
if (forceExpanded) {

View File

@@ -225,7 +225,6 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
private void setChipVisibility(boolean chipVisible) {
if (chipVisible && getChipEnabled()) {
mPrivacyChip.setVisibility(View.VISIBLE);
mPrivacyLogger.logChipVisible(true);
// Makes sure that the chip is logged as viewed at most once each time QS is opened
// mListening makes sure that the callback didn't return after the user closed QS
@@ -235,8 +234,8 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
}
} else {
mPrivacyLogger.logChipVisible(false);
mPrivacyChip.setVisibility(View.GONE);
}
mView.setChipVisibility(chipVisible);
}
private List<String> getIgnoredIconSlots() {