diff options
| author | 2024-12-27 07:02:39 -0800 | |
|---|---|---|
| committer | 2024-12-27 07:02:39 -0800 | |
| commit | 2912c4551e372c0d54fa0a415f66670ad27f8db0 (patch) | |
| tree | b7dc80d1b6b8bf689d7cde1f9e64350d687b4036 | |
| parent | 1bdf61662750b24639a4ab927e788aef20314b4f (diff) | |
| parent | dcc69d1066ef986d2bfd57aedda6f3bf1f9d6fff (diff) | |
Merge "Add ringer horizontal background for landscape" into main
4 files changed, 38 insertions, 1 deletions
diff --git a/packages/SystemUI/res/layout/volume_dialog.xml b/packages/SystemUI/res/layout/volume_dialog.xml index bad5711a1ccc..327075967dba 100644 --- a/packages/SystemUI/res/layout/volume_dialog.xml +++ b/packages/SystemUI/res/layout/volume_dialog.xml @@ -33,15 +33,25 @@ app:layout_constraintStart_toStartOf="@id/volume_dialog_main_slider_container" app:layout_constraintTop_toTopOf="@id/volume_ringer_drawer" /> + <View + android:id="@+id/volume_ringer_horizontal_background" + android:layout_width="0dp" + android:layout_height="0dp" + android:background="@drawable/volume_dialog_background" + app:layout_constraintBottom_toTopOf="@id/volume_dialog_main_slider_container" + app:layout_constraintEnd_toEndOf="@id/volume_ringer_drawer" + app:layout_constraintStart_toStartOf="@id/volume_ringer_drawer" + app:layout_constraintTop_toTopOf="@id/volume_dialog_background" /> + <include android:id="@id/volume_ringer_drawer" layout="@layout/volume_ringer_drawer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/volume_dialog_components_spacing" + android:layout_marginRight="@dimen/volume_dialog_ringer_drawer_diff_right_margin" app:layout_constraintBottom_toTopOf="@id/volume_dialog_main_slider_container" app:layout_constraintEnd_toEndOf="@id/volume_dialog_main_slider_container" - app:layout_constraintStart_toStartOf="@id/volume_dialog_main_slider_container" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="1" /> diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 6994a55cdbcd..11327b648ddc 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -2116,6 +2116,8 @@ <dimen name="volume_dialog_background_square_corner_radius">12dp</dimen> + <dimen name="volume_dialog_ringer_drawer_left_margin">10dp</dimen> + <dimen name="volume_dialog_ringer_drawer_diff_right_margin">6dp</dimen> <dimen name="volume_dialog_ringer_drawer_button_size">@dimen/volume_dialog_button_size</dimen> <dimen name="volume_dialog_ringer_drawer_button_icon_radius">10dp</dimen> <dimen name="volume_dialog_ringer_selected_button_background_radius">20dp</dimen> diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt index 8bb02793ecc5..8733eeb2bd05 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt +++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt @@ -71,6 +71,8 @@ constructor(private val viewModel: VolumeDialogRingerDrawerViewModel) { fun CoroutineScope.bind(view: View) { val volumeDialogBackgroundView = view.requireViewById<View>(R.id.volume_dialog_background) + val ringerHBackgroundView = + view.requireViewById<View>(R.id.volume_ringer_horizontal_background) val drawerContainer = view.requireViewById<MotionLayout>(R.id.volume_ringer_drawer) val unselectedButtonUiModel = RingerButtonUiModel.getUnselectedButton(view.context) val selectedButtonUiModel = RingerButtonUiModel.getSelectedButton(view.context) @@ -84,6 +86,11 @@ constructor(private val viewModel: VolumeDialogRingerDrawerViewModel) { ) var backgroundAnimationProgress: Float by Delegates.observable(0F) { _, _, progress -> + ringerHBackgroundView.applyCorners( + fullRadius = volumeDialogBgFullRadius, + diff = volumeDialogBgFullRadius - volumeDialogBgSmallRadius, + progress, + ) volumeDialogBackgroundView.applyCorners( fullRadius = volumeDialogBgFullRadius, diff = volumeDialogBgFullRadius - volumeDialogBgSmallRadius, @@ -95,6 +102,7 @@ constructor(private val viewModel: VolumeDialogRingerDrawerViewModel) { } drawerContainer.setTransitionListener(ringerDrawerTransitionListener) volumeDialogBackgroundView.background = volumeDialogBackgroundView.background.mutate() + ringerHBackgroundView.background = ringerHBackgroundView.background.mutate() viewModel.ringerViewModel .mapLatest { ringerState -> @@ -184,6 +192,8 @@ constructor(private val viewModel: VolumeDialogRingerDrawerViewModel) { ) volumeDialogBackgroundView.background = volumeDialogBackgroundView.background.mutate() + ringerHBackgroundView.background = + ringerHBackgroundView.background.mutate() } } } @@ -193,6 +203,9 @@ constructor(private val viewModel: VolumeDialogRingerDrawerViewModel) { volumeDialogBackgroundView.setBackgroundResource( R.drawable.volume_dialog_background ) + ringerHBackgroundView.setBackgroundResource( + R.drawable.volume_dialog_background + ) } } } diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/util/RingerDrawerConstraintsUtils.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/util/RingerDrawerConstraintsUtils.kt index 25ba1bd3a1d8..69ffa3890437 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/util/RingerDrawerConstraintsUtils.kt +++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/util/RingerDrawerConstraintsUtils.kt @@ -119,6 +119,15 @@ private fun ConstraintSet.adjustOpenConstraintsForDrawer( ) when (lastOrientation) { ORIENTATION_LANDSCAPE -> { + if (index == 0) { + setMargin( + button.id, + ConstraintSet.LEFT, + motionLayout.context.resources.getDimensionPixelSize( + R.dimen.volume_dialog_ringer_drawer_left_margin + ), + ) + } setButtonPositionLandscapeConstraints(motionLayout, index, button) if (index != motionLayout.childCount - 1) { setMargin( @@ -134,6 +143,9 @@ private fun ConstraintSet.adjustOpenConstraintsForDrawer( setMargin(button.id, ConstraintSet.BOTTOM, 0) } ORIENTATION_PORTRAIT -> { + if (index == 0) { + setMargin(button.id, ConstraintSet.LEFT, 0) + } setButtonPositionPortraitConstraints(motionLayout, index, button) if (index != motionLayout.childCount - 1) { setMargin( |