diff options
| author | 2021-10-12 19:05:16 +0000 | |
|---|---|---|
| committer | 2021-10-12 19:05:16 +0000 | |
| commit | 9fbcffdff6df2ae5288b977660a4995cdebe3ebc (patch) | |
| tree | b5143fe1f73baa3ef3c88b29c6f36f50a03b7c2f | |
| parent | 6db6e348df3a73c80278327a66bdc3cece75070e (diff) | |
| parent | 153655e80d0b30f4a81e1601b8afdccd45c0e1ca (diff) | |
Merge "Add dialog launch animations" into sc-v2-dev
6 files changed, 92 insertions, 84 deletions
diff --git a/packages/SystemUI/res/layout/qs_user_dialog_content.xml b/packages/SystemUI/res/layout/qs_user_dialog_content.xml index 321fe68e2f13..543b7d77243b 100644 --- a/packages/SystemUI/res/layout/qs_user_dialog_content.xml +++ b/packages/SystemUI/res/layout/qs_user_dialog_content.xml @@ -16,74 +16,78 @@ ~ limitations under the License. --> -<androidx.constraintlayout.widget.ConstraintLayout +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:sysui="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="24dp" - android:layout_marginStart="16dp" - android:layout_marginEnd="16dp" - android:background="@drawable/qs_dialog_bg" -> - <TextView - android:id="@+id/title" + android:layout_height="wrap_content"> + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_width="0dp" - android:textAlignment="center" - android:text="@string/qs_user_switch_dialog_title" - android:textAppearance="@style/TextAppearance.QSDialog.Title" - android:layout_marginBottom="32dp" - sysui:layout_constraintTop_toTopOf="parent" - sysui:layout_constraintStart_toStartOf="parent" - sysui:layout_constraintEnd_toEndOf="parent" - sysui:layout_constraintBottom_toTopOf="@id/grid" + android:padding="24dp" + android:layout_marginStart="16dp" + android:layout_marginEnd="16dp" + > + <TextView + android:id="@+id/title" + android:layout_height="wrap_content" + android:layout_width="0dp" + android:textAlignment="center" + android:text="@string/qs_user_switch_dialog_title" + android:textAppearance="@style/TextAppearance.QSDialog.Title" + android:layout_marginBottom="32dp" + sysui:layout_constraintTop_toTopOf="parent" + sysui:layout_constraintStart_toStartOf="parent" + sysui:layout_constraintEnd_toEndOf="parent" + sysui:layout_constraintBottom_toTopOf="@id/grid" + /> + + <com.android.systemui.qs.PseudoGridView + android:id="@+id/grid" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="28dp" + sysui:verticalSpacing="4dp" + sysui:horizontalSpacing="4dp" + sysui:fixedChildWidth="80dp" + sysui:layout_constraintTop_toBottomOf="@id/title" + sysui:layout_constraintStart_toStartOf="parent" + sysui:layout_constraintEnd_toEndOf="parent" + sysui:layout_constraintBottom_toTopOf="@id/barrier" /> - <com.android.systemui.qs.PseudoGridView - android:id="@+id/grid" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginBottom="28dp" - sysui:verticalSpacing="4dp" - sysui:horizontalSpacing="4dp" - sysui:fixedChildWidth="80dp" - sysui:layout_constraintTop_toBottomOf="@id/title" - sysui:layout_constraintStart_toStartOf="parent" - sysui:layout_constraintEnd_toEndOf="parent" - sysui:layout_constraintBottom_toTopOf="@id/barrier" - /> + <androidx.constraintlayout.widget.Barrier + android:id="@+id/barrier" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + sysui:barrierDirection="top" + sysui:constraint_referenced_ids="settings,done" + /> - <androidx.constraintlayout.widget.Barrier - android:id="@+id/barrier" - android:layout_height="wrap_content" - android:layout_width="wrap_content" - sysui:barrierDirection="top" - sysui:constraint_referenced_ids="settings,done" - /> + <Button + android:id="@+id/settings" + android:layout_width="wrap_content" + android:layout_height="48dp" + android:text="@string/quick_settings_more_user_settings" + sysui:layout_constraintTop_toBottomOf="@id/barrier" + sysui:layout_constraintBottom_toBottomOf="parent" + sysui:layout_constraintStart_toStartOf="parent" + sysui:layout_constraintEnd_toStartOf="@id/done" + sysui:layout_constraintHorizontal_chainStyle="spread_inside" + style="@style/Widget.QSDialog.Button.BorderButton" + /> - <Button - android:id="@+id/settings" - android:layout_width="wrap_content" - android:layout_height="48dp" - android:text="@string/quick_settings_more_user_settings" - sysui:layout_constraintTop_toBottomOf="@id/barrier" - sysui:layout_constraintBottom_toBottomOf="parent" - sysui:layout_constraintStart_toStartOf="parent" - sysui:layout_constraintEnd_toStartOf="@id/done" - sysui:layout_constraintHorizontal_chainStyle="spread_inside" - style="@style/Widget.QSDialog.Button.BorderButton" - /> + <Button + android:id="@+id/done" + android:layout_width="wrap_content" + android:layout_height="48dp" + android:text="@string/quick_settings_done" + sysui:layout_constraintTop_toBottomOf="@id/barrier" + sysui:layout_constraintBottom_toBottomOf="parent" + sysui:layout_constraintStart_toEndOf="@id/settings" + sysui:layout_constraintEnd_toEndOf="parent" + style="@style/Widget.QSDialog.Button" + /> - <Button - android:id="@+id/done" - android:layout_width="wrap_content" - android:layout_height="48dp" - android:text="@string/quick_settings_done" - sysui:layout_constraintTop_toBottomOf="@id/barrier" - sysui:layout_constraintBottom_toBottomOf="parent" - sysui:layout_constraintStart_toEndOf="@id/settings" - sysui:layout_constraintEnd_toEndOf="parent" - style="@style/Widget.QSDialog.Button" - /> -</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file + </androidx.constraintlayout.widget.ConstraintLayout> +</FrameLayout>
\ No newline at end of file diff --git a/packages/SystemUI/res/values-night/styles.xml b/packages/SystemUI/res/values-night/styles.xml index ffcc3a821d36..07e28b6d7f20 100644 --- a/packages/SystemUI/res/values-night/styles.xml +++ b/packages/SystemUI/res/values-night/styles.xml @@ -16,7 +16,9 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android"> - <style name="Theme.SystemUI.Dialog" parent="@android:style/Theme.DeviceDefault.Dialog" /> + <style name="Theme.SystemUI.Dialog" parent="@android:style/Theme.DeviceDefault.Dialog"> + <item name="android:buttonCornerRadius">28dp</item> + </style> <style name="Theme.SystemUI.Dialog.Alert" parent="@*android:style/Theme.DeviceDefault.Dialog.Alert" /> diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index 3fff69907cb3..ff299eae8cf2 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -417,7 +417,9 @@ <item name="android:windowIsFloating">true</item> </style> - <style name="Theme.SystemUI.Dialog" parent="@android:style/Theme.DeviceDefault.Light.Dialog" /> + <style name="Theme.SystemUI.Dialog" parent="@android:style/Theme.DeviceDefault.Light.Dialog"> + <item name="android:buttonCornerRadius">28dp</item> + </style> <style name="Theme.SystemUI.Dialog.Alert" parent="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert" /> @@ -933,26 +935,14 @@ <item name="actionDividerHeight">32dp</item> </style> - <style name="Theme.SystemUI.Dialog.QSDialog"> - <item name="android:windowIsTranslucent">true</item> - <item name="android:windowBackground">@android:color/transparent</item> - <item name="android:windowIsFloating">true</item> - <item name="android:backgroundDimEnabled">true</item> - <item name="android:windowCloseOnTouchOutside">true</item> - <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> - <item name="android:dialogCornerRadius">28dp</item> - <item name="android:buttonCornerRadius">28dp</item> - <item name="android:colorBackground">@color/prv_color_surface</item> - </style> - - <style name="TextAppearance.QSDialog.Title" parent="Theme.SystemUI.Dialog.QSDialog"> + <style name="TextAppearance.QSDialog.Title" parent="Theme.SystemUI.Dialog"> <item name="android:textColor">?android:attr/textColorPrimary</item> <item name="android:textSize">24sp</item> <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item> <item name="android:lineHeight">32sp</item> </style> - <style name="Widget.QSDialog.Button" parent = "Theme.SystemUI.Dialog.QSDialog"> + <style name="Widget.QSDialog.Button" parent = "Theme.SystemUI.Dialog"> <item name="android:background">@drawable/qs_dialog_btn_filled</item> <item name="android:textColor">@color/prv_text_color_on_accent</item> <item name="android:textSize">14sp</item> diff --git a/packages/SystemUI/src/com/android/systemui/qs/user/UserDialog.kt b/packages/SystemUI/src/com/android/systemui/qs/user/UserDialog.kt index 2ad06c1c172c..01afa56fc496 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/user/UserDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/user/UserDialog.kt @@ -32,7 +32,7 @@ import com.android.systemui.R */ class UserDialog( context: Context -) : SystemUIDialog(context, R.style.Theme_SystemUI_Dialog_QSDialog) { +) : SystemUIDialog(context) { // create() is no-op after creation private lateinit var _doneButton: View @@ -72,7 +72,7 @@ class UserDialog( attributes.fitInsetsTypes = attributes.fitInsetsTypes or WindowInsets.Type.statusBars() attributes.receiveInsetsIgnoringZOrder = true setLayout( - context.resources.getDimensionPixelSize(R.dimen.qs_panel_width), + context.resources.getDimensionPixelSize(R.dimen.notification_panel_width), ViewGroup.LayoutParams.WRAP_CONTENT ) setGravity(Gravity.CENTER) diff --git a/packages/SystemUI/src/com/android/systemui/qs/user/UserSwitchDialogController.kt b/packages/SystemUI/src/com/android/systemui/qs/user/UserSwitchDialogController.kt index a5e4ba1b5b4b..bae7996517c5 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/user/UserSwitchDialogController.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/user/UserSwitchDialogController.kt @@ -21,6 +21,7 @@ import android.content.Intent import android.provider.Settings import android.view.View import androidx.annotation.VisibleForTesting +import com.android.systemui.animation.DialogLaunchAnimator import com.android.systemui.dagger.SysUISingleton import com.android.systemui.plugins.ActivityStarter import com.android.systemui.plugins.FalsingManager @@ -36,6 +37,7 @@ class UserSwitchDialogController @VisibleForTesting constructor( private val userDetailViewAdapterProvider: Provider<UserDetailView.Adapter>, private val activityStarter: ActivityStarter, private val falsingManager: FalsingManager, + private val dialogLaunchAnimator: DialogLaunchAnimator, private val dialogFactory: (Context) -> UserDialog ) { @@ -43,11 +45,13 @@ class UserSwitchDialogController @VisibleForTesting constructor( constructor( userDetailViewAdapterProvider: Provider<UserDetailView.Adapter>, activityStarter: ActivityStarter, - falsingManager: FalsingManager + falsingManager: FalsingManager, + dialogLaunchAnimator: DialogLaunchAnimator ) : this( userDetailViewAdapterProvider, activityStarter, falsingManager, + dialogLaunchAnimator, { UserDialog(it) } ) @@ -69,7 +73,11 @@ class UserSwitchDialogController @VisibleForTesting constructor( settingsButton.setOnClickListener { if (!falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { - activityStarter.postStartActivityDismissingKeyguard(USER_SETTINGS_INTENT, 0) + dialogLaunchAnimator.disableAllCurrentDialogsExitAnimations() + activityStarter.postStartActivityDismissingKeyguard( + USER_SETTINGS_INTENT, + 0 + ) } dismiss() } @@ -81,7 +89,7 @@ class UserSwitchDialogController @VisibleForTesting constructor( } adapter.linkToViewGroup(grid) - show() + dialogLaunchAnimator.showFromView(this, view) } } }
\ No newline at end of file diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/user/UserSwitchDialogControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/user/UserSwitchDialogControllerTest.kt index a1760a79417f..7e900c843cc3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/user/UserSwitchDialogControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/user/UserSwitchDialogControllerTest.kt @@ -22,6 +22,7 @@ import android.testing.AndroidTestingRunner import android.view.View import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase +import com.android.systemui.animation.DialogLaunchAnimator import com.android.systemui.plugins.ActivityStarter import com.android.systemui.plugins.FalsingManager import com.android.systemui.qs.PseudoGridView @@ -68,6 +69,8 @@ class UserSwitchDialogControllerTest : SysuiTestCase() { private lateinit var launchView: View @Mock private lateinit var gridView: PseudoGridView + @Mock + private lateinit var dialogLaunchAnimator: DialogLaunchAnimator @Captor private lateinit var clickCaptor: ArgumentCaptor<View.OnClickListener> @@ -87,6 +90,7 @@ class UserSwitchDialogControllerTest : SysuiTestCase() { { userDetailViewAdapter }, activityStarter, falsingManager, + dialogLaunchAnimator, { dialog } ) } @@ -94,7 +98,7 @@ class UserSwitchDialogControllerTest : SysuiTestCase() { @Test fun showDialog_callsDialogShow() { controller.showDialog(launchView) - verify(dialog).show() + verify(dialogLaunchAnimator).showFromView(dialog, launchView) } @Test |