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;
}