Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 30246160 authored by Alina Zaidi's avatar Alina Zaidi Committed by Android (Google) Code Review
Browse files

Merge "Revert^2 "Make sure StatusBarContentInsetsProvider for correct dis..."" into main

parents 59bb76ec 0bd1e464
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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()!!

+2 −1
Original line number Diff line number Diff line
@@ -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 {
@@ -180,6 +180,7 @@ class KeyguardStatusBarViewControllerTest : SysuiTestCase() {
    private fun createController(): KeyguardStatusBarViewController {
        return KeyguardStatusBarViewController(
            kosmos.testDispatcher,
            context,
            keyguardStatusBarView,
            carrierTextController,
            configurationController,
+12 −8
Original line number Diff line number Diff line
@@ -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

/**
@@ -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.
@@ -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 =
@@ -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
+7 −2
Original line number Diff line number Diff line
@@ -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
@@ -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,
@@ -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]. */
@@ -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()
+13 −4
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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,
@@ -347,6 +351,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
    ) {
        super(view);
        mCoroutineDispatcher = dispatcher;
        mContext = context;
        mCarrierTextController = carrierTextController;
        mConfigurationController = configurationController;
        mAnimationScheduler = animationScheduler;
@@ -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;
@@ -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();
@@ -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,
@@ -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