Loading packages/SystemUI/multivalentTests/src/com/android/systemui/shade/QsBatteryModeControllerTest.kt +1 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ class QsBatteryModeControllerTest : SysuiTestCase() { private val kosmos = testKosmos() private val insetsProviderStore = kosmos.fakeStatusBarContentInsetsProviderStore private val insetsProvider = insetsProviderStore.defaultDisplay private val insetsProvider = insetsProviderStore.forDisplay(context.displayId) @JvmField @Rule val mockitoRule = MockitoJUnit.rule()!! Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.kt +2 −1 Original line number Diff line number Diff line Loading @@ -162,7 +162,7 @@ class KeyguardStatusBarViewControllerTest : SysuiTestCase() { Mockito.`when`(iconManagerFactory.create(ArgumentMatchers.any(), ArgumentMatchers.any())) .thenReturn(iconManager) Mockito.`when`(statusBarContentInsetsProviderStore.defaultDisplay) Mockito.`when`(statusBarContentInsetsProviderStore.forDisplay(context.displayId)) .thenReturn(kosmos.mockStatusBarContentInsetsProvider) allowTestableLooperAsMainThread() looper.runWithLooper { Loading @@ -180,6 +180,7 @@ class KeyguardStatusBarViewControllerTest : SysuiTestCase() { private fun createController(): KeyguardStatusBarViewController { return KeyguardStatusBarViewController( kosmos.testDispatcher, context, keyguardStatusBarView, carrierTextController, configurationController, Loading packages/SystemUI/src/com/android/systemui/shade/QsBatteryModeController.kt +12 −8 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ import android.view.DisplayCutout import com.android.systemui.battery.BatteryMeterView import com.android.systemui.res.R import com.android.systemui.statusbar.data.repository.StatusBarContentInsetsProviderStore import com.android.systemui.statusbar.layout.StatusBarContentInsetsProvider import javax.inject.Inject /** Loading @@ -15,11 +16,9 @@ class QsBatteryModeController @Inject constructor( @ShadeDisplayAware private val context: Context, insetsProviderStore: StatusBarContentInsetsProviderStore, private val insetsProviderStore: StatusBarContentInsetsProviderStore, ) { private val insetsProvider = insetsProviderStore.defaultDisplay private companion object { // MotionLayout frames are in [0, 100]. Where 0 and 100 are reserved for start and end // frames. Loading @@ -43,17 +42,19 @@ constructor( * animation. */ @BatteryMeterView.BatteryPercentMode fun getBatteryMode(cutout: DisplayCutout?, qsExpandedFraction: Float): Int? = when { fun getBatteryMode(cutout: DisplayCutout?, qsExpandedFraction: Float): Int? { val insetsProvider = insetsProviderStore.forDisplay(context.displayId) return when { qsExpandedFraction > fadeInStartFraction -> BatteryMeterView.MODE_ESTIMATE qsExpandedFraction < fadeOutCompleteFraction -> if (hasCenterCutout(cutout)) { insetsProvider != null && qsExpandedFraction < fadeOutCompleteFraction -> if (hasCenterCutout(cutout, insetsProvider)) { BatteryMeterView.MODE_ON } else { BatteryMeterView.MODE_ESTIMATE } else -> null } } fun updateResources() { fadeInStartFraction = Loading @@ -64,7 +65,10 @@ constructor( MOTION_LAYOUT_MAX_FRAME.toFloat() } private fun hasCenterCutout(cutout: DisplayCutout?): Boolean = private fun hasCenterCutout( cutout: DisplayCutout?, insetsProvider: StatusBarContentInsetsProvider, ): Boolean = cutout?.let { !insetsProvider.currentRotationHasCornerCutout() && !it.boundingRectTop.isEmpty } ?: false Loading packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt +7 −2 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ import com.android.systemui.shade.ShadeHeaderController.Companion.QS_HEADER_CONS import com.android.systemui.shade.ShadeViewProviderModule.Companion.SHADE_HEADER import com.android.systemui.shade.carrier.ShadeCarrierGroup import com.android.systemui.shade.carrier.ShadeCarrierGroupController import com.android.systemui.shade.data.repository.ShadeDisplaysRepository import com.android.systemui.statusbar.data.repository.StatusBarContentInsetsProviderStore import com.android.systemui.statusbar.phone.StatusBarLocation import com.android.systemui.statusbar.phone.StatusIconContainer Loading Loading @@ -90,8 +91,9 @@ constructor( private val statusBarIconController: StatusBarIconController, private val tintedIconManagerFactory: TintedIconManager.Factory, private val privacyIconsController: HeaderPrivacyIconsController, private val insetsProviderStore: StatusBarContentInsetsProviderStore, private val statusBarContentInsetsProviderStore: StatusBarContentInsetsProviderStore, @ShadeDisplayAware private val configurationController: ConfigurationController, private val shadeDisplaysRepository: ShadeDisplaysRepository, private val variableDateViewControllerFactory: VariableDateViewController.Factory, @Named(SHADE_HEADER) private val batteryMeterViewController: BatteryMeterViewController, private val dumpManager: DumpManager, Loading @@ -104,7 +106,9 @@ constructor( private val statusOverlayHoverListenerFactory: StatusOverlayHoverListenerFactory, ) : ViewController<View>(header), Dumpable { private val insetsProvider = insetsProviderStore.defaultDisplay private val statusBarContentInsetsProvider get() = statusBarContentInsetsProviderStore.forDisplay(shadeDisplaysRepository.displayId.value) companion object { /** IDs for transitions and constraints for the [MotionLayout]. */ Loading Loading @@ -414,6 +418,7 @@ constructor( } private fun updateConstraintsForInsets(view: MotionLayout, insets: WindowInsets) { val insetsProvider = statusBarContentInsetsProvider ?: return val cutout = insets.displayCutout.also { this.cutout = it } val sbInsets: Insets = insetsProvider.getStatusBarContentInsetsForCurrentRotation() Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java +13 −4 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static com.android.systemui.Flags.updateUserSwitcherBackground; import static com.android.systemui.statusbar.StatusBarState.KEYGUARD; import static com.android.systemui.util.kotlin.JavaAdapterKt.collectFlow; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.database.ContentObserver; Loading Loading @@ -56,6 +57,7 @@ import com.android.systemui.log.core.LogLevel; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.res.R; import com.android.systemui.scene.shared.flag.SceneContainerFlag; import com.android.systemui.shade.ShadeDisplayAware; import com.android.systemui.shade.ShadeViewStateProvider; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.StatusBarState; Loading Loading @@ -114,6 +116,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat R.id.keyguard_hun_animator_start_tag); private final CoroutineDispatcher mCoroutineDispatcher; private final Context mContext; private final CarrierTextController mCarrierTextController; private final ConfigurationController mConfigurationController; private final SystemStatusAnimationScheduler mAnimationScheduler; Loading @@ -129,7 +132,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat private final KeyguardStatusBarViewModel mKeyguardStatusBarViewModel; private final BiometricUnlockController mBiometricUnlockController; private final SysuiStatusBarStateController mStatusBarStateController; private final StatusBarContentInsetsProvider mInsetsProvider; private final StatusBarContentInsetsProviderStore mInsetsProviderStore; private final UserManager mUserManager; private final StatusBarUserChipViewModel mStatusBarUserChipViewModel; private final SecureSettings mSecureSettings; Loading Loading @@ -314,6 +317,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat @Inject public KeyguardStatusBarViewController( @Main CoroutineDispatcher dispatcher, @ShadeDisplayAware Context context, KeyguardStatusBarView view, CarrierTextController carrierTextController, ConfigurationController configurationController, Loading Loading @@ -347,6 +351,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat ) { super(view); mCoroutineDispatcher = dispatcher; mContext = context; mCarrierTextController = carrierTextController; mConfigurationController = configurationController; mAnimationScheduler = animationScheduler; Loading @@ -362,7 +367,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat mKeyguardStatusBarViewModel = keyguardStatusBarViewModel; mBiometricUnlockController = biometricUnlockController; mStatusBarStateController = statusBarStateController; mInsetsProvider = statusBarContentInsetsProviderStore.getDefaultDisplay(); mInsetsProviderStore = statusBarContentInsetsProviderStore; mUserManager = userManager; mStatusBarUserChipViewModel = userChipViewModel; mSecureSettings = secureSettings; Loading Loading @@ -404,6 +409,10 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat mStatusOverlayHoverListenerFactory = statusOverlayHoverListenerFactory; } private StatusBarContentInsetsProvider insetsProvider() { return mInsetsProviderStore.forDisplay(mContext.getDisplayId()); } @Override protected void onInit() { super.onInit(); Loading Loading @@ -446,7 +455,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat .createDarkAwareListener(mSystemIconsContainer, mView.darkChangeFlow()); mSystemIconsContainer.setOnHoverListener(hoverListener); mView.setOnApplyWindowInsetsListener( (view, windowInsets) -> mView.updateWindowInsets(windowInsets, mInsetsProvider)); (view, windowInsets) -> mView.updateWindowInsets(windowInsets, insetsProvider())); mSecureSettings.registerContentObserverForUserSync( Settings.Secure.STATUS_BAR_SHOW_VIBRATE_ICON, false, Loading Loading @@ -645,7 +654,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat * {@code OnApplyWindowInsetsListener}s. */ public void setDisplayCutout(@Nullable DisplayCutout displayCutout) { mView.setDisplayCutout(displayCutout, mInsetsProvider); mView.setDisplayCutout(displayCutout, insetsProvider()); } /** Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/shade/QsBatteryModeControllerTest.kt +1 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ class QsBatteryModeControllerTest : SysuiTestCase() { private val kosmos = testKosmos() private val insetsProviderStore = kosmos.fakeStatusBarContentInsetsProviderStore private val insetsProvider = insetsProviderStore.defaultDisplay private val insetsProvider = insetsProviderStore.forDisplay(context.displayId) @JvmField @Rule val mockitoRule = MockitoJUnit.rule()!! Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.kt +2 −1 Original line number Diff line number Diff line Loading @@ -162,7 +162,7 @@ class KeyguardStatusBarViewControllerTest : SysuiTestCase() { Mockito.`when`(iconManagerFactory.create(ArgumentMatchers.any(), ArgumentMatchers.any())) .thenReturn(iconManager) Mockito.`when`(statusBarContentInsetsProviderStore.defaultDisplay) Mockito.`when`(statusBarContentInsetsProviderStore.forDisplay(context.displayId)) .thenReturn(kosmos.mockStatusBarContentInsetsProvider) allowTestableLooperAsMainThread() looper.runWithLooper { Loading @@ -180,6 +180,7 @@ class KeyguardStatusBarViewControllerTest : SysuiTestCase() { private fun createController(): KeyguardStatusBarViewController { return KeyguardStatusBarViewController( kosmos.testDispatcher, context, keyguardStatusBarView, carrierTextController, configurationController, Loading
packages/SystemUI/src/com/android/systemui/shade/QsBatteryModeController.kt +12 −8 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ import android.view.DisplayCutout import com.android.systemui.battery.BatteryMeterView import com.android.systemui.res.R import com.android.systemui.statusbar.data.repository.StatusBarContentInsetsProviderStore import com.android.systemui.statusbar.layout.StatusBarContentInsetsProvider import javax.inject.Inject /** Loading @@ -15,11 +16,9 @@ class QsBatteryModeController @Inject constructor( @ShadeDisplayAware private val context: Context, insetsProviderStore: StatusBarContentInsetsProviderStore, private val insetsProviderStore: StatusBarContentInsetsProviderStore, ) { private val insetsProvider = insetsProviderStore.defaultDisplay private companion object { // MotionLayout frames are in [0, 100]. Where 0 and 100 are reserved for start and end // frames. Loading @@ -43,17 +42,19 @@ constructor( * animation. */ @BatteryMeterView.BatteryPercentMode fun getBatteryMode(cutout: DisplayCutout?, qsExpandedFraction: Float): Int? = when { fun getBatteryMode(cutout: DisplayCutout?, qsExpandedFraction: Float): Int? { val insetsProvider = insetsProviderStore.forDisplay(context.displayId) return when { qsExpandedFraction > fadeInStartFraction -> BatteryMeterView.MODE_ESTIMATE qsExpandedFraction < fadeOutCompleteFraction -> if (hasCenterCutout(cutout)) { insetsProvider != null && qsExpandedFraction < fadeOutCompleteFraction -> if (hasCenterCutout(cutout, insetsProvider)) { BatteryMeterView.MODE_ON } else { BatteryMeterView.MODE_ESTIMATE } else -> null } } fun updateResources() { fadeInStartFraction = Loading @@ -64,7 +65,10 @@ constructor( MOTION_LAYOUT_MAX_FRAME.toFloat() } private fun hasCenterCutout(cutout: DisplayCutout?): Boolean = private fun hasCenterCutout( cutout: DisplayCutout?, insetsProvider: StatusBarContentInsetsProvider, ): Boolean = cutout?.let { !insetsProvider.currentRotationHasCornerCutout() && !it.boundingRectTop.isEmpty } ?: false Loading
packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt +7 −2 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ import com.android.systemui.shade.ShadeHeaderController.Companion.QS_HEADER_CONS import com.android.systemui.shade.ShadeViewProviderModule.Companion.SHADE_HEADER import com.android.systemui.shade.carrier.ShadeCarrierGroup import com.android.systemui.shade.carrier.ShadeCarrierGroupController import com.android.systemui.shade.data.repository.ShadeDisplaysRepository import com.android.systemui.statusbar.data.repository.StatusBarContentInsetsProviderStore import com.android.systemui.statusbar.phone.StatusBarLocation import com.android.systemui.statusbar.phone.StatusIconContainer Loading Loading @@ -90,8 +91,9 @@ constructor( private val statusBarIconController: StatusBarIconController, private val tintedIconManagerFactory: TintedIconManager.Factory, private val privacyIconsController: HeaderPrivacyIconsController, private val insetsProviderStore: StatusBarContentInsetsProviderStore, private val statusBarContentInsetsProviderStore: StatusBarContentInsetsProviderStore, @ShadeDisplayAware private val configurationController: ConfigurationController, private val shadeDisplaysRepository: ShadeDisplaysRepository, private val variableDateViewControllerFactory: VariableDateViewController.Factory, @Named(SHADE_HEADER) private val batteryMeterViewController: BatteryMeterViewController, private val dumpManager: DumpManager, Loading @@ -104,7 +106,9 @@ constructor( private val statusOverlayHoverListenerFactory: StatusOverlayHoverListenerFactory, ) : ViewController<View>(header), Dumpable { private val insetsProvider = insetsProviderStore.defaultDisplay private val statusBarContentInsetsProvider get() = statusBarContentInsetsProviderStore.forDisplay(shadeDisplaysRepository.displayId.value) companion object { /** IDs for transitions and constraints for the [MotionLayout]. */ Loading Loading @@ -414,6 +418,7 @@ constructor( } private fun updateConstraintsForInsets(view: MotionLayout, insets: WindowInsets) { val insetsProvider = statusBarContentInsetsProvider ?: return val cutout = insets.displayCutout.also { this.cutout = it } val sbInsets: Insets = insetsProvider.getStatusBarContentInsetsForCurrentRotation() Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java +13 −4 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static com.android.systemui.Flags.updateUserSwitcherBackground; import static com.android.systemui.statusbar.StatusBarState.KEYGUARD; import static com.android.systemui.util.kotlin.JavaAdapterKt.collectFlow; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.database.ContentObserver; Loading Loading @@ -56,6 +57,7 @@ import com.android.systemui.log.core.LogLevel; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.res.R; import com.android.systemui.scene.shared.flag.SceneContainerFlag; import com.android.systemui.shade.ShadeDisplayAware; import com.android.systemui.shade.ShadeViewStateProvider; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.StatusBarState; Loading Loading @@ -114,6 +116,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat R.id.keyguard_hun_animator_start_tag); private final CoroutineDispatcher mCoroutineDispatcher; private final Context mContext; private final CarrierTextController mCarrierTextController; private final ConfigurationController mConfigurationController; private final SystemStatusAnimationScheduler mAnimationScheduler; Loading @@ -129,7 +132,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat private final KeyguardStatusBarViewModel mKeyguardStatusBarViewModel; private final BiometricUnlockController mBiometricUnlockController; private final SysuiStatusBarStateController mStatusBarStateController; private final StatusBarContentInsetsProvider mInsetsProvider; private final StatusBarContentInsetsProviderStore mInsetsProviderStore; private final UserManager mUserManager; private final StatusBarUserChipViewModel mStatusBarUserChipViewModel; private final SecureSettings mSecureSettings; Loading Loading @@ -314,6 +317,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat @Inject public KeyguardStatusBarViewController( @Main CoroutineDispatcher dispatcher, @ShadeDisplayAware Context context, KeyguardStatusBarView view, CarrierTextController carrierTextController, ConfigurationController configurationController, Loading Loading @@ -347,6 +351,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat ) { super(view); mCoroutineDispatcher = dispatcher; mContext = context; mCarrierTextController = carrierTextController; mConfigurationController = configurationController; mAnimationScheduler = animationScheduler; Loading @@ -362,7 +367,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat mKeyguardStatusBarViewModel = keyguardStatusBarViewModel; mBiometricUnlockController = biometricUnlockController; mStatusBarStateController = statusBarStateController; mInsetsProvider = statusBarContentInsetsProviderStore.getDefaultDisplay(); mInsetsProviderStore = statusBarContentInsetsProviderStore; mUserManager = userManager; mStatusBarUserChipViewModel = userChipViewModel; mSecureSettings = secureSettings; Loading Loading @@ -404,6 +409,10 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat mStatusOverlayHoverListenerFactory = statusOverlayHoverListenerFactory; } private StatusBarContentInsetsProvider insetsProvider() { return mInsetsProviderStore.forDisplay(mContext.getDisplayId()); } @Override protected void onInit() { super.onInit(); Loading Loading @@ -446,7 +455,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat .createDarkAwareListener(mSystemIconsContainer, mView.darkChangeFlow()); mSystemIconsContainer.setOnHoverListener(hoverListener); mView.setOnApplyWindowInsetsListener( (view, windowInsets) -> mView.updateWindowInsets(windowInsets, mInsetsProvider)); (view, windowInsets) -> mView.updateWindowInsets(windowInsets, insetsProvider())); mSecureSettings.registerContentObserverForUserSync( Settings.Secure.STATUS_BAR_SHOW_VIBRATE_ICON, false, Loading Loading @@ -645,7 +654,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat * {@code OnApplyWindowInsetsListener}s. */ public void setDisplayCutout(@Nullable DisplayCutout displayCutout) { mView.setDisplayCutout(displayCutout, mInsetsProvider); mView.setDisplayCutout(displayCutout, insetsProvider()); } /** Loading