Merge "Fixing displaying two carriers in split shade header" into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b868b03605
@@ -46,10 +46,11 @@ class SplitShadeHeaderController @Inject constructor(
|
||||
private val SPLIT_HEADER_TRANSITION_ID = R.id.split_header_transition
|
||||
}
|
||||
|
||||
private val carrierIconSlots: List<String>
|
||||
private val combinedHeaders = featureFlags.useCombinedQSHeaders()
|
||||
// TODO(b/194178072) Handle RSSI hiding when multi carrier
|
||||
private val iconManager: StatusBarIconController.IconManager
|
||||
private val qsCarrierGroupController: QSCarrierGroupController
|
||||
private val iconContainer: StatusIconContainer
|
||||
private var visible = false
|
||||
set(value) {
|
||||
if (field == value) {
|
||||
@@ -115,7 +116,16 @@ class SplitShadeHeaderController @Inject constructor(
|
||||
batteryMeterViewController.ignoreTunerUpdates()
|
||||
batteryIcon.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE)
|
||||
|
||||
val iconContainer: StatusIconContainer = statusBar.findViewById(R.id.statusIcons)
|
||||
carrierIconSlots = if (featureFlags.isCombinedStatusBarSignalIconsEnabled) {
|
||||
listOf(
|
||||
statusBar.context.getString(com.android.internal.R.string.status_bar_no_calling),
|
||||
statusBar.context.getString(com.android.internal.R.string.status_bar_call_strength)
|
||||
)
|
||||
} else {
|
||||
listOf(statusBar.context.getString(com.android.internal.R.string.status_bar_mobile))
|
||||
}
|
||||
|
||||
iconContainer = statusBar.findViewById(R.id.statusIcons)
|
||||
iconManager = StatusBarIconController.IconManager(iconContainer, featureFlags)
|
||||
qsCarrierGroupController = qsCarrierGroupControllerBuilder
|
||||
.setQSCarrierGroup(statusBar.findViewById(R.id.carrier_group))
|
||||
@@ -181,9 +191,20 @@ class SplitShadeHeaderController @Inject constructor(
|
||||
private fun updateListeners() {
|
||||
qsCarrierGroupController.setListening(visible)
|
||||
if (visible) {
|
||||
updateSingleCarrier(qsCarrierGroupController.isSingleCarrier)
|
||||
qsCarrierGroupController.setOnSingleCarrierChangedListener { updateSingleCarrier(it) }
|
||||
statusBarIconController.addIconGroup(iconManager)
|
||||
} else {
|
||||
qsCarrierGroupController.setOnSingleCarrierChangedListener(null)
|
||||
statusBarIconController.removeIconGroup(iconManager)
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateSingleCarrier(singleCarrier: Boolean) {
|
||||
if (singleCarrier) {
|
||||
iconContainer.removeIgnoredSlots(carrierIconSlots)
|
||||
} else {
|
||||
iconContainer.addIgnoredSlots(carrierIconSlots)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.android.systemui.statusbar.phone
|
||||
|
||||
import android.test.suitebuilder.annotation.SmallTest
|
||||
import android.testing.AndroidTestingRunner
|
||||
import android.view.View
|
||||
import androidx.test.filters.SmallTest
|
||||
import com.android.systemui.R
|
||||
import com.android.systemui.SysuiTestCase
|
||||
import com.android.systemui.animation.ShadeInterpolation
|
||||
@@ -41,6 +41,7 @@ class SplitShadeHeaderControllerTest : SysuiTestCase() {
|
||||
var viewVisibility = View.GONE
|
||||
|
||||
private lateinit var splitShadeHeaderController: SplitShadeHeaderController
|
||||
private lateinit var carrierIconSlots: List<String>
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
@@ -66,12 +67,13 @@ class SplitShadeHeaderControllerTest : SysuiTestCase() {
|
||||
featureFlags,
|
||||
batteryMeterViewController
|
||||
)
|
||||
carrierIconSlots = listOf(
|
||||
context.getString(com.android.internal.R.string.status_bar_mobile))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun setVisible_onlyInSplitShade() {
|
||||
splitShadeHeaderController.splitShadeMode = true
|
||||
splitShadeHeaderController.shadeExpanded = true
|
||||
makeShadeVisible()
|
||||
assertThat(viewVisibility).isEqualTo(View.VISIBLE)
|
||||
|
||||
splitShadeHeaderController.splitShadeMode = false
|
||||
@@ -80,17 +82,38 @@ class SplitShadeHeaderControllerTest : SysuiTestCase() {
|
||||
|
||||
@Test
|
||||
fun updateListeners_registersWhenVisible() {
|
||||
splitShadeHeaderController.splitShadeMode = true
|
||||
splitShadeHeaderController.shadeExpanded = true
|
||||
makeShadeVisible()
|
||||
verify(qsCarrierGroupController).setListening(true)
|
||||
verify(statusBarIconController).addIconGroup(any())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun shadeExpandedFraction_updatesAlpha() {
|
||||
splitShadeHeaderController.splitShadeMode = true
|
||||
splitShadeHeaderController.shadeExpanded = true
|
||||
makeShadeVisible()
|
||||
splitShadeHeaderController.shadeExpandedFraction = 0.5f
|
||||
verify(view).setAlpha(ShadeInterpolation.getContentAlpha(0.5f))
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun singleCarrier_enablesCarrierIconsInStatusIcons() {
|
||||
whenever(qsCarrierGroupController.isSingleCarrier).thenReturn(true)
|
||||
|
||||
makeShadeVisible()
|
||||
|
||||
verify(statusIcons).removeIgnoredSlots(carrierIconSlots)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun dualCarrier_disablesCarrierIconsInStatusIcons() {
|
||||
whenever(qsCarrierGroupController.isSingleCarrier).thenReturn(false)
|
||||
|
||||
makeShadeVisible()
|
||||
|
||||
verify(statusIcons).addIgnoredSlots(carrierIconSlots)
|
||||
}
|
||||
|
||||
private fun makeShadeVisible() {
|
||||
splitShadeHeaderController.splitShadeMode = true
|
||||
splitShadeHeaderController.shadeExpanded = true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user