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

Commit 560c8cd0 authored by Anton Potapov's avatar Anton Potapov
Browse files

Limit Volume Dialog window width

The gpu memory buffer is allocated for the whole size of the window
regardless of it being mostly transparent. This is a huge waste of
resources given that the Volume Dialog only occupies a small fraction of
it.

We still want to fill the whole height though because of the animation
around half folded internal screen on a foldable device.

This CL introduces a compromise betwee precise control over Volume Dialog vertical alignment and window size.

Flag: com.android.systemui.volume_redesign
Fixes: 398311439
Test: atest VolumeDialogScreenshotTest
Test: manual on foldable. Observe volume dialog appearance. Check that
there is enough space for the horizontal ringer drawer.

Change-Id: Ia8b1fe90ed59b32b7e1412074a52c44648ac7927
parent 87ae0365
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -16,17 +16,18 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/volume_dialog"
    android:layout_width="match_parent"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:alpha="0"
    android:clipChildren="false">
    android:clipChildren="false"
    android:minWidth="@dimen/volume_dialog_window_width">

    <View
        android:id="@+id/volume_dialog_background"
        android:layout_width="@dimen/volume_dialog_width"
        android:layout_height="0dp"
        android:layout_marginTop="@dimen/volume_dialog_background_top_margin"
        android:layout_marginBottom="@dimen/volume_dialog_background_vertical_margin"
        android:layout_marginBottom="@dimen/volume_dialog_background_margin_negative"
        android:background="@drawable/volume_dialog_background"
        app:layout_constraintBottom_toBottomOf="@id/volume_dialog_bottom_section_container"
        app:layout_constraintEnd_toEndOf="@id/volume_dialog_main_slider_container"
+2 −2
Original line number Diff line number Diff line
@@ -17,8 +17,8 @@
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/volume_dialog_floating_slider_background"
    android:paddingHorizontal="@dimen/volume_dialog_floating_sliders_horizontal_padding"
    android:paddingVertical="@dimen/volume_dialog_floating_sliders_vertical_padding">
    android:paddingHorizontal="@dimen/volume_dialog_floating_sliders_padding"
    android:paddingVertical="@dimen/volume_dialog_floating_sliders_padding">

    <include layout="@layout/volume_dialog_slider" />
</FrameLayout>
 No newline at end of file
+3 −3
Original line number Diff line number Diff line
@@ -22,15 +22,15 @@
    android:clipChildren="false"
    android:clipToPadding="false"
    android:gravity="center"
    android:paddingEnd="@dimen/volume_dialog_buttons_margin"
    android:paddingEnd="@dimen/volume_dialog_background_margin"
    app:layoutDescription="@xml/volume_dialog_ringer_drawer_motion_scene">

    <View
        android:id="@+id/ringer_buttons_background"
        android:layout_width="@dimen/volume_dialog_width"
        android:layout_height="0dp"
        android:layout_marginTop="@dimen/volume_dialog_background_vertical_margin"
        android:layout_marginBottom="@dimen/volume_dialog_background_vertical_margin"
        android:layout_marginTop="@dimen/volume_dialog_background_margin_negative"
        android:layout_marginBottom="@dimen/volume_dialog_background_margin_negative"
        android:background="@drawable/volume_dialog_ringer_background"
        android:visibility="gone" />

+9 −10
Original line number Diff line number Diff line
@@ -2158,28 +2158,25 @@
    <dimen name="contextual_edu_dialog_elevation">2dp</dimen>

    <!-- Volume start -->
    <dimen name="volume_dialog_window_width">176dp</dimen>
    <dimen name="volume_dialog_width">60dp</dimen>

    <dimen name="volume_dialog_background_corner_radius">30dp</dimen>
    <dimen name="volume_dialog_background_vertical_margin">
        @dimen/volume_dialog_buttons_margin_negative
    </dimen>
    <!-- top margin covers half the ringer button + components spacing -->
    <dimen name="volume_dialog_background_top_margin">-28dp</dimen>
    <dimen name="volume_dialog_background_margin">10dp</dimen>
    <dimen name="volume_dialog_background_margin_negative">-10dp</dimen>

    <dimen name="volume_dialog_window_margin">14dp</dimen>
    <dimen name="volume_dialog_window_margin">12dp</dimen>
    <dimen name="volume_dialog_components_spacing">10dp</dimen>
    <dimen name="volume_dialog_floating_sliders_spacing">8dp</dimen>
    <dimen name="volume_dialog_floating_sliders_vertical_padding">10dp</dimen>
    <dimen name="volume_dialog_floating_sliders_vertical_padding_negative">
        @dimen/volume_dialog_buttons_margin_negative
        @dimen/volume_dialog_background_margin_negative
    </dimen>
    <dimen name="volume_dialog_floating_sliders_horizontal_padding">4dp</dimen>
    <dimen name="volume_dialog_floating_sliders_padding">4dp</dimen>
    <dimen name="volume_dialog_button_size">40dp</dimen>
    <dimen name="volume_dialog_slider_width">52dp</dimen>
    <dimen name="volume_dialog_slider_height">254dp</dimen>
    <dimen name="volume_dialog_buttons_margin">10dp</dimen>
    <dimen name="volume_dialog_buttons_margin_negative">-10dp</dimen>
    <!--
        A primary goal of this margin is to vertically constraint slider height in the landscape
        orientation when the vertical space is limited
@@ -2190,8 +2187,10 @@

    <dimen name="volume_dialog_background_square_corner_radius">12dp</dimen>

    <dimen name="volume_dialog_ringer_drawer_margin">@dimen/volume_dialog_buttons_margin</dimen>
    <dimen name="volume_dialog_ringer_drawer_button_size">@dimen/volume_dialog_button_size</dimen>
    <dimen name="volume_dialog_ringer_drawer_buttons_spacing">
        @dimen/volume_dialog_components_spacing
    </dimen>
    <dimen name="volume_dialog_ringer_drawer_button_icon_radius">10dp</dimen>
    <dimen name="volume_dialog_ringer_selected_button_background_radius">20dp</dimen>

+3 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.volume.dialog

import android.content.Context
import android.os.Bundle
import android.view.Gravity
import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
@@ -57,7 +58,8 @@ constructor(
                attributes.apply {
                    title = "VolumeDialog" // Not the same as Window#setTitle
                }
            setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
            setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT)
            setGravity(Gravity.END)
        }
        setCanceledOnTouchOutside(true)
    }
Loading