Clean up notification settings
- Reorganize settings - Fix dividers - Add icons - Fix titles - Fix colors - Fix indentation - Add summaries Fixes: 190079590 Test: manual inspection, robotests Change-Id: Ia03219575d3b0c78f9f9b088aa3cdaa29cfdf412
This commit is contained in:
@@ -15,9 +15,10 @@
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
-->
|
-->
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
|
||||||
android:shape="rectangle">
|
android:shape="rectangle">
|
||||||
<solid
|
<solid
|
||||||
android:color="@color/notification_importance_selection_bg" />
|
android:color="?androidprv:attr/colorSurface" />
|
||||||
<stroke
|
<stroke
|
||||||
android:width="2dp"
|
android:width="2dp"
|
||||||
android:color="?android:attr/colorAccent"/>
|
android:color="?android:attr/colorAccent"/>
|
||||||
|
@@ -16,6 +16,6 @@
|
|||||||
|
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:shape="rectangle">
|
android:shape="rectangle">
|
||||||
<size android:width="32dip" android:height="32dip" />
|
<size android:width="24dp" android:height="24dp" />
|
||||||
<solid android:color="@android:color/transparent" />
|
<solid android:color="@android:color/transparent" />
|
||||||
</shape>
|
</shape>
|
||||||
|
@@ -17,8 +17,8 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
android:viewportWidth="24.0"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24.0"
|
android:viewportHeight="24"
|
||||||
android:tint="?android:attr/colorControlNormal">
|
android:tint="?android:attr/colorControlNormal">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@android:color/white"
|
android:fillColor="@android:color/white"
|
||||||
|
25
res/drawable/ic_notification_dot.xml
Normal file
25
res/drawable/ic_notification_dot.xml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<!--
|
||||||
|
Copyright (C) 2021 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24"
|
||||||
|
android:tint="?android:attr/colorControlNormal">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M22,6.98V16c0,1.1 -0.9,2 -2,2H6l-4,4V4c0,-1.1 0.9,-2 2,-2h10.1C14.04,2.32 14,2.66 14,3s0.04,0.68 0.1,1H4v12h16V7.9C20.74,7.75 21.42,7.42 22,6.98zM16,3c0,1.66 1.34,3 3,3s3,-1.34 3,-3s-1.34,-3 -3,-3S16,1.34 16,3z"/>
|
||||||
|
</vector>
|
25
res/drawable/ic_notification_min.xml
Normal file
25
res/drawable/ic_notification_min.xml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<!--
|
||||||
|
Copyright (C) 2021 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24.0"
|
||||||
|
android:viewportHeight="24.0"
|
||||||
|
android:tint="?android:attr/colorControlNormal">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M6,19h12v2H6v-2z"/>
|
||||||
|
</vector>
|
25
res/drawable/ic_notification_peek.xml
Normal file
25
res/drawable/ic_notification_peek.xml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<!--
|
||||||
|
Copyright (C) 2021 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24"
|
||||||
|
android:tint="?android:attr/colorControlNormal">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M17,1L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2L19,3c0,-1.1 -0.9,-2 -2,-2zM17,21L7,21v-1h10v1zM17,18L7,18L7,6h10v12zM17,4L7,4L7,3h10v1zM8,7h8v2L8,9z"/>
|
||||||
|
</vector>
|
25
res/drawable/ic_notification_vis_override.xml
Normal file
25
res/drawable/ic_notification_vis_override.xml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<!--
|
||||||
|
Copyright (C) 2021 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24.0"
|
||||||
|
android:viewportHeight="24.0"
|
||||||
|
android:tint="?android:attr/colorControlNormal">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M17,1.01L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2L19,3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,21L7,21v-1h10v1zM17,18L7,18L7,6h10v12zM7,4L7,3h10v1L7,4zM14.25,10.5v-0.66c0,-1.13 -1.03,-2.09 -2.25,-2.09s-2.25,0.96 -2.25,2.09v0.66L9,10.5L9,16h6v-5.5h-0.75zM12.75,10.5h-1.5v-0.66c0,-0.29 0.38,-0.59 0.75,-0.59s0.75,0.3 0.75,0.59v0.66z"/>
|
||||||
|
</vector>
|
@@ -17,8 +17,8 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
android:viewportWidth="24.0"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24.0"
|
android:viewportHeight="24"
|
||||||
android:tint="?android:attr/colorControlNormal">
|
android:tint="?android:attr/colorControlNormal">
|
||||||
<path
|
<path
|
||||||
android:fillColor="#FFFFFF"
|
android:fillColor="#FFFFFF"
|
||||||
|
@@ -22,7 +22,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:layout_marginStart="24dp"
|
android:layout_marginStart="24dp"
|
||||||
android:layout_marginEnd="24dp"
|
android:layout_marginEnd="16dp"
|
||||||
android:paddingTop="@dimen/notification_importance_toggle_marginTop"
|
android:paddingTop="@dimen/notification_importance_toggle_marginTop"
|
||||||
android:paddingBottom="@dimen/notification_importance_toggle_marginTop"
|
android:paddingBottom="@dimen/notification_importance_toggle_marginTop"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
@@ -21,7 +21,10 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:padding="@dimen/notification_importance_toggle_marginTop"
|
android:layout_marginStart="24dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:paddingTop="@dimen/notification_importance_toggle_marginTop"
|
||||||
|
android:paddingBottom="@dimen/notification_importance_toggle_marginTop"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<com.android.settings.notification.NotificationButtonRelativeLayout
|
<com.android.settings.notification.NotificationButtonRelativeLayout
|
||||||
|
@@ -8797,11 +8797,14 @@
|
|||||||
<string name="recent_notifications_see_all_title">See all from last 7 days</string>
|
<string name="recent_notifications_see_all_title">See all from last 7 days</string>
|
||||||
|
|
||||||
<!-- notification header for general notification settings [CHAR LIMIT=80]-->
|
<!-- notification header for general notification settings [CHAR LIMIT=80]-->
|
||||||
<string name="general_notification_header">General</string>
|
<string name="general_notification_header">Manage</string>
|
||||||
|
|
||||||
<!-- notification preference for app specific notification settings [CHAR LIMIT=80]-->
|
<!-- notification preference for app specific notification settings [CHAR LIMIT=80]-->
|
||||||
<string name="app_notification_field">App settings</string>
|
<string name="app_notification_field">App settings</string>
|
||||||
|
|
||||||
|
<!-- notification preference summary for app specific notification settings [CHAR LIMIT=120]-->
|
||||||
|
<string name="app_notification_field_summary">Control notifications from individual apps</string>
|
||||||
|
|
||||||
<!-- Configure Notifications: Advanced section header [CHAR LIMIT=30] -->
|
<!-- Configure Notifications: Advanced section header [CHAR LIMIT=30] -->
|
||||||
<string name="advanced_section_header">General</string>
|
<string name="advanced_section_header">General</string>
|
||||||
|
|
||||||
@@ -9251,7 +9254,7 @@
|
|||||||
<!-- Sound & notification > Advanced section: Title for managing notification listeners option. [CHAR LIMIT=60] -->
|
<!-- Sound & notification > Advanced section: Title for managing notification listeners option. [CHAR LIMIT=60] -->
|
||||||
<string name="manage_notification_access_title">Device & app notifications</string>
|
<string name="manage_notification_access_title">Device & app notifications</string>
|
||||||
|
|
||||||
<string name="manage_notification_access_summary">Control which notifications show on your apps and devices</string>
|
<string name="manage_notification_access_summary">Control which apps and devices can read notifications</string>
|
||||||
|
|
||||||
<!-- Notification Access section: Indicates that the work profile admin doesn't allow this
|
<!-- Notification Access section: Indicates that the work profile admin doesn't allow this
|
||||||
notification listener to access work profile notifications [CHAR LIMIT=100] -->
|
notification listener to access work profile notifications [CHAR LIMIT=100] -->
|
||||||
|
@@ -58,7 +58,16 @@
|
|||||||
android:key="channels"
|
android:key="channels"
|
||||||
android:layout="@layout/empty_view"
|
android:layout="@layout/empty_view"
|
||||||
settings:allowDividerAbove="true"
|
settings:allowDividerAbove="true"
|
||||||
settings:allowDividerBelow="false" />
|
settings:allowDividerBelow="true" />
|
||||||
|
|
||||||
|
<!-- Show badge -->
|
||||||
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
|
android:key="badge"
|
||||||
|
android:title="@string/notification_badge_title"
|
||||||
|
settings:useAdditionalSummary="true"
|
||||||
|
android:order="1001"
|
||||||
|
settings:allowDividerAbove="true"
|
||||||
|
settings:restrictedSwitchSummary="@string/enabled_by_admin" />
|
||||||
|
|
||||||
<!-- Importance toggle -->
|
<!-- Importance toggle -->
|
||||||
<com.android.settingslib.RestrictedSwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
@@ -75,26 +84,14 @@
|
|||||||
<com.android.settingslib.RestrictedSwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="bypass_dnd"
|
android:key="bypass_dnd"
|
||||||
android:title="@string/app_notification_override_dnd_title"
|
android:title="@string/app_notification_override_dnd_title"
|
||||||
android:summary="@string/app_notification_override_dnd_summary"
|
android:summary="@string/app_notification_override_dnd_summary"/>
|
||||||
settings:useAdditionalSummary="true"/>
|
|
||||||
|
|
||||||
<PreferenceCategory
|
|
||||||
android:key="app_advanced"
|
|
||||||
android:order="1000">
|
|
||||||
<!-- Show badge -->
|
|
||||||
<com.android.settingslib.RestrictedSwitchPreference
|
|
||||||
android:key="badge"
|
|
||||||
android:title="@string/notification_badge_title"
|
|
||||||
settings:useAdditionalSummary="true"
|
|
||||||
android:order="1001"
|
|
||||||
settings:restrictedSwitchSummary="@string/enabled_by_admin" />
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="app_link"
|
android:key="app_link"
|
||||||
android:order="1003"
|
android:order="1003"
|
||||||
|
android:icon="@drawable/ic_settings_24dp"
|
||||||
android:title="@string/app_settings_link" />
|
android:title="@string/app_settings_link" />
|
||||||
|
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
<com.android.settingslib.widget.FooterPreference
|
<com.android.settingslib.widget.FooterPreference
|
||||||
android:key="desc"
|
android:key="desc"
|
||||||
android:order="5000" />
|
android:order="5000" />
|
||||||
|
@@ -34,26 +34,26 @@
|
|||||||
android:key="allow_sound"
|
android:key="allow_sound"
|
||||||
android:order="3"
|
android:order="3"
|
||||||
android:title="@string/allow_interruption"
|
android:title="@string/allow_interruption"
|
||||||
|
android:icon="@drawable/empty_icon"
|
||||||
android:summary="@string/allow_interruption_summary" />
|
android:summary="@string/allow_interruption_summary" />
|
||||||
|
|
||||||
<!-- Importance -->
|
<!-- Importance -->
|
||||||
<com.android.settings.notification.app.ImportancePreference
|
<com.android.settings.notification.app.ImportancePreference
|
||||||
android:key="importance"
|
android:key="importance"
|
||||||
android:order="4"
|
android:order="4"
|
||||||
android:title="@string/notification_importance_title"
|
android:title="@string/notification_importance_title" />
|
||||||
settings:allowDividerBelow="true"/>
|
|
||||||
|
|
||||||
<com.android.settingslib.RestrictedSwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="min_importance"
|
android:key="min_importance"
|
||||||
android:order="5"
|
android:order="5"
|
||||||
settings:allowDividerAbove="true"
|
android:icon="@drawable/ic_notification_min"
|
||||||
android:title="@string/notification_importance_min_title"
|
android:title="@string/notification_importance_min_title"
|
||||||
android:summary="@string/notification_channel_summary_min"/>
|
android:summary="@string/notification_channel_summary_min"/>
|
||||||
|
|
||||||
<com.android.settingslib.RestrictedSwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="high_importance"
|
android:key="high_importance"
|
||||||
android:order="6"
|
android:order="6"
|
||||||
settings:allowDividerAbove="true"
|
android:icon="@drawable/ic_notification_peek"
|
||||||
android:title="@string/notification_importance_high_title"
|
android:title="@string/notification_importance_high_title"
|
||||||
android:summary="@string/notification_channel_summary_high"/>
|
android:summary="@string/notification_channel_summary_high"/>
|
||||||
|
|
||||||
@@ -62,14 +62,14 @@
|
|||||||
android:order="7"
|
android:order="7"
|
||||||
android:icon="@drawable/ic_promote_conversation"
|
android:icon="@drawable/ic_promote_conversation"
|
||||||
android:title="@string/promote_conversation_title"
|
android:title="@string/promote_conversation_title"
|
||||||
android:summary="@string/promote_conversation_summary"
|
android:summary="@string/promote_conversation_summary" />
|
||||||
settings:allowDividerAbove="true"/>
|
|
||||||
|
|
||||||
<!-- Default ringtone -->
|
<!-- Default ringtone -->
|
||||||
<com.android.settings.notification.app.NotificationSoundPreference
|
<com.android.settings.notification.app.NotificationSoundPreference
|
||||||
android:key="ringtone"
|
android:key="ringtone"
|
||||||
android:title="@string/notification_channel_sound_title"
|
android:title="@string/notification_channel_sound_title"
|
||||||
android:dialogTitle="@string/notification_channel_sound_title"
|
android:dialogTitle="@string/notification_channel_sound_title"
|
||||||
|
android:icon="@drawable/ic_notifications"
|
||||||
android:order="11"
|
android:order="11"
|
||||||
android:showSilent="true"
|
android:showSilent="true"
|
||||||
android:showDefault="true"/>
|
android:showDefault="true"/>
|
||||||
@@ -78,48 +78,46 @@
|
|||||||
<com.android.settingslib.RestrictedSwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="vibrate"
|
android:key="vibrate"
|
||||||
android:order="12"
|
android:order="12"
|
||||||
android:title="@string/notification_vibrate_title"
|
android:icon="@drawable/ic_volume_ringer_vibrate"
|
||||||
settings:useAdditionalSummary="true" />
|
android:title="@string/notification_vibrate_title" />
|
||||||
|
|
||||||
<!-- Visibility Override -->
|
<!-- Visibility Override -->
|
||||||
<com.android.settings.RestrictedListPreference
|
<com.android.settings.RestrictedListPreference
|
||||||
android:key="visibility_override"
|
android:key="visibility_override"
|
||||||
android:order="13"
|
android:order="13"
|
||||||
|
android:icon="@drawable/ic_notification_vis_override"
|
||||||
android:title="@string/app_notification_visibility_override_title"/>
|
android:title="@string/app_notification_visibility_override_title"/>
|
||||||
|
|
||||||
<!-- Lights -->
|
<!-- Lights -->
|
||||||
<com.android.settingslib.RestrictedSwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="lights"
|
android:key="lights"
|
||||||
android:order="14"
|
android:order="14"
|
||||||
android:title="@string/notification_show_lights_title"
|
android:icon="@drawable/ic_lightbulb_outline_24"
|
||||||
settings:useAdditionalSummary="true"/>
|
android:title="@string/notification_show_lights_title" />
|
||||||
|
|
||||||
<!-- Show badge -->
|
<!-- Show badge -->
|
||||||
<com.android.settingslib.RestrictedSwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="badge"
|
android:key="badge"
|
||||||
android:order="15"
|
android:order="15"
|
||||||
android:title="@string/notification_channel_badge_title"
|
android:title="@string/notification_channel_badge_title"
|
||||||
settings:useAdditionalSummary="true"
|
android:icon="@drawable/ic_notification_dot"
|
||||||
settings:restrictedSwitchSummary="@string/enabled_by_admin"/>
|
settings:restrictedSwitchSummary="@string/enabled_by_admin"/>
|
||||||
|
|
||||||
<!-- Bypass DND -->
|
<!-- Bypass DND -->
|
||||||
<com.android.settingslib.RestrictedSwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="bypass_dnd"
|
android:key="bypass_dnd"
|
||||||
android:order="17"
|
android:order="17"
|
||||||
|
android:icon="@drawable/ic_do_not_disturb_on_24dp"
|
||||||
android:title="@string/app_notification_override_dnd_title"
|
android:title="@string/app_notification_override_dnd_title"
|
||||||
android:summary="@string/app_notification_override_dnd_summary"
|
android:summary="@string/app_notification_override_dnd_summary" />
|
||||||
settings:useAdditionalSummary="true"/>
|
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="app_link"
|
android:key="app_link"
|
||||||
android:order="18"
|
android:order="18"
|
||||||
android:title="@string/app_settings_link"
|
android:title="@string/app_settings_link"
|
||||||
|
android:icon="@drawable/ic_settings_24dp"
|
||||||
settings:allowDividerAbove="true"/>
|
settings:allowDividerAbove="true"/>
|
||||||
|
|
||||||
<com.android.settingslib.widget.FooterPreference
|
|
||||||
android:key="desc"
|
|
||||||
android:order="100"/>
|
|
||||||
|
|
||||||
<com.android.settingslib.widget.FooterPreference
|
<com.android.settingslib.widget.FooterPreference
|
||||||
android:key="block_desc"
|
android:key="block_desc"
|
||||||
android:order="110"
|
android:order="110"
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
android:key="all_notifications"
|
android:key="all_notifications"
|
||||||
android:order="10"
|
android:order="10"
|
||||||
android:title="@string/app_notification_field"
|
android:title="@string/app_notification_field"
|
||||||
|
android:summary="@string/app_notification_field_summary"
|
||||||
android:fragment="com.android.settings.applications.manageapplications.ManageApplications"
|
android:fragment="com.android.settings.applications.manageapplications.ManageApplications"
|
||||||
settings:searchable="false">
|
settings:searchable="false">
|
||||||
<extra
|
<extra
|
||||||
@@ -42,13 +43,6 @@
|
|||||||
android:targetPackage="com.android.settings"
|
android:targetPackage="com.android.settings"
|
||||||
android:targetClass="com.android.settings.notification.history.NotificationHistoryActivity" />
|
android:targetClass="com.android.settings.notification.history.NotificationHistoryActivity" />
|
||||||
</Preference>
|
</Preference>
|
||||||
<Preference
|
|
||||||
android:key="notification_access"
|
|
||||||
android:order="12"
|
|
||||||
android:title="@string/manage_notification_access_title"
|
|
||||||
android:summary="@string/manage_notification_access_summary"
|
|
||||||
android:fragment="com.android.settings.notification.NotificationAccessSettings"
|
|
||||||
settings:controller="com.android.settings.applications.specialaccess.notificationaccess.NotificationAccessController" />
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
@@ -75,6 +69,13 @@
|
|||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:key="configure_notifications_lock"
|
android:key="configure_notifications_lock"
|
||||||
android:title="@string/lock_screen_notifications_title">
|
android:title="@string/lock_screen_notifications_title">
|
||||||
|
<Preference
|
||||||
|
android:key="notification_access"
|
||||||
|
android:order="12"
|
||||||
|
android:title="@string/manage_notification_access_title"
|
||||||
|
android:summary="@string/manage_notification_access_summary"
|
||||||
|
android:fragment="com.android.settings.notification.NotificationAccessSettings"
|
||||||
|
settings:controller="com.android.settings.applications.specialaccess.notificationaccess.NotificationAccessController" />
|
||||||
<!-- When device is locked -->
|
<!-- When device is locked -->
|
||||||
<com.android.settings.RestrictedListPreference
|
<com.android.settings.RestrictedListPreference
|
||||||
android:key="lock_screen_notifications"
|
android:key="lock_screen_notifications"
|
||||||
|
@@ -32,10 +32,6 @@
|
|||||||
settings:allowDividerAbove="true"
|
settings:allowDividerAbove="true"
|
||||||
settings:allowDividerBelow="true"/>
|
settings:allowDividerBelow="true"/>
|
||||||
|
|
||||||
<PreferenceCategory
|
|
||||||
android:key="bubbles"
|
|
||||||
android:title="@string/notification_bubbles_title">
|
|
||||||
|
|
||||||
<!-- bubbles -->
|
<!-- bubbles -->
|
||||||
<com.android.settingslib.RestrictedSwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="bubble_pref"
|
android:key="bubble_pref"
|
||||||
@@ -44,29 +40,15 @@
|
|||||||
android:icon="@drawable/ic_create_bubble"
|
android:icon="@drawable/ic_create_bubble"
|
||||||
settings:restrictedSwitchSummary="@string/enabled_by_admin" />
|
settings:restrictedSwitchSummary="@string/enabled_by_admin" />
|
||||||
|
|
||||||
<Preference
|
|
||||||
android:key="notification_bubbles"
|
|
||||||
android:title="@string/bubbles_conversation_app_link"
|
|
||||||
/>
|
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
<!-- demote -->
|
|
||||||
<Preference
|
|
||||||
android:key="demote"
|
|
||||||
android:icon="@drawable/ic_demote_conversation"
|
|
||||||
android:title="@string/demote_conversation_title"
|
|
||||||
android:summary="@string/demote_conversation_summary"
|
|
||||||
settings:allowDividerAbove="true"/>
|
|
||||||
|
|
||||||
<com.android.settingslib.widget.FooterPreference
|
<com.android.settingslib.widget.FooterPreference
|
||||||
android:key="block_desc"
|
android:key="block_desc"
|
||||||
settings:allowDividerAbove="false"/>
|
settings:allowDividerAbove="false"/>
|
||||||
|
|
||||||
|
|
||||||
<!-- peeking -->
|
<!-- peeking -->
|
||||||
<com.android.settingslib.RestrictedSwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="high_importance"
|
android:key="high_importance"
|
||||||
android:title="@string/notification_importance_high_title"
|
android:title="@string/notification_importance_high_title"
|
||||||
|
android:icon="@drawable/ic_notification_peek"
|
||||||
android:summary="@string/notification_channel_summary_high"/>
|
android:summary="@string/notification_channel_summary_high"/>
|
||||||
|
|
||||||
<!-- ringtone -->
|
<!-- ringtone -->
|
||||||
@@ -81,27 +63,34 @@
|
|||||||
<!-- Visibility Override -->
|
<!-- Visibility Override -->
|
||||||
<com.android.settings.RestrictedListPreference
|
<com.android.settings.RestrictedListPreference
|
||||||
android:key="visibility_override"
|
android:key="visibility_override"
|
||||||
android:icon="@drawable/ic_lock_closed"
|
android:icon="@drawable/ic_notification_vis_override"
|
||||||
android:title="@string/app_notification_visibility_override_title"/>
|
android:title="@string/app_notification_visibility_override_title"/>
|
||||||
|
|
||||||
<!-- Show badge -->
|
<!-- Show badge -->
|
||||||
<com.android.settingslib.RestrictedSwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="badge"
|
android:key="badge"
|
||||||
android:title="@string/notification_channel_badge_title"
|
android:title="@string/notification_channel_badge_title"
|
||||||
settings:useAdditionalSummary="true"
|
android:icon="@drawable/ic_notification_dot"
|
||||||
settings:restrictedSwitchSummary="@string/enabled_by_admin"/>
|
settings:restrictedSwitchSummary="@string/enabled_by_admin"/>
|
||||||
|
|
||||||
<!-- Lights -->
|
<!-- Lights -->
|
||||||
<com.android.settingslib.RestrictedSwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="lights"
|
android:key="lights"
|
||||||
android:title="@string/notification_show_lights_title"
|
android:icon="@drawable/ic_lightbulb_outline_24"
|
||||||
settings:useAdditionalSummary="true"/>
|
android:title="@string/notification_show_lights_title"/>
|
||||||
|
|
||||||
<!-- Vibration -->
|
<!-- Vibration -->
|
||||||
<com.android.settingslib.RestrictedSwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="vibrate"
|
android:key="vibrate"
|
||||||
android:icon="@drawable/ic_volume_ringer_vibrate"
|
android:icon="@drawable/ic_volume_ringer_vibrate"
|
||||||
android:title="@string/notification_vibrate_title"
|
android:title="@string/notification_vibrate_title" />
|
||||||
settings:useAdditionalSummary="true" />
|
|
||||||
|
<!-- demote -->
|
||||||
|
<Preference
|
||||||
|
android:key="demote"
|
||||||
|
android:icon="@drawable/ic_demote_conversation"
|
||||||
|
android:title="@string/demote_conversation_title"
|
||||||
|
android:summary="@string/demote_conversation_summary"
|
||||||
|
settings:allowDividerAbove="true"/>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -25,9 +25,11 @@ import android.util.Log;
|
|||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceGroup;
|
import androidx.preference.PreferenceGroup;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.android.internal.widget.LockPatternUtils;
|
import com.android.internal.widget.LockPatternUtils;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.Utils;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -38,35 +40,11 @@ public class AppNotificationSettings extends NotificationSettings {
|
|||||||
private static final String TAG = "AppNotificationSettings";
|
private static final String TAG = "AppNotificationSettings";
|
||||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||||
|
|
||||||
private static String KEY_ADVANCED_CATEGORY = "app_advanced";
|
|
||||||
private static String KEY_BADGE = "badge";
|
|
||||||
private static String KEY_APP_LINK = "app_link";
|
|
||||||
private static String[] LEGACY_NON_ADVANCED_KEYS = {KEY_BADGE, KEY_APP_LINK};
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return SettingsEnums.NOTIFICATION_APP_NOTIFICATION;
|
return SettingsEnums.NOTIFICATION_APP_NOTIFICATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
final PreferenceScreen screen = getPreferenceScreen();
|
|
||||||
if (mShowLegacyChannelConfig && screen != null) {
|
|
||||||
// if showing legacy settings, pull advanced settings out of the advanced category
|
|
||||||
PreferenceGroup advanced = (PreferenceGroup) findPreference(KEY_ADVANCED_CATEGORY);
|
|
||||||
removePreference(KEY_ADVANCED_CATEGORY);
|
|
||||||
if (advanced != null) {
|
|
||||||
for (String key : LEGACY_NON_ADVANCED_KEYS) {
|
|
||||||
Preference pref = advanced.findPreference(key);
|
|
||||||
advanced.removePreference(pref);
|
|
||||||
if (pref != null) {
|
|
||||||
screen.addPreference(pref);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
@@ -78,6 +56,8 @@ public class AppNotificationSettings extends NotificationSettings {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getActivity().setTitle(mAppRow.label);
|
||||||
|
|
||||||
for (NotificationPreferenceController controller : mControllers) {
|
for (NotificationPreferenceController controller : mControllers) {
|
||||||
controller.onResume(mAppRow, mChannel, mChannelGroup, null, null, mSuspendedAppsAdmin,
|
controller.onResume(mAppRow, mChannel, mChannelGroup, null, null, mSuspendedAppsAdmin,
|
||||||
null);
|
null);
|
||||||
|
@@ -322,7 +322,7 @@ public class ChannelListPreferenceController extends NotificationPreferenceContr
|
|||||||
if (channel.getImportance() > IMPORTANCE_LOW) {
|
if (channel.getImportance() > IMPORTANCE_LOW) {
|
||||||
channelPref.setIcon(getAlertingIcon());
|
channelPref.setIcon(getAlertingIcon());
|
||||||
} else {
|
} else {
|
||||||
channelPref.setIcon(null);
|
channelPref.setIcon(R.drawable.empty_icon);
|
||||||
}
|
}
|
||||||
channelPref.setIconSize(PrimarySwitchPreference.ICON_SIZE_SMALL);
|
channelPref.setIconSize(PrimarySwitchPreference.ICON_SIZE_SMALL);
|
||||||
channelPref.setTitle(channel.getName());
|
channelPref.setTitle(channel.getName());
|
||||||
@@ -350,7 +350,7 @@ public class ChannelListPreferenceController extends NotificationPreferenceContr
|
|||||||
channel.setImportance(importance);
|
channel.setImportance(importance);
|
||||||
channel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
|
channel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
|
||||||
PrimarySwitchPreference channelPref1 = (PrimarySwitchPreference) preference;
|
PrimarySwitchPreference channelPref1 = (PrimarySwitchPreference) preference;
|
||||||
channelPref1.setIcon(null);
|
channelPref1.setIcon(R.drawable.empty_icon);
|
||||||
if (channel.getImportance() > IMPORTANCE_LOW) {
|
if (channel.getImportance() > IMPORTANCE_LOW) {
|
||||||
channelPref1.setIcon(getAlertingIcon());
|
channelPref1.setIcon(getAlertingIcon());
|
||||||
}
|
}
|
||||||
|
@@ -66,8 +66,9 @@ public class ChannelNotificationSettings extends NotificationSettings {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mChannel != null && !TextUtils.isEmpty(mChannel.getConversationId())
|
getActivity().setTitle(mChannel.getName());
|
||||||
&& !mChannel.isDemoted()) {
|
|
||||||
|
if (!TextUtils.isEmpty(mChannel.getConversationId()) && !mChannel.isDemoted()) {
|
||||||
Intent intent = new SubSettingLauncher(mContext)
|
Intent intent = new SubSettingLauncher(mContext)
|
||||||
.setDestination(ConversationNotificationSettings.class.getName())
|
.setDestination(ConversationNotificationSettings.class.getName())
|
||||||
.setArguments(getArguments())
|
.setArguments(getArguments())
|
||||||
@@ -128,7 +129,6 @@ public class ChannelNotificationSettings extends NotificationSettings {
|
|||||||
mDependentFieldListener, mBackend));
|
mDependentFieldListener, mBackend));
|
||||||
mControllers.add(new VibrationPreferenceController(context, mBackend));
|
mControllers.add(new VibrationPreferenceController(context, mBackend));
|
||||||
mControllers.add(new AppLinkPreferenceController(context));
|
mControllers.add(new AppLinkPreferenceController(context));
|
||||||
mControllers.add(new DescriptionPreferenceController(context));
|
|
||||||
mControllers.add(new VisibilityPreferenceController(context, new LockPatternUtils(context),
|
mControllers.add(new VisibilityPreferenceController(context, new LockPatternUtils(context),
|
||||||
mBackend));
|
mBackend));
|
||||||
mControllers.add(new LightsPreferenceController(context, mBackend));
|
mControllers.add(new LightsPreferenceController(context, mBackend));
|
||||||
|
@@ -41,11 +41,13 @@ public class ConversationNotificationSettings extends NotificationSettings {
|
|||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null || mChannel == null) {
|
if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null || mChannel == null
|
||||||
|
|| mConversationInfo == null) {
|
||||||
Log.w(TAG, "Missing package or uid or packageinfo or channel");
|
Log.w(TAG, "Missing package or uid or packageinfo or channel");
|
||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
getActivity().setTitle(mConversationInfo.getLabel());
|
||||||
|
|
||||||
for (NotificationPreferenceController controller : mControllers) {
|
for (NotificationPreferenceController controller : mControllers) {
|
||||||
controller.onResume(mAppRow, mChannel, mChannelGroup, mConversationDrawable,
|
controller.onResume(mAppRow, mChannel, mChannelGroup, mConversationDrawable,
|
||||||
|
@@ -84,6 +84,7 @@ public class HeaderPreferenceController extends NotificationPreferenceController
|
|||||||
pref = mHeaderController.setIcon(mAppRow.icon)
|
pref = mHeaderController.setIcon(mAppRow.icon)
|
||||||
.setLabel(getLabel())
|
.setLabel(getLabel())
|
||||||
.setSummary(getSummary())
|
.setSummary(getSummary())
|
||||||
|
.setSecondSummary(getSecondSummary())
|
||||||
.setPackageName(mAppRow.pkg)
|
.setPackageName(mAppRow.pkg)
|
||||||
.setUid(mAppRow.uid)
|
.setUid(mAppRow.uid)
|
||||||
.setButtonActions(EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
|
.setButtonActions(EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
|
||||||
@@ -96,25 +97,11 @@ public class HeaderPreferenceController extends NotificationPreferenceController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public CharSequence getLabel() {
|
||||||
public CharSequence getSummary() {
|
|
||||||
if (mChannel != null && !isDefaultChannel()) {
|
if (mChannel != null && !isDefaultChannel()) {
|
||||||
if (mChannelGroup != null
|
return mChannel.getName();
|
||||||
&& !TextUtils.isEmpty(mChannelGroup.getName())) {
|
|
||||||
final SpannableStringBuilder summary = new SpannableStringBuilder();
|
|
||||||
BidiFormatter bidi = BidiFormatter.getInstance();
|
|
||||||
summary.append(bidi.unicodeWrap(mAppRow.label.toString()));
|
|
||||||
summary.append(bidi.unicodeWrap(mContext.getText(
|
|
||||||
R.string.notification_header_divider_symbol_with_spaces)));
|
|
||||||
summary.append(bidi.unicodeWrap(mChannelGroup.getName().toString()));
|
|
||||||
return summary.toString();
|
|
||||||
} else {
|
} else {
|
||||||
return mAppRow.label.toString();
|
return mAppRow.label;
|
||||||
}
|
|
||||||
} else if (mChannelGroup != null) {
|
|
||||||
return mAppRow.label.toString();
|
|
||||||
} else {
|
|
||||||
return "";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,11 +110,26 @@ public class HeaderPreferenceController extends NotificationPreferenceController
|
|||||||
mStarted = true;
|
mStarted = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@Override
|
||||||
CharSequence getLabel() {
|
public CharSequence getSummary() {
|
||||||
return (mChannel != null && !isDefaultChannel()) ? mChannel.getName()
|
if (mChannel != null) {
|
||||||
: mChannelGroup != null
|
if (mChannelGroup != null
|
||||||
? mChannelGroup.getName()
|
&& !TextUtils.isEmpty(mChannelGroup.getName())) {
|
||||||
: mAppRow.label;
|
final SpannableStringBuilder summary = new SpannableStringBuilder();
|
||||||
|
BidiFormatter bidi = BidiFormatter.getInstance();
|
||||||
|
summary.append(bidi.unicodeWrap(mAppRow.label));
|
||||||
|
summary.append(bidi.unicodeWrap(mContext.getText(
|
||||||
|
R.string.notification_header_divider_symbol_with_spaces)));
|
||||||
|
summary.append(bidi.unicodeWrap(mChannelGroup.getName().toString()));
|
||||||
|
return summary.toString();
|
||||||
|
} else {
|
||||||
|
return mAppRow.label.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public CharSequence getSecondSummary() {
|
||||||
|
return mChannel == null ? null : mChannel.getDescription();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -118,7 +118,7 @@ public class HeaderPreferenceControllerTest {
|
|||||||
|
|
||||||
NotificationChannelGroup group = new NotificationChannelGroup("id", "name");
|
NotificationChannelGroup group = new NotificationChannelGroup("id", "name");
|
||||||
mController.onResume(appRow, null, group, null, null, null, null);
|
mController.onResume(appRow, null, group, null, null, null, null);
|
||||||
assertEquals(group.getName(), mController.getLabel());
|
assertEquals(appRow.label, mController.getLabel());
|
||||||
|
|
||||||
NotificationChannel channel = new NotificationChannel("cid", "cname", IMPORTANCE_NONE);
|
NotificationChannel channel = new NotificationChannel("cid", "cname", IMPORTANCE_NONE);
|
||||||
mController.onResume(appRow, channel, group, null, null, null, null);
|
mController.onResume(appRow, channel, group, null, null, null, null);
|
||||||
@@ -155,4 +155,24 @@ public class HeaderPreferenceControllerTest {
|
|||||||
mController.onResume(appRow, defaultChannel, null, null, null, null, null);
|
mController.onResume(appRow, defaultChannel, null, null, null, null, null);
|
||||||
assertEquals("", mController.getSummary());
|
assertEquals("", mController.getSummary());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetSecondSummary() {
|
||||||
|
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
|
||||||
|
appRow.label = "bananas";
|
||||||
|
mController.onResume(appRow, null, null, null, null, null, null);
|
||||||
|
assertEquals("", mController.getSecondSummary());
|
||||||
|
|
||||||
|
NotificationChannelGroup group = new NotificationChannelGroup("id", "name");
|
||||||
|
mController.onResume(appRow, null, group, null, null, null, null);
|
||||||
|
assertEquals("", mController.getSecondSummary());
|
||||||
|
|
||||||
|
NotificationChannel channel = new NotificationChannel("cid", "cname", IMPORTANCE_NONE);
|
||||||
|
mController.onResume(appRow, channel, group, null, null, null, null);
|
||||||
|
assertEquals("", mController.getSecondSummary());
|
||||||
|
|
||||||
|
channel.setDescription("description");
|
||||||
|
mController.onResume(appRow, channel, group, null, null, null, null);
|
||||||
|
assertEquals("description", mController.getSecondSummary());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user