From e03186af0e9e5a4c23ef0a7b5ab4a98121212d0e Mon Sep 17 00:00:00 2001 From: Alan Huang Date: Wed, 27 Apr 2022 13:25:27 +0000 Subject: [PATCH] [VolumePanel] Move the Settings' volume panel into a SystemUIDialog Move most of the logic of the Settings' volume panel to a SystemUIDialog to make the dialogs consistent with other system dialog. Bug: 202262476 Test: manual build and launch the new dialog. Change-Id: Ic27dcca77072dee2b78827e1eb58c28022b47265 --- core/java/android/util/FeatureFlagUtils.java | 7 + data/etc/com.android.systemui.xml | 1 + packages/SystemUI/AndroidManifest.xml | 11 + .../res/layout/volume_panel_dialog.xml | 101 ++++++ .../layout/volume_panel_slice_slider_row.xml | 31 ++ packages/SystemUI/res/values/dimens.xml | 4 + packages/SystemUI/res/values/strings.xml | 5 + packages/SystemUI/res/values/styles.xml | 24 ++ .../DefaultBroadcastReceiverBinder.java | 10 + .../systemui/volume/VolumeDialogImpl.java | 7 +- .../systemui/volume/VolumePanelDialog.java | 299 ++++++++++++++++++ .../volume/VolumePanelDialogReceiver.kt | 46 +++ .../systemui/volume/VolumePanelFactory.kt | 67 ++++ .../volume/VolumePanelSlicesAdapter.java | 137 ++++++++ .../systemui/volume/dagger/VolumeModule.java | 3 + .../systemui/volume/VolumeDialogImplTest.java | 3 + 16 files changed, 753 insertions(+), 3 deletions(-) create mode 100644 packages/SystemUI/res/layout/volume_panel_dialog.xml create mode 100644 packages/SystemUI/res/layout/volume_panel_slice_slider_row.xml create mode 100644 packages/SystemUI/src/com/android/systemui/volume/VolumePanelDialog.java create mode 100644 packages/SystemUI/src/com/android/systemui/volume/VolumePanelDialogReceiver.kt create mode 100644 packages/SystemUI/src/com/android/systemui/volume/VolumePanelFactory.kt create mode 100644 packages/SystemUI/src/com/android/systemui/volume/VolumePanelSlicesAdapter.java diff --git a/core/java/android/util/FeatureFlagUtils.java b/core/java/android/util/FeatureFlagUtils.java index e0e41d07d9734..976a3e4d4cdea 100644 --- a/core/java/android/util/FeatureFlagUtils.java +++ b/core/java/android/util/FeatureFlagUtils.java @@ -58,6 +58,12 @@ public class FeatureFlagUtils { public static final String SETTINGS_APP_LOCALE_OPT_IN_ENABLED = "settings_app_locale_opt_in_enabled"; + /** + * Launch the Volume panel in SystemUI. + * @hide + */ + public static final String SETTINGS_VOLUME_PANEL_IN_SYSTEMUI = + "settings_volume_panel_in_systemui"; /** @hide */ public static final String SETTINGS_ENABLE_MONITOR_PHANTOM_PROCS = @@ -105,6 +111,7 @@ public class FeatureFlagUtils { DEFAULT_FLAGS.put(SETTINGS_SUPPORT_LARGE_SCREEN, "true"); DEFAULT_FLAGS.put("settings_search_always_expand", "true"); DEFAULT_FLAGS.put(SETTINGS_APP_LOCALE_OPT_IN_ENABLED, "true"); + DEFAULT_FLAGS.put(SETTINGS_VOLUME_PANEL_IN_SYSTEMUI, "false"); DEFAULT_FLAGS.put(SETTINGS_ENABLE_MONITOR_PHANTOM_PROCS, "true"); DEFAULT_FLAGS.put(SETTINGS_APP_ALLOW_DARK_THEME_ACTIVATION_AT_BEDTIME, "true"); DEFAULT_FLAGS.put(SETTINGS_HIDE_SECOND_LAYER_PAGE_NAVIGATE_UP_BUTTON_IN_TWO_PANE, "true"); diff --git a/data/etc/com.android.systemui.xml b/data/etc/com.android.systemui.xml index f030d80a3533f..e0e13f59b7065 100644 --- a/data/etc/com.android.systemui.xml +++ b/data/etc/com.android.systemui.xml @@ -81,5 +81,6 @@ + diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index 78dea891bc123..62def48755948 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -152,6 +152,9 @@ + + + @@ -956,5 +959,13 @@ + + + + + + + diff --git a/packages/SystemUI/res/layout/volume_panel_dialog.xml b/packages/SystemUI/res/layout/volume_panel_dialog.xml new file mode 100644 index 0000000000000..99a1b5cc19dd9 --- /dev/null +++ b/packages/SystemUI/res/layout/volume_panel_dialog.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + +