Loading packages/SystemUI/res/drawable/privacy_chip_bg.xml +1 −3 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ --> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#242424" /> <!-- 14% of white --> <padding android:paddingTop="@dimen/ongoing_appops_chip_bg_padding" android:paddingBottom="@dimen/ongoing_appops_chip_bg_padding" /> <solid android:color="#FFFFFF" /> <corners android:radius="@dimen/ongoing_appops_chip_bg_corner_radius" /> </shape> No newline at end of file packages/SystemUI/res/layout/ongoing_privacy_chip.xml +7 −12 Original line number Diff line number Diff line Loading @@ -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" > <FrameLayout android:id="@+id/background" android:layout_height="@dimen/ongoing_appops_chip_height" android:layout_width="wrap_content" android:minWidth="48dp" android:layout_gravity="center_vertical"> <LinearLayout android:id="@+id/icons_container" android:layout_height="match_parent" android:layout_height="@dimen/ongoing_appops_chip_height" android:layout_width="wrap_content" android:gravity="center_vertical" android:layout_gravity="center" /> </FrameLayout> </com.android.systemui.privacy.OngoingPrivacyChip> No newline at end of file packages/SystemUI/res/values/dimens.xml +4 −8 Original line number Diff line number Diff line Loading @@ -1179,17 +1179,13 @@ <dimen name="display_cutout_margin_consumption">0px</dimen> <!-- Height of the Ongoing App Ops chip --> <dimen name="ongoing_appops_chip_height">32dp</dimen> <!-- Padding between background of Ongoing App Ops chip and content --> <dimen name="ongoing_appops_chip_bg_padding">8dp</dimen> <dimen name="ongoing_appops_chip_height">24dp</dimen> <!-- Side padding between background of Ongoing App Ops chip and content --> <dimen name="ongoing_appops_chip_side_padding">8dp</dimen> <!-- Margin between icons of Ongoing App Ops chip when QQS--> <dimen name="ongoing_appops_chip_icon_margin_collapsed">0dp</dimen> <!-- Margin between icons of Ongoing App Ops chip when QS--> <dimen name="ongoing_appops_chip_icon_margin_expanded">2dp</dimen> <!-- Margin between icons of Ongoing App Ops chip --> <dimen name="ongoing_appops_chip_icon_margin">4dp</dimen> <!-- Icon size of Ongoing App Ops chip --> <dimen name="ongoing_appops_chip_icon_size">@dimen/status_bar_icon_drawing_size</dimen> <dimen name="ongoing_appops_chip_icon_size">16dp</dimen> <!-- Radius of Ongoing App Ops chip corners --> <dimen name="ongoing_appops_chip_bg_corner_radius">16dp</dimen> Loading packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyChip.kt +31 −29 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -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<PrivacyItem>() set(value) { Loading @@ -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 -> Loading @@ -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 } } Loading @@ -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() } Loading @@ -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 packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java +0 −12 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -284,7 +283,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn updateStatusIconAlphaAnimator(); updateHeaderTextContainerAlphaAnimator(); updatePrivacyChipAlphaAnimator(); } private void updateStatusIconAlphaAnimator() { Loading @@ -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; Loading Loading @@ -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; } Loading Loading
packages/SystemUI/res/drawable/privacy_chip_bg.xml +1 −3 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ --> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#242424" /> <!-- 14% of white --> <padding android:paddingTop="@dimen/ongoing_appops_chip_bg_padding" android:paddingBottom="@dimen/ongoing_appops_chip_bg_padding" /> <solid android:color="#FFFFFF" /> <corners android:radius="@dimen/ongoing_appops_chip_bg_corner_radius" /> </shape> No newline at end of file
packages/SystemUI/res/layout/ongoing_privacy_chip.xml +7 −12 Original line number Diff line number Diff line Loading @@ -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" > <FrameLayout android:id="@+id/background" android:layout_height="@dimen/ongoing_appops_chip_height" android:layout_width="wrap_content" android:minWidth="48dp" android:layout_gravity="center_vertical"> <LinearLayout android:id="@+id/icons_container" android:layout_height="match_parent" android:layout_height="@dimen/ongoing_appops_chip_height" android:layout_width="wrap_content" android:gravity="center_vertical" android:layout_gravity="center" /> </FrameLayout> </com.android.systemui.privacy.OngoingPrivacyChip> No newline at end of file
packages/SystemUI/res/values/dimens.xml +4 −8 Original line number Diff line number Diff line Loading @@ -1179,17 +1179,13 @@ <dimen name="display_cutout_margin_consumption">0px</dimen> <!-- Height of the Ongoing App Ops chip --> <dimen name="ongoing_appops_chip_height">32dp</dimen> <!-- Padding between background of Ongoing App Ops chip and content --> <dimen name="ongoing_appops_chip_bg_padding">8dp</dimen> <dimen name="ongoing_appops_chip_height">24dp</dimen> <!-- Side padding between background of Ongoing App Ops chip and content --> <dimen name="ongoing_appops_chip_side_padding">8dp</dimen> <!-- Margin between icons of Ongoing App Ops chip when QQS--> <dimen name="ongoing_appops_chip_icon_margin_collapsed">0dp</dimen> <!-- Margin between icons of Ongoing App Ops chip when QS--> <dimen name="ongoing_appops_chip_icon_margin_expanded">2dp</dimen> <!-- Margin between icons of Ongoing App Ops chip --> <dimen name="ongoing_appops_chip_icon_margin">4dp</dimen> <!-- Icon size of Ongoing App Ops chip --> <dimen name="ongoing_appops_chip_icon_size">@dimen/status_bar_icon_drawing_size</dimen> <dimen name="ongoing_appops_chip_icon_size">16dp</dimen> <!-- Radius of Ongoing App Ops chip corners --> <dimen name="ongoing_appops_chip_bg_corner_radius">16dp</dimen> Loading
packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyChip.kt +31 −29 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -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<PrivacyItem>() set(value) { Loading @@ -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 -> Loading @@ -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 } } Loading @@ -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() } Loading @@ -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
packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java +0 −12 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -284,7 +283,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn updateStatusIconAlphaAnimator(); updateHeaderTextContainerAlphaAnimator(); updatePrivacyChipAlphaAnimator(); } private void updateStatusIconAlphaAnimator() { Loading @@ -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; Loading Loading @@ -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; } Loading