diff options
| author | 2021-03-24 15:59:09 +0000 | |
|---|---|---|
| committer | 2021-03-24 15:59:09 +0000 | |
| commit | d1f955b200eae31bc861e84aace2688a113a55e8 (patch) | |
| tree | 3ad92644cf23bbc2e69af249a878f08b31d9c047 | |
| parent | 4e4616af40f0de107583c22d6e3acf87c7afc278 (diff) | |
| parent | 45df6837cdb2a4614c64c772e5b9f84a9626a038 (diff) | |
Merge "Allow QS detail panels to change text of settings button" into sc-dev
4 files changed, 29 insertions, 1 deletions
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/DetailAdapter.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/DetailAdapter.java index beee03b52579..caa9b4f4ec18 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/DetailAdapter.java +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/DetailAdapter.java @@ -16,6 +16,7 @@ package com.android.systemui.plugins.qs; import android.content.Context; import android.content.Intent; +import android.content.res.Resources; import android.view.View; import android.view.ViewGroup; @@ -34,7 +35,22 @@ public interface DetailAdapter { } View createDetailView(Context context, View convertView, ViewGroup parent); + + /** + * @return intent for opening more settings related to this detail panel. If null, the more + * settings button will not be shown + */ Intent getSettingsIntent(); + + /** + * @return resource id of the string to use for opening the settings intent. If + * {@code Resources.ID_NULL}, then use the default string: + * {@code com.android.systemui.R.string.quick_settings_more_settings} + */ + default int getSettingsText() { + return Resources.ID_NULL; + } + void setToggleState(boolean state); int getMetricsCategory(); diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 94bf86ab07da..935f0259fe86 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -889,6 +889,8 @@ <string name="quick_settings_color_space_label">Color correction mode</string> <!-- QuickSettings: Control panel: Label for button that navigates to settings. [CHAR LIMIT=NONE] --> <string name="quick_settings_more_settings">More settings</string> + <!-- QuickSettings: Control panel: Label for button that navigates to user settings. [CHAR LIMIT=NONE] --> + <string name="quick_settings_more_user_settings">User settings</string> <!-- QuickSettings: Control panel: Label for button that dismisses control panel. [CHAR LIMIT=NONE] --> <string name="quick_settings_done">Done</string> <!-- QuickSettings: Control panel: Label for connected device. [CHAR LIMIT=NONE] --> diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java b/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java index 9967936ac1bd..05bc6e2a5e1e 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java @@ -23,6 +23,7 @@ import android.annotation.Nullable; import android.content.Context; import android.content.Intent; import android.content.res.Configuration; +import android.content.res.Resources; import android.graphics.drawable.Animatable; import android.util.AttributeSet; import android.util.SparseArray; @@ -140,7 +141,10 @@ public class QSDetail extends LinearLayout { private void updateDetailText() { mDetailDoneButton.setText(R.string.quick_settings_done); - mDetailSettingsButton.setText(R.string.quick_settings_more_settings); + final int resId = + mDetailAdapter != null ? mDetailAdapter.getSettingsText() : Resources.ID_NULL; + mDetailSettingsButton.setText( + (resId != Resources.ID_NULL) ? resId : R.string.quick_settings_more_settings); } public void updateResources() { @@ -218,6 +222,7 @@ public class QSDetail extends LinearLayout { mQsPanelController.setGridContentVisibility(true); mQsPanelCallback.onScanStateChanged(false); } + updateDetailText(); sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); if (mShouldAnimate) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java index 0da441d1ad35..83558cbf089f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java @@ -822,6 +822,11 @@ public class UserSwitcherController implements Dumpable { } @Override + public int getSettingsText() { + return R.string.quick_settings_more_user_settings; + } + + @Override public Boolean getToggleState() { return null; } |