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

Commit 802bf396 authored by Adrian Roos's avatar Adrian Roos Committed by Android (Google) Code Review
Browse files

Merge "SysUI: Fix a bunch of hacks around insets and cutouts" into pi-dev

parents e1a6d378 edfab3b8
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -13,7 +13,7 @@
     See the License for the specific language governing permissions and
     See the License for the specific language governing permissions and
     limitations under the License.
     limitations under the License.
-->
-->
<com.android.systemui.volume.VolumeUiLayout
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_height="wrap_content"
@@ -89,4 +89,4 @@
        </LinearLayout>
        </LinearLayout>


    </LinearLayout>
    </LinearLayout>
</com.android.systemui.volume.VolumeUiLayout>
</FrameLayout>
 No newline at end of file
 No newline at end of file
+4 −1
Original line number Original line Diff line number Diff line
@@ -335,6 +335,7 @@
    <style name="qs_theme" parent="qs_base">
    <style name="qs_theme" parent="qs_base">
        <item name="lightIconTheme">@style/QSIconTheme</item>
        <item name="lightIconTheme">@style/QSIconTheme</item>
        <item name="darkIconTheme">@style/QSIconTheme</item>
        <item name="darkIconTheme">@style/QSIconTheme</item>
        <item name="android:windowIsFloating">true</item>
    </style>
    </style>


    <style name="systemui_theme_remote_input" parent="@android:style/Theme.DeviceDefault.Light">
    <style name="systemui_theme_remote_input" parent="@android:style/Theme.DeviceDefault.Light">
@@ -345,7 +346,9 @@


    <style name="Theme.SystemUI.Dialog.Alert" parent="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert" />
    <style name="Theme.SystemUI.Dialog.Alert" parent="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert" />


    <style name="Theme.SystemUI.Dialog.GlobalActions" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar.Fullscreen" />
    <style name="Theme.SystemUI.Dialog.GlobalActions" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar.Fullscreen">
        <item name="android:windowIsFloating">true</item>
    </style>


    <style name="QSBorderlessButton">
    <style name="QSBorderlessButton">
        <item name="android:padding">12dp</item>
        <item name="android:padding">12dp</item>
+9 −2
Original line number Original line Diff line number Diff line
@@ -14,6 +14,7 @@


package com.android.systemui.globalactions;
package com.android.systemui.globalactions;


import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;


import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST;
import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST;
@@ -1356,11 +1357,17 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener,
            // Window initialization
            // Window initialization
            Window window = getWindow();
            Window window = getWindow();
            window.requestFeature(Window.FEATURE_NO_TITLE);
            window.requestFeature(Window.FEATURE_NO_TITLE);
            window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND
            // Inflate the decor view, so the attributes below are not overwritten by the theme.
                    | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR);
            window.getDecorView();
            window.getAttributes().systemUiVisibility |= View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
            window.setLayout(MATCH_PARENT, MATCH_PARENT);
            window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
            window.addFlags(
            window.addFlags(
                    WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                    WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                    | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                    | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                    | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR
                    | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                    | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                    | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
                    | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
                    | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
                    | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
+11 −3
Original line number Original line Diff line number Diff line
@@ -15,12 +15,14 @@
package com.android.systemui.globalactions;
package com.android.systemui.globalactions;


import static android.app.StatusBarManager.DISABLE2_GLOBAL_ACTIONS;
import static android.app.StatusBarManager.DISABLE2_GLOBAL_ACTIONS;
import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;


import android.app.Dialog;
import android.app.Dialog;
import android.app.KeyguardManager;
import android.app.KeyguardManager;
import android.app.WallpaperManager;
import android.app.WallpaperManager;
import android.content.Context;
import android.content.Context;
import android.graphics.Point;
import android.graphics.Point;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup;
import android.view.Window;
import android.view.Window;
import android.view.WindowManager;
import android.view.WindowManager;
@@ -80,15 +82,21 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks
                com.android.systemui.R.style.Theme_SystemUI_Dialog_GlobalActions);
                com.android.systemui.R.style.Theme_SystemUI_Dialog_GlobalActions);
        // Window initialization
        // Window initialization
        Window window = d.getWindow();
        Window window = d.getWindow();
        window.requestFeature(Window.FEATURE_NO_TITLE);
        window.getAttributes().systemUiVisibility |= View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
        // Inflate the decor view, so the attributes below are not overwritten by the theme.
        window.getDecorView();
        window.getAttributes().width = ViewGroup.LayoutParams.MATCH_PARENT;
        window.getAttributes().width = ViewGroup.LayoutParams.MATCH_PARENT;
        window.getAttributes().height = ViewGroup.LayoutParams.MATCH_PARENT;
        window.getAttributes().height = ViewGroup.LayoutParams.MATCH_PARENT;
        window.getAttributes().layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
        window.setType(WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY);
        window.setType(WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY);
        window.requestFeature(Window.FEATURE_NO_TITLE);
        window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
        window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND
                | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR);
        window.addFlags(
        window.addFlags(
                WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                        | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                        | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                        | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR
                        | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                        | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                        | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
                        | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
                        | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
                        | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
+18 −11
Original line number Original line Diff line number Diff line
@@ -20,7 +20,6 @@ import android.annotation.ColorInt;
import android.content.Context;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Drawable;
@@ -29,21 +28,19 @@ import android.util.TypedValue;
import android.view.DisplayCutout;
import android.view.DisplayCutout;
import android.view.View;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewTreeObserver;
import android.view.ViewTreeObserver;
import android.view.WindowInsets;
import android.widget.ImageView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.TextView;


import com.android.internal.statusbar.StatusBarIcon;
import com.android.settingslib.Utils;
import com.android.settingslib.Utils;
import com.android.systemui.BatteryMeterView;
import com.android.systemui.BatteryMeterView;
import com.android.systemui.Dependency;
import com.android.systemui.Dependency;
import com.android.systemui.Interpolators;
import com.android.systemui.Interpolators;
import com.android.systemui.R;
import com.android.systemui.R;
import com.android.systemui.qs.QSPanel;
import com.android.systemui.qs.QSPanel;
import com.android.systemui.statusbar.phone.StatusBarIconController.IconManager;
import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager;
import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback;
import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback;
@@ -210,18 +207,26 @@ public class KeyguardStatusBarView extends RelativeLayout
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }
    }


    private void updateLayoutConsideringCutout() {
    @Override
    public WindowInsets onApplyWindowInsets(WindowInsets insets) {
        if (updateLayoutConsideringCutout()) {
            requestLayout();
        }
        return super.onApplyWindowInsets(insets);
    }

    private boolean updateLayoutConsideringCutout() {
        DisplayCutout dc = getRootWindowInsets().getDisplayCutout();
        DisplayCutout dc = getRootWindowInsets().getDisplayCutout();
        if (dc == null) {
        if (dc == null) {
            updateLayoutParamsNoCutout();
            return updateLayoutParamsNoCutout();
        } else {
        } else {
            updateLayoutParamsForCutout(dc);
            return updateLayoutParamsForCutout(dc);
        }
        }
    }
    }


    private void updateLayoutParamsNoCutout() {
    private boolean updateLayoutParamsNoCutout() {
        if (mLayoutState == LAYOUT_NO_CUTOUT) {
        if (mLayoutState == LAYOUT_NO_CUTOUT) {
            return;
            return false;
        }
        }
        mLayoutState = LAYOUT_NO_CUTOUT;
        mLayoutState = LAYOUT_NO_CUTOUT;


@@ -240,11 +245,12 @@ public class KeyguardStatusBarView extends RelativeLayout
                (LinearLayout.LayoutParams) mSystemIconsContainer.getLayoutParams();
                (LinearLayout.LayoutParams) mSystemIconsContainer.getLayoutParams();
        llp.setMarginStart(getResources().getDimensionPixelSize(
        llp.setMarginStart(getResources().getDimensionPixelSize(
                R.dimen.system_icons_super_container_margin_start));
                R.dimen.system_icons_super_container_margin_start));
        return true;
    }
    }


    private void updateLayoutParamsForCutout(DisplayCutout dc) {
    private boolean updateLayoutParamsForCutout(DisplayCutout dc) {
        if (mLayoutState == LAYOUT_CUTOUT) {
        if (mLayoutState == LAYOUT_CUTOUT) {
            return;
            return false;
        }
        }
        mLayoutState = LAYOUT_CUTOUT;
        mLayoutState = LAYOUT_CUTOUT;


@@ -268,6 +274,7 @@ public class KeyguardStatusBarView extends RelativeLayout
        LinearLayout.LayoutParams llp =
        LinearLayout.LayoutParams llp =
                (LinearLayout.LayoutParams) mSystemIconsContainer.getLayoutParams();
                (LinearLayout.LayoutParams) mSystemIconsContainer.getLayoutParams();
        llp.setMarginStart(0);
        llp.setMarginStart(0);
        return true;
    }
    }


    //TODO: Something is setting signal_cluster to MATCH_PARENT. Why?
    //TODO: Something is setting signal_cluster to MATCH_PARENT. Why?
Loading