Loading libs/WindowManager/Shell/res/drawable/circular_progress.xml +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ android:toDegrees="275"> <shape android:shape="ring" android:thickness="3dp" android:thickness="2dp" android:innerRadius="14dp" android:useLevel="true"> </shape> Loading libs/WindowManager/Shell/res/layout/desktop_mode_app_controls_window_decor.xml +2 −7 Original line number Diff line number Diff line Loading @@ -28,13 +28,11 @@ <LinearLayout android:id="@+id/open_menu_button" android:layout_width="wrap_content" android:layout_height="match_parent" android:tint="?androidprv:attr/materialColorOnSurface" android:background="?android:selectableItemBackground" android:layout_height="40dp" android:orientation="horizontal" android:clickable="true" android:focusable="true" android:paddingStart="12dp"> android:layout_marginStart="12dp"> <ImageView android:id="@+id/application_icon" android:layout_width="@dimen/desktop_mode_caption_icon_radius" Loading Loading @@ -85,8 +83,6 @@ android:layout_height="40dp" android:layout_gravity="end" android:layout_marginHorizontal="8dp" android:paddingHorizontal="5dp" android:paddingVertical="3dp" android:clickable="true" android:focusable="true"/> Loading @@ -97,7 +93,6 @@ android:paddingHorizontal="10dp" android:paddingVertical="8dp" android:layout_marginEnd="8dp" android:background="?android:selectableItemBackgroundBorderless" android:contentDescription="@string/close_button_text" android:src="@drawable/desktop_mode_header_ic_close" android:scaleType="centerCrop" Loading libs/WindowManager/Shell/res/layout/maximize_menu_button.xml +19 −11 Original line number Diff line number Diff line Loading @@ -16,20 +16,28 @@ <merge xmlns:android="http://schemas.android.com/apk/res/android" xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"> <FrameLayout android:layout_width="44dp" android:layout_height="40dp"> <ProgressBar android:id="@+id/progress_bar" style="?android:attr/progressBarStyleHorizontal" android:progressDrawable="@drawable/circular_progress" android:layout_width="34dp" android:layout_height="34dp" android:layout_width="32dp" android:layout_height="32dp" android:indeterminate="false" android:layout_marginHorizontal="6dp" android:layout_marginVertical="4dp" android:visibility="invisible"/> </FrameLayout> <ImageButton android:id="@+id/maximize_window" android:layout_width="34dp" android:layout_height="34dp" android:padding="5dp" android:layout_width="44dp" android:layout_height="40dp" android:paddingHorizontal="10dp" android:paddingVertical="8dp" android:contentDescription="@string/maximize_button_text" android:src="@drawable/decor_desktop_mode_maximize_button_dark" android:scaleType="fitCenter" /> Loading libs/WindowManager/Shell/res/values/dimen.xml +19 −0 Original line number Diff line number Diff line Loading @@ -553,6 +553,25 @@ <!-- The corner radius of a task that was dragged from fullscreen. --> <dimen name="desktop_mode_dragged_task_radius">28dp</dimen> <!-- The corner radius of the app chip, maximize and close button's ripple drawable --> <dimen name="desktop_mode_header_buttons_ripple_radius">16dp</dimen> <!-- The vertical inset to apply to the app chip's ripple drawable --> <dimen name="desktop_mode_header_app_chip_ripple_inset_vertical">4dp</dimen> <!-- The corner radius of the maximize button's ripple drawable --> <dimen name="desktop_mode_header_maximize_ripple_radius">18dp</dimen> <!-- The vertical inset to apply to the maximize button's ripple drawable --> <dimen name="desktop_mode_header_maximize_ripple_inset_vertical">4dp</dimen> <!-- The horizontal inset to apply to the maximize button's ripple drawable --> <dimen name="desktop_mode_header_maximize_ripple_inset_horizontal">6dp</dimen> <!-- The corner radius of the close button's ripple drawable --> <dimen name="desktop_mode_header_close_ripple_radius">18dp</dimen> <!-- The vertical inset to apply to the close button's ripple drawable --> <dimen name="desktop_mode_header_close_ripple_inset_vertical">4dp</dimen> <!-- The horizontal inset to apply to the close button's ripple drawable --> <dimen name="desktop_mode_header_close_ripple_inset_horizontal">6dp</dimen> <!-- The acceptable area ratio of fg icon area/bg icon area, i.e. (72 x 72) / (108 x 108) --> <item type="dimen" format="float" name="splash_icon_enlarge_foreground_threshold">0.44</item> <!-- Scaling factor applied to splash icons without provided background i.e. (192 / 160) --> Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt +6 −31 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.view.View import android.widget.FrameLayout import android.widget.ImageButton import android.widget.ProgressBar import androidx.annotation.ColorInt import androidx.core.animation.doOnEnd import androidx.core.animation.doOnStart import androidx.core.content.ContextCompat Loading Loading @@ -106,30 +105,17 @@ class MaximizeButtonView( fun setAnimationTints( darkMode: Boolean, iconForegroundColor: ColorStateList? = null, baseForegroundColor: Int? = null baseForegroundColor: Int? = null, rippleDrawable: RippleDrawable? = null ) { if (Flags.enableThemedAppHeaders()) { requireNotNull(iconForegroundColor) { "Icon foreground color must be non-null" } requireNotNull(baseForegroundColor) { "Base foreground color must be non-null" } requireNotNull(rippleDrawable) { "Ripple drawable must be non-null" } maximizeWindow.imageTintList = iconForegroundColor maximizeWindow.background = RippleDrawable( ColorStateList( arrayOf( intArrayOf(android.R.attr.state_hovered), intArrayOf(android.R.attr.state_pressed), intArrayOf(), ), intArrayOf( replaceColorAlpha(baseForegroundColor, OPACITY_8), replaceColorAlpha(baseForegroundColor, OPACITY_12), Color.TRANSPARENT ) ), null, null ) maximizeWindow.background = rippleDrawable progressBar.progressTintList = ColorStateList.valueOf(baseForegroundColor) .withAlpha(OPACITY_12) .withAlpha(OPACITY_15) progressBar.progressBackgroundTintList = ColorStateList.valueOf(Color.TRANSPARENT) } else { if (darkMode) { Loading @@ -146,18 +132,7 @@ class MaximizeButtonView( } } @ColorInt private fun replaceColorAlpha(@ColorInt color: Int, alpha: Int): Int { return Color.argb( alpha, Color.red(color), Color.green(color), Color.blue(color) ) } companion object { private const val OPACITY_8 = 20 private const val OPACITY_12 = 31 private const val OPACITY_15 = 38 } } Loading
libs/WindowManager/Shell/res/drawable/circular_progress.xml +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ android:toDegrees="275"> <shape android:shape="ring" android:thickness="3dp" android:thickness="2dp" android:innerRadius="14dp" android:useLevel="true"> </shape> Loading
libs/WindowManager/Shell/res/layout/desktop_mode_app_controls_window_decor.xml +2 −7 Original line number Diff line number Diff line Loading @@ -28,13 +28,11 @@ <LinearLayout android:id="@+id/open_menu_button" android:layout_width="wrap_content" android:layout_height="match_parent" android:tint="?androidprv:attr/materialColorOnSurface" android:background="?android:selectableItemBackground" android:layout_height="40dp" android:orientation="horizontal" android:clickable="true" android:focusable="true" android:paddingStart="12dp"> android:layout_marginStart="12dp"> <ImageView android:id="@+id/application_icon" android:layout_width="@dimen/desktop_mode_caption_icon_radius" Loading Loading @@ -85,8 +83,6 @@ android:layout_height="40dp" android:layout_gravity="end" android:layout_marginHorizontal="8dp" android:paddingHorizontal="5dp" android:paddingVertical="3dp" android:clickable="true" android:focusable="true"/> Loading @@ -97,7 +93,6 @@ android:paddingHorizontal="10dp" android:paddingVertical="8dp" android:layout_marginEnd="8dp" android:background="?android:selectableItemBackgroundBorderless" android:contentDescription="@string/close_button_text" android:src="@drawable/desktop_mode_header_ic_close" android:scaleType="centerCrop" Loading
libs/WindowManager/Shell/res/layout/maximize_menu_button.xml +19 −11 Original line number Diff line number Diff line Loading @@ -16,20 +16,28 @@ <merge xmlns:android="http://schemas.android.com/apk/res/android" xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"> <FrameLayout android:layout_width="44dp" android:layout_height="40dp"> <ProgressBar android:id="@+id/progress_bar" style="?android:attr/progressBarStyleHorizontal" android:progressDrawable="@drawable/circular_progress" android:layout_width="34dp" android:layout_height="34dp" android:layout_width="32dp" android:layout_height="32dp" android:indeterminate="false" android:layout_marginHorizontal="6dp" android:layout_marginVertical="4dp" android:visibility="invisible"/> </FrameLayout> <ImageButton android:id="@+id/maximize_window" android:layout_width="34dp" android:layout_height="34dp" android:padding="5dp" android:layout_width="44dp" android:layout_height="40dp" android:paddingHorizontal="10dp" android:paddingVertical="8dp" android:contentDescription="@string/maximize_button_text" android:src="@drawable/decor_desktop_mode_maximize_button_dark" android:scaleType="fitCenter" /> Loading
libs/WindowManager/Shell/res/values/dimen.xml +19 −0 Original line number Diff line number Diff line Loading @@ -553,6 +553,25 @@ <!-- The corner radius of a task that was dragged from fullscreen. --> <dimen name="desktop_mode_dragged_task_radius">28dp</dimen> <!-- The corner radius of the app chip, maximize and close button's ripple drawable --> <dimen name="desktop_mode_header_buttons_ripple_radius">16dp</dimen> <!-- The vertical inset to apply to the app chip's ripple drawable --> <dimen name="desktop_mode_header_app_chip_ripple_inset_vertical">4dp</dimen> <!-- The corner radius of the maximize button's ripple drawable --> <dimen name="desktop_mode_header_maximize_ripple_radius">18dp</dimen> <!-- The vertical inset to apply to the maximize button's ripple drawable --> <dimen name="desktop_mode_header_maximize_ripple_inset_vertical">4dp</dimen> <!-- The horizontal inset to apply to the maximize button's ripple drawable --> <dimen name="desktop_mode_header_maximize_ripple_inset_horizontal">6dp</dimen> <!-- The corner radius of the close button's ripple drawable --> <dimen name="desktop_mode_header_close_ripple_radius">18dp</dimen> <!-- The vertical inset to apply to the close button's ripple drawable --> <dimen name="desktop_mode_header_close_ripple_inset_vertical">4dp</dimen> <!-- The horizontal inset to apply to the close button's ripple drawable --> <dimen name="desktop_mode_header_close_ripple_inset_horizontal">6dp</dimen> <!-- The acceptable area ratio of fg icon area/bg icon area, i.e. (72 x 72) / (108 x 108) --> <item type="dimen" format="float" name="splash_icon_enlarge_foreground_threshold">0.44</item> <!-- Scaling factor applied to splash icons without provided background i.e. (192 / 160) --> Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt +6 −31 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.view.View import android.widget.FrameLayout import android.widget.ImageButton import android.widget.ProgressBar import androidx.annotation.ColorInt import androidx.core.animation.doOnEnd import androidx.core.animation.doOnStart import androidx.core.content.ContextCompat Loading Loading @@ -106,30 +105,17 @@ class MaximizeButtonView( fun setAnimationTints( darkMode: Boolean, iconForegroundColor: ColorStateList? = null, baseForegroundColor: Int? = null baseForegroundColor: Int? = null, rippleDrawable: RippleDrawable? = null ) { if (Flags.enableThemedAppHeaders()) { requireNotNull(iconForegroundColor) { "Icon foreground color must be non-null" } requireNotNull(baseForegroundColor) { "Base foreground color must be non-null" } requireNotNull(rippleDrawable) { "Ripple drawable must be non-null" } maximizeWindow.imageTintList = iconForegroundColor maximizeWindow.background = RippleDrawable( ColorStateList( arrayOf( intArrayOf(android.R.attr.state_hovered), intArrayOf(android.R.attr.state_pressed), intArrayOf(), ), intArrayOf( replaceColorAlpha(baseForegroundColor, OPACITY_8), replaceColorAlpha(baseForegroundColor, OPACITY_12), Color.TRANSPARENT ) ), null, null ) maximizeWindow.background = rippleDrawable progressBar.progressTintList = ColorStateList.valueOf(baseForegroundColor) .withAlpha(OPACITY_12) .withAlpha(OPACITY_15) progressBar.progressBackgroundTintList = ColorStateList.valueOf(Color.TRANSPARENT) } else { if (darkMode) { Loading @@ -146,18 +132,7 @@ class MaximizeButtonView( } } @ColorInt private fun replaceColorAlpha(@ColorInt color: Int, alpha: Int): Int { return Color.argb( alpha, Color.red(color), Color.green(color), Color.blue(color) ) } companion object { private const val OPACITY_8 = 20 private const val OPACITY_12 = 31 private const val OPACITY_15 = 38 } }