diff --git a/packages/SystemUI/res/drawable/privacy_chip_bg.xml b/packages/SystemUI/res/drawable/privacy_chip_bg.xml index 827cf4a9d3b65..109442d7ed796 100644 --- a/packages/SystemUI/res/drawable/privacy_chip_bg.xml +++ b/packages/SystemUI/res/drawable/privacy_chip_bg.xml @@ -16,8 +16,6 @@ --> - - + \ No newline at end of file diff --git a/packages/SystemUI/res/layout/ongoing_privacy_chip.xml b/packages/SystemUI/res/layout/ongoing_privacy_chip.xml index 3c306322d21fc..bad5826690798 100644 --- a/packages/SystemUI/res/layout/ongoing_privacy_chip.xml +++ b/packages/SystemUI/res/layout/ongoing_privacy_chip.xml @@ -22,19 +22,14 @@ android:layout_height="match_parent" android:layout_width="wrap_content" android:layout_gravity="center_vertical|end" - android:focusable="true" > + android:focusable="true" + android:minWidth="48dp" > - - - + android:gravity="center_vertical" + android:layout_gravity="center" + /> \ No newline at end of file diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 12b8ccfd09d6f..79471e6dacd2e 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -1179,17 +1179,13 @@ 0px - 32dp - - 8dp + 24dp 8dp - - 0dp - - 2dp + + 4dp - @dimen/status_bar_icon_drawing_size + 16dp 16dp diff --git a/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyChip.kt b/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyChip.kt index 870e714ee24c5..bdd37fc521fa0 100644 --- a/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyChip.kt +++ b/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyChip.kt @@ -16,11 +16,11 @@ package com.android.systemui.privacy import android.content.Context import android.util.AttributeSet -import android.view.Gravity import android.view.ViewGroup import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout +import com.android.settingslib.Utils import com.android.systemui.R class OngoingPrivacyChip @JvmOverloads constructor( @@ -30,26 +30,13 @@ class OngoingPrivacyChip @JvmOverloads constructor( defStyleRes: Int = 0 ) : FrameLayout(context, attrs, defStyleAttrs, defStyleRes) { - private val iconMarginExpanded = context.resources.getDimensionPixelSize( - R.dimen.ongoing_appops_chip_icon_margin_expanded) - private val iconMarginCollapsed = context.resources.getDimensionPixelSize( - R.dimen.ongoing_appops_chip_icon_margin_collapsed) - private val iconSize = - context.resources.getDimensionPixelSize(R.dimen.ongoing_appops_chip_icon_size) - private val iconColor = context.resources.getColor( - R.color.status_bar_clock_color, context.theme) - private val sidePadding = - context.resources.getDimensionPixelSize(R.dimen.ongoing_appops_chip_side_padding) - private val backgroundDrawable = context.getDrawable(R.drawable.privacy_chip_bg) + private var iconMargin = 0 + private var iconSize = 0 + private var iconColor = 0 + private var defaultBackgroundColor = 0 + private var cameraBackgroundColor = 0 + private lateinit var iconsContainer: LinearLayout - private lateinit var back: FrameLayout - var expanded = false - set(value) { - if (value != field) { - field = value - updateView(PrivacyChipBuilder(context, privacyList)) - } - } var privacyList = emptyList() set(value) { @@ -60,15 +47,13 @@ class OngoingPrivacyChip @JvmOverloads constructor( override fun onFinishInflate() { super.onFinishInflate() - back = requireViewById(R.id.background) iconsContainer = requireViewById(R.id.icons_container) + + updateResources() } // Should only be called if the builder icons or app changed private fun updateView(builder: PrivacyChipBuilder) { - back.background = if (expanded) backgroundDrawable else null - val padding = if (expanded) sidePadding else 0 - back.setPaddingRelative(padding, 0, padding, 0) fun setIcons(chipBuilder: PrivacyChipBuilder, iconsContainer: ViewGroup) { iconsContainer.removeAllViews() chipBuilder.generateIcons().forEachIndexed { i, it -> @@ -81,7 +66,7 @@ class OngoingPrivacyChip @JvmOverloads constructor( iconsContainer.addView(image, iconSize, iconSize) if (i != 0) { val lp = image.layoutParams as MarginLayoutParams - lp.marginStart = if (expanded) iconMarginExpanded else iconMarginCollapsed + lp.marginStart = iconMargin image.layoutParams = lp } } @@ -90,10 +75,11 @@ class OngoingPrivacyChip @JvmOverloads constructor( if (!privacyList.isEmpty()) { generateContentDescription(builder) setIcons(builder, iconsContainer) - val lp = iconsContainer.layoutParams as FrameLayout.LayoutParams - lp.gravity = Gravity.CENTER_VERTICAL or - (if (expanded) Gravity.CENTER_HORIZONTAL else Gravity.END) - iconsContainer.layoutParams = lp + if (builder.types.contains(PrivacyType.TYPE_CAMERA)) { + iconsContainer.background.setTint(cameraBackgroundColor) + } else { + iconsContainer.background.setTint(defaultBackgroundColor) + } } else { iconsContainer.removeAllViews() } @@ -105,4 +91,20 @@ class OngoingPrivacyChip @JvmOverloads constructor( contentDescription = context.getString( R.string.ongoing_privacy_chip_content_multiple_apps, typesText) } + + private fun updateResources() { + iconMargin = context.resources + .getDimensionPixelSize(R.dimen.ongoing_appops_chip_icon_margin) + iconSize = context.resources + .getDimensionPixelSize(R.dimen.ongoing_appops_chip_icon_size) + iconColor = + Utils.getColorAttrDefaultColor(context, com.android.internal.R.attr.colorPrimary) + defaultBackgroundColor = context.getColor(R.color.privacy_circle_microphone_location) + cameraBackgroundColor = context.getColor(R.color.privacy_circle_camera) + + val padding = context.resources + .getDimensionPixelSize(R.dimen.ongoing_appops_chip_side_padding) + iconsContainer.setPaddingRelative(padding, 0, padding, 0) + iconsContainer.background = context.getDrawable(R.drawable.privacy_chip_bg) + } } \ No newline at end of file diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java index 4248cf2efcd0a..7776c12f587ee 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java @@ -75,7 +75,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn protected QuickQSPanel mHeaderQsPanel; private TouchAnimator mStatusIconsAlphaAnimator; private TouchAnimator mHeaderTextContainerAlphaAnimator; - private TouchAnimator mPrivacyChipAlphaAnimator; private DualToneHandler mDualToneHandler; private View mSystemIconsView; @@ -284,7 +283,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn updateStatusIconAlphaAnimator(); updateHeaderTextContainerAlphaAnimator(); - updatePrivacyChipAlphaAnimator(); } private void updateStatusIconAlphaAnimator() { @@ -299,12 +297,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn .build(); } - private void updatePrivacyChipAlphaAnimator() { - mPrivacyChipAlphaAnimator = new TouchAnimator.Builder() - .addFloat(mPrivacyChip, "alpha", 1, 0, 1) - .build(); - } - /** */ public void setExpanded(boolean expanded, QuickQSPanelController quickQSPanelController) { if (mExpanded == expanded) return; @@ -344,10 +336,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn mHeaderTextContainerView.setVisibility(INVISIBLE); } } - if (mPrivacyChipAlphaAnimator != null) { - mPrivacyChip.setExpanded(expansionFraction > 0.5); - mPrivacyChipAlphaAnimator.setPosition(keyguardExpansionFraction); - } mKeyguardExpansionFraction = keyguardExpansionFraction; }