Add privacy indicators to combined QS header
Use alpha 0 in icons and battery when privacy indicators are visible in QQS constraint. Test: manual, using handheld and split shade layout Bug: 202847414 Change-Id: I8b523c9f87c78fd4eac99a421eebaec90e37cadf
This commit is contained in:
@@ -101,4 +101,16 @@
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
/>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/privacy_container"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="48dp"
|
||||
android:gravity="center"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/date"
|
||||
app:layout_constraintBottom_toBottomOf="@id/date"
|
||||
>
|
||||
<include layout="@layout/ongoing_privacy_chip"/>
|
||||
</FrameLayout>
|
||||
|
||||
</androidx.constraintlayout.motion.widget.MotionLayout>
|
||||
@@ -48,6 +48,14 @@
|
||||
/>
|
||||
</Constraint>
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/statusIcons">
|
||||
</Constraint>
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/batteryRemainingIcon" >
|
||||
</Constraint>
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/carrier_group">
|
||||
<CustomAttribute
|
||||
@@ -56,6 +64,15 @@
|
||||
/>
|
||||
</Constraint>
|
||||
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/privacy_container">
|
||||
<Layout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/date"
|
||||
app:layout_constraintBottom_toBottomOf="@id/date"
|
||||
/>
|
||||
</Constraint>
|
||||
|
||||
</ConstraintSet>
|
||||
@@ -58,5 +58,14 @@
|
||||
/>
|
||||
</Constraint>
|
||||
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/privacy_container">
|
||||
<Layout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="48dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/date"
|
||||
app:layout_constraintBottom_toBottomOf="@id/date"
|
||||
/>
|
||||
</Constraint>
|
||||
</ConstraintSet>
|
||||
@@ -53,5 +53,29 @@
|
||||
/>
|
||||
</Constraint>
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/batteryRemainingIcon">
|
||||
<Layout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintHeight_min="@dimen/split_shade_header_min_height"
|
||||
app:layout_constraintStart_toEndOf="@id/statusIcons"
|
||||
app:layout_constraintEnd_toStartOf="@id/privacy_container"
|
||||
app:layout_constraintTop_toTopOf="@id/clock"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
/>
|
||||
</Constraint>
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/privacy_container">
|
||||
<Layout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/date"
|
||||
app:layout_constraintBottom_toBottomOf="@id/date"
|
||||
app:layout_constraintStart_toEndOf="@id/batteryRemainingIcon"
|
||||
/>
|
||||
</Constraint>
|
||||
|
||||
</ConstraintSet>
|
||||
@@ -19,12 +19,14 @@ package com.android.systemui.statusbar.phone
|
||||
import android.view.View
|
||||
import androidx.constraintlayout.motion.widget.MotionLayout
|
||||
import com.android.settingslib.Utils
|
||||
import com.android.systemui.Dumpable
|
||||
import com.android.systemui.R
|
||||
import com.android.systemui.animation.ShadeInterpolation
|
||||
import com.android.systemui.battery.BatteryMeterView
|
||||
import com.android.systemui.battery.BatteryMeterViewController
|
||||
import com.android.systemui.flags.FeatureFlags
|
||||
import com.android.systemui.flags.Flags
|
||||
import com.android.systemui.qs.ChipVisibilityListener
|
||||
import com.android.systemui.qs.HeaderPrivacyIconsController
|
||||
import com.android.systemui.qs.carrier.QSCarrierGroupController
|
||||
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent.StatusBarScope
|
||||
@@ -97,6 +99,18 @@ class SplitShadeHeaderController @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
private val chipVisibilityListener: ChipVisibilityListener = object : ChipVisibilityListener {
|
||||
override fun onChipVisibilityRefreshed(visible: Boolean) {
|
||||
if (statusBar is MotionLayout) {
|
||||
val state = statusBar.getConstraintSet(R.id.qqs_header_constraint).apply {
|
||||
setAlpha(R.id.statusIcons, if (visible) 0f else 1f)
|
||||
setAlpha(R.id.batteryRemainingIcon, if (visible) 0f else 1f)
|
||||
}
|
||||
statusBar.updateState(R.id.qqs_header_constraint, state)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
init {
|
||||
if (statusBar is MotionLayout) {
|
||||
val context = statusBar.context
|
||||
@@ -107,6 +121,7 @@ class SplitShadeHeaderController @Inject constructor(
|
||||
.load(context, resources.getXml(R.xml.qs_header))
|
||||
statusBar.getConstraintSet(R.id.split_header_constraint)
|
||||
.load(context, resources.getXml(R.xml.split_header))
|
||||
privacyIconsController.chipVisibilityListener = chipVisibilityListener
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,7 +164,7 @@ class SplitShadeHeaderController @Inject constructor(
|
||||
}
|
||||
|
||||
private fun onSplitShadeModeChanged() {
|
||||
if (splitShadeMode) {
|
||||
if (splitShadeMode || combinedHeaders) {
|
||||
privacyIconsController.onParentVisible()
|
||||
} else {
|
||||
privacyIconsController.onParentInvisible()
|
||||
|
||||
Reference in New Issue
Block a user