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

Commit 3b6b06bf authored by Winson Chung's avatar Winson Chung
Browse files

Update immersive cling dialog

- Layout the dialog under the cutout (but inset the contents if it
  overlaps with the cutout region)
- Update the instruction string
- Update the design to match spec
- Update both WM (old) dialog and SysUI (new) dialog

Flag: EXEMPT bugfix
Fixes: 330912316
Fixes: 315134175
Fixes: 282424060
Test: Verify immersive cling visuals in small/large screen,
      portrait/landscape, with/without display cutouts
Test: adb shell setprop persist.wm.debug.client_immersive_confirmation true/false

Change-Id: I549211b71dcc14c8ba7bc977393af40b9ba0f6c5
parent 5610bd19
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2024 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="960"
    android:viewportHeight="960"
    android:tint="?attr/colorControlNormal">
    <path
        android:fillColor="@android:color/white"
        android:pathData="M180,600L40,460L82,418L152,488Q146,461 143,434Q140,407 140,380Q140,298 167,221Q194,144 245,80L288,123Q245,179 222.5,244.5Q200,310 200,380Q200,406 203,431.5Q206,457 213,482L278,418L320,460L180,600ZM658,833Q635,841 611.5,840.5Q588,840 566,829L304,707L322,667Q332,647 350,634.5Q368,622 390,620L458,615L346,308Q340,292 347,277.5Q354,263 370,257Q386,251 400.5,258Q415,265 421,281L569,688L469,695L600,756Q607,759 615,759.5Q623,760 630,758L787,701Q818,690 832,659.5Q846,629 835,598L780,448Q774,432 781,417.5Q788,403 804,397Q820,391 834.5,398Q849,405 855,421L910,571Q933,634 905.5,693.5Q878,753 815,776L658,833ZM568,568L514,417Q508,401 515,386.5Q522,372 538,366Q554,360 568.5,367Q583,374 589,390L644,540L568,568ZM681,527L640,414Q634,398 641,383.5Q648,369 664,363Q680,357 694.5,364Q709,371 715,387L756,499L681,527ZM689,605L689,605L689,605Q689,605 689,605Q689,605 689,605L689,605Q689,605 689,605Q689,605 689,605L689,605L689,605Z"/>
</vector>
 No newline at end of file
+7 −9
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2015 The Android Open Source Project
  ~ Copyright (C) 2024 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
@@ -15,12 +15,10 @@
  ~ limitations under the License
  -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval" >

    <solid android:color="@color/white" />

    <size
        android:height="56dp"
        android:width="56dp" />

    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
    android:shape="rectangle">
    <corners
        android:bottomLeftRadius="28dp"
        android:bottomRightRadius="28dp"/>
    <solid android:color="?androidprv:attr/materialColorSurfaceContainer" />
</shape>
+32 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2023 The Android Open Source Project
  ~ Copyright (C) 2024 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
@@ -12,15 +12,21 @@
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License
  ~ limitations under the License.
  -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval" >

    <solid android:color="?android:attr/colorBackground" />

    <size
        android:height="56dp"
        android:width="56dp" />

<inset xmlns:android="http://schemas.android.com/apk/res/android">
    <ripple android:color="?android:attr/colorControlHighlight">
        <item android:id="@android:id/mask">
            <shape android:shape="rectangle">
                <solid android:color="@android:color/white" />
                <corners android:radius="28dp" />
            </shape>
        </item>
        <item>
            <shape android:shape="rectangle">
                <corners android:radius="28dp" />
                <solid android:color="?android:attr/colorAccent" />
            </shape>
        </item>
    </ripple>
</inset>
 No newline at end of file
+38 −50
Original line number Diff line number Diff line
@@ -14,79 +14,67 @@
     limitations under the License.
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
        android:theme="@android:style/Theme.DeviceDefault.DayNight"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?android:attr/colorAccent"
        android:background="@android:drawable/immersive_cling_bg"
        android:gravity="center_vertical"
        android:paddingBottom="24dp">

    <FrameLayout
            android:id="@+id/immersive_cling_chevron"
            android:layout_width="76dp"
            android:layout_height="76dp"
            android:layout_marginTop="-24dp"
            android:layout_centerHorizontal="true">
        android:padding="24dp">

    <!-- The top margin of this icon can be adjusted to push the content down to prevent overlapping
         with the display cutout. -->
    <ImageView
                android:id="@+id/immersive_cling_back_bg_light"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="center"
                android:src="@drawable/immersive_cling_light_bg_circ" />

        <ImageView
                android:id="@+id/immersive_cling_back_bg"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="center"
                android:src="@drawable/immersive_cling_bg_circ" />

        <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingTop="8dp"
                android:scaleType="center"
                android:src="@drawable/ic_expand_more_48dp"
                android:tint="?android:attr/colorAccent"/>
    </FrameLayout>
            android:id="@+id/immersive_cling_icon"
            android:layout_width="32dp"
            android:layout_height="32dp"
            android:layout_centerHorizontal="true"
            android:scaleType="fitXY"
            android:src="@drawable/ic_swipe_down"
            android:tint="?android:attr/colorAccent"
            android:tintMode="src_in" />

    <TextView
            android:id="@+id/immersive_cling_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/immersive_cling_chevron"
            android:paddingEnd="48dp"
            android:paddingStart="48dp"
            android:paddingTop="40dp"
            android:layout_below="@id/immersive_cling_icon"
            android:layout_marginTop="20dp"
            android:gravity="center_horizontal"
            android:text="@string/immersive_cling_title"
            android:textColor="@android:color/white"
            android:textSize="24sp" />
            android:textColor="?androidprv:attr/materialColorOnSurface"
            android:textSize="24sp"
            android:fontFamily="google-sans" />

    <TextView
            android:id="@+id/immersive_cling_description"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/immersive_cling_title"
            android:paddingEnd="48dp"
            android:paddingStart="48dp"
            android:paddingTop="12.6dp"
            android:paddingTop="14dp"
            android:gravity="center_horizontal"
            android:text="@string/immersive_cling_description"
            android:textColor="@android:color/white"
            android:textSize="16sp" />
            android:textColor="?androidprv:attr/materialColorOnSurfaceVariant"
            android:textSize="14sp"
            android:fontFamily="google-sans" />

    <Button
            android:id="@+id/ok"
            style="@style/Widget.Material.Button.Borderless"
            style="@style/Widget.Material.Button.Borderless.Colored"
            android:background="@drawable/immersive_cling_btn_bg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_below="@+id/immersive_cling_description"
            android:layout_marginEnd="40dp"
            android:layout_marginTop="18dp"
            android:paddingEnd="8dp"
            android:paddingStart="8dp"
            android:layout_marginTop="24dp"
            android:paddingStart="18dp"
            android:paddingEnd="18dp"
            android:minWidth="48dp"
            android:minHeight="48dp"
            android:text="@string/immersive_cling_positive"
            android:textColor="@android:color/white"
            android:textSize="14sp" />

            android:textColor="?androidprv:attr/materialColorOnPrimary"
            android:textAllCaps="false"
            android:textSize="14sp"
            android:textFontWeight="500"
            android:fontFamily="google-sans" />
</RelativeLayout>
+1 −1
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@
    <dimen name="timepicker_left_side_width">250dip</dimen>

    <!-- width of ImmersiveModeConfirmation (-1 for match_parent) -->
    <dimen name="immersive_mode_cling_width">380dp</dimen>
    <dimen name="immersive_mode_cling_width">500dp</dimen>

     <!-- Floating toolbar dimensions -->
     <dimen name="floating_toolbar_preferred_width">544dp</dimen>
Loading