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

Commit bb5fbe45 authored by Shawn Lee's avatar Shawn Lee
Browse files

[flexiglass] Stop consuming window inset in WindowRootView when flexiglass is on

WindowRootView no longer applies left and right margins according to window insets when flexiglass is enabled - it will be left up to individual scenes to consume the insets appropriately, using WindowInsets provided by Compose and ScreenDecorProvider.

Bug: 324113487
Test: manually verified insets are no longer applied in landscape shade with flexiglass on
Test: manually verified insets are still applied in landscape shade with flexiglass off
Flag: ACONFIG com.android.systemui.scene_container DEVELOPMENT
Change-Id: I90a3834cc5e75efc757d7ba75a48f80040b2ebe7
parent f17bf257
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
    android:id="@+id/scene_window_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">
    android:fitsSystemWindows="false">

    <include layout="@layout/super_notification_shade"
        android:layout_width="match_parent"
+11 −9
Original line number Diff line number Diff line
@@ -25,8 +25,8 @@ import android.view.View
import android.view.WindowInsets
import android.widget.FrameLayout
import androidx.core.view.updateMargins
import com.android.systemui.res.R
import com.android.systemui.compose.ComposeFacade
import com.android.systemui.res.R

/** A view that can serve as the root of the main SysUI window. */
open class WindowRootView(
@@ -71,6 +71,7 @@ open class WindowRootView(

    override fun onApplyWindowInsets(windowInsets: WindowInsets): WindowInsets? {
        val insets = windowInsets.getInsetsIgnoringVisibility(WindowInsets.Type.systemBars())
        val displayCutout = rootWindowInsets.displayCutout
        if (fitsSystemWindows) {
            val paddingChanged = insets.top != paddingTop || insets.bottom != paddingBottom

@@ -78,22 +79,23 @@ open class WindowRootView(
            if (paddingChanged) {
                setPadding(0, 0, 0, 0)
            }

            val pairInsets: Pair<Int, Int> =
                layoutInsetsController.getinsets(windowInsets, displayCutout)
            leftInset = pairInsets.first
            rightInset = pairInsets.second
            applyMargins()
        } else {
            val changed =
                paddingLeft != 0 || paddingRight != 0 || paddingTop != 0 || paddingBottom != 0
            if (changed) {
                setPadding(0, 0, 0, 0)
            }
        }

            leftInset = 0
            rightInset = 0
        }

        val displayCutout = rootWindowInsets.displayCutout
        val pairInsets: Pair<Int, Int> =
            layoutInsetsController.getinsets(windowInsets, displayCutout)
        leftInset = pairInsets.first
        rightInset = pairInsets.second
        applyMargins()
        return windowInsets
    }

+2 −1
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
import com.android.systemui.res.R;
import com.android.systemui.scene.shared.flag.SceneContainerFlag;
import com.android.systemui.scene.shared.flag.SceneContainerFlags;
import com.android.systemui.scene.ui.view.WindowRootViewComponent;
import com.android.systemui.settings.UserTracker;
@@ -506,7 +507,7 @@ public class NotificationShadeWindowControllerImpl implements NotificationShadeW

    private void applyFitsSystemWindows(NotificationShadeWindowState state) {
        boolean fitsSystemWindows = !state.isKeyguardShowingAndNotOccluded();
        if (mWindowRootView != null
        if (!SceneContainerFlag.isEnabled() && mWindowRootView != null
                && mWindowRootView.getFitsSystemWindows() != fitsSystemWindows) {
            mWindowRootView.setFitsSystemWindows(fitsSystemWindows);
            mWindowRootView.requestApplyInsets();