Settings: New application-level notification settings.
- Convert the old application-level dialog to an activity. - Move the settings icon to the new activity (out of the list). - Add a custom application header, similar to the switch bar style. - Use the ubiquitous vector gear for the settings icon. - Migrate old checkboxes to switch prefs, add new summaries. - Remove obsolete artifacts. Bug:16396715 Change-Id: I857e3cf448b79f44fe1c242e6020f5214434c00c
This commit is contained in:
Binary file not shown.
Before Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
Before Width: | Height: | Size: 969 B |
Binary file not shown.
Before Width: | Height: | Size: 2.0 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.9 KiB |
23
res/drawable/ic_settings_32dp.xml
Normal file
23
res/drawable/ic_settings_32dp.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<!-- Copyright (C) 2014 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="32dp"
|
||||
android:height="32dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:pathData="M19.4,13.0c0.0,-0.3 0.1,-0.6 0.1,-1.0s0.0,-0.7 -0.1,-1.0l2.1,-1.7c0.2,-0.2 0.2,-0.4 0.1,-0.6l-2.0,-3.5C19.5,5.1 19.3,5.0 19.0,5.1l-2.5,1.0c-0.5,-0.4 -1.1,-0.7 -1.7,-1.0l-0.4,-2.6C14.5,2.2 14.2,2.0 14.0,2.0l-4.0,0.0C9.8,2.0 9.5,2.2 9.5,2.4L9.1,5.1C8.5,5.3 8.0,5.7 7.4,6.1L5.0,5.1C4.7,5.0 4.5,5.1 4.3,5.3l-2.0,3.5C2.2,8.9 2.3,9.2 2.5,9.4L4.6,11.0c0.0,0.3 -0.1,0.6 -0.1,1.0s0.0,0.7 0.1,1.0l-2.1,1.7c-0.2,0.2 -0.2,0.4 -0.1,0.6l2.0,3.5C4.5,18.9 4.7,19.0 5.0,18.9l2.5,-1.0c0.5,0.4 1.1,0.7 1.7,1.0l0.4,2.6c0.0,0.2 0.2,0.4 0.5,0.4l4.0,0.0c0.2,0.0 0.5,-0.2 0.5,-0.4l0.4,-2.6c0.6,-0.3 1.2,-0.6 1.7,-1.0l2.5,1.0c0.2,0.1 0.5,0.0 0.6,-0.2l2.0,-3.5c0.1,-0.2 0.1,-0.5 -0.1,-0.6L19.4,13.0zM12.0,15.5c-1.9,0.0 -3.5,-1.6 -3.5,-3.5s1.6,-3.5 3.5,-3.5s3.5,1.6 3.5,3.5S13.9,15.5 12.0,15.5z"
|
||||
android:fillColor="#ffffffff" />
|
||||
</vector>
|
63
res/layout/app_notification_header.xml
Normal file
63
res/layout/app_notification_header.xml
Normal file
@@ -0,0 +1,63 @@
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?android:attr/actionBarSize"
|
||||
android:background="@drawable/switchbar_background"
|
||||
android:gravity="center_vertical"
|
||||
android:theme="?attr/switchBarTheme" >
|
||||
|
||||
<ImageView android:id="@+id/app_icon"
|
||||
android:layout_width="@dimen/switchbar_subsettings_margin_start"
|
||||
android:layout_height="40dp"
|
||||
android:gravity="end"
|
||||
android:layout_centerVertical="true" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/app_name"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_toStartOf="@+id/app_settings"
|
||||
android:layout_marginStart="@dimen/switchbar_subsettings_margin_start"
|
||||
android:layout_alignWithParentIfMissing="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:textAppearance="@style/TextAppearance.Switch"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textAlignment="viewStart" />
|
||||
|
||||
<ImageView
|
||||
android:id="@id/app_settings"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginEnd="@dimen/switchbar_subsettings_margin_end"
|
||||
android:layout_centerVertical="true"
|
||||
android:minHeight="0dp"
|
||||
android:minWidth="0dp"
|
||||
android:contentDescription="@string/notification_app_settings_button"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_settings_32dp"
|
||||
style="?android:attr/borderlessButtonStyle" />
|
||||
|
||||
<View
|
||||
android:id="@+id/row_divider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?android:attr/listDivider" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
@@ -13,70 +13,44 @@
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?android:attr/listChoiceBackgroundIndicator"
|
||||
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
||||
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@android:id/button1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignWithParentIfMissing="true"
|
||||
android:layout_toStartOf="@+id/settings_divider"
|
||||
android:background="?android:attr/listChoiceBackgroundIndicator">
|
||||
|
||||
<ImageView
|
||||
android:id="@android:id/icon"
|
||||
android:layout_width="@dimen/notification_app_icon_size"
|
||||
android:layout_height="@dimen/notification_app_icon_size"
|
||||
android:layout_centerVertical="true"
|
||||
android:contentDescription="@null"
|
||||
android:padding="8dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@android:id/title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_toEndOf="@android:id/icon"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textAlignment="viewStart"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
<TextView
|
||||
android:id="@android:id/text1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/notification_app_icon_size"
|
||||
android:layout_toEndOf="@android:id/icon"
|
||||
android:gravity="bottom"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textAlignment="viewStart"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall" />
|
||||
</RelativeLayout>
|
||||
|
||||
<View
|
||||
android:id="@+id/settings_divider"
|
||||
android:layout_width="1dp"
|
||||
android:layout_height="@dimen/notification_app_settings_divider_height"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_toStartOf="@android:id/button2"
|
||||
android:background="?android:attr/listDivider" />
|
||||
|
||||
<ImageView
|
||||
android:id="@android:id/button2"
|
||||
android:id="@android:id/icon"
|
||||
android:layout_width="@dimen/notification_app_icon_size"
|
||||
android:layout_height="@dimen/notification_app_icon_size"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:background="?android:attr/listChoiceBackgroundIndicator"
|
||||
android:contentDescription="@string/notification_app_settings_button"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_settings_generic" />
|
||||
android:contentDescription="@null"
|
||||
android:padding="8dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@android:id/title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_toEndOf="@android:id/icon"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textAlignment="viewStart"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
<TextView
|
||||
android:id="@android:id/text1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/notification_app_icon_size"
|
||||
android:layout_toEndOf="@android:id/icon"
|
||||
android:gravity="bottom"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textAlignment="viewStart"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall" />
|
||||
|
||||
<View
|
||||
android:id="@+id/row_divider"
|
||||
|
@@ -1,65 +0,0 @@
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" >
|
||||
|
||||
<ImageView
|
||||
android:id="@android:id/icon"
|
||||
android:padding="8dp"
|
||||
android:layout_width="@dimen/notification_app_icon_size"
|
||||
android:layout_height="@dimen/notification_app_icon_size"
|
||||
android:contentDescription="@null" />
|
||||
|
||||
<TextView
|
||||
android:id="@android:id/title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/notification_app_icon_size"
|
||||
android:layout_toEndOf="@android:id/icon"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_vertical"
|
||||
android:singleLine="true"
|
||||
android:textAlignment="viewStart"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@android:id/button1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/notification_app_icon_size"
|
||||
android:layout_below="@android:id/icon"
|
||||
android:layout_marginStart="@dimen/content_margin_left"
|
||||
android:text="@string/app_notifications_dialog_show"
|
||||
android:textAppearance="?android:attr/textAppearanceListItem" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@android:id/button2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/notification_app_icon_size"
|
||||
android:layout_below="@android:id/button1"
|
||||
android:layout_marginStart="@dimen/content_margin_left"
|
||||
android:text="@string/app_notifications_dialog_priority"
|
||||
android:textAppearance="?android:attr/textAppearanceListItem" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@android:id/button3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/notification_app_icon_size"
|
||||
android:layout_below="@android:id/button2"
|
||||
android:layout_marginStart="@dimen/content_margin_left"
|
||||
android:text="@string/app_notifications_dialog_visibility"
|
||||
android:textAppearance="?android:attr/textAppearanceListItem" />
|
||||
|
||||
</RelativeLayout>
|
@@ -87,7 +87,6 @@
|
||||
<dimen name="notification_app_icon_size">64dp</dimen>
|
||||
<dimen name="notification_app_icon_badge_size">20dp</dimen>
|
||||
<dimen name="notification_app_icon_badge_margin">4dp</dimen>
|
||||
<dimen name="notification_app_settings_divider_height">48dp</dimen>
|
||||
<dimen name="zen_mode_dropdown_width">160dp</dimen>
|
||||
<dimen name="zen_downtime_checkbox_padding">7dp</dimen>
|
||||
<dimen name="zen_downtime_margin">10dp</dimen>
|
||||
|
@@ -5739,27 +5739,33 @@
|
||||
<!-- [CHAR LIMIT=NONE] Text when loading app list in notification settings -->
|
||||
<string name="loading_notification_apps">Loading apps...</string>
|
||||
|
||||
<!-- [CHAR LIMIT=NONE] Notification settings: App notifications dialog show option -->
|
||||
<string name="app_notifications_dialog_show">Show notifications</string>
|
||||
<!-- [CHAR LIMIT=NONE] App notification settings: Block option title -->
|
||||
<string name="app_notification_block_title">Block</string>
|
||||
|
||||
<!-- [CHAR LIMIT=NONE] Notification settings: App notifications dialog priority option -->
|
||||
<string name="app_notifications_dialog_priority">Display at the top of the list</string>
|
||||
<!-- [CHAR LIMIT=NONE] App notification settings: Block option description-->
|
||||
<string name="app_notification_block_summary">Never show notifications from this app</string>
|
||||
|
||||
<!-- [CHAR LIMIT=NONE] Notification settings: App notifications dialog visibility option -->
|
||||
<string name="app_notifications_dialog_visibility">Hide sensitive content when device is locked</string>
|
||||
<!-- [CHAR LIMIT=NONE] App notification settings: Priority option title -->
|
||||
<string name="app_notification_priority_title">Priority</string>
|
||||
|
||||
<!-- [CHAR LIMIT=NONE] App notification settings: Priority option description-->
|
||||
<string name="app_notification_priority_summary">Show notifications at the top of the list and keep them coming when the device is set to priority interruptions only</string>
|
||||
|
||||
<!-- [CHAR LIMIT=NONE] App notification settings: Sensitive option title -->
|
||||
<string name="app_notification_sensitive_title">Sensitive</string>
|
||||
|
||||
<!-- [CHAR LIMIT=NONE] App notification settings: Sensitive option description-->
|
||||
<string name="app_notification_sensitive_summary">When the device is locked, hide any sensitive content from this app’s notifications</string>
|
||||
|
||||
<!-- [CHAR LIMIT=20] Notification settings: App notifications row summary when banned -->
|
||||
<string name="app_notification_row_banned">Blocked</string>
|
||||
|
||||
<!-- [CHAR LIMIT=20] Notification settings: App notifications row summary when high priority -->
|
||||
<string name="app_notification_row_priority">Top of list</string>
|
||||
<!-- [CHAR LIMIT=40] Notification settings: App notifications row summary when high priority -->
|
||||
<string name="app_notification_row_priority">Priority</string>
|
||||
|
||||
<!-- [CHAR LIMIT=20] Notification settings: App notifications row summary when sensitive -->
|
||||
<string name="app_notification_row_sensitive">Sensitive</string>
|
||||
|
||||
<!-- [CHAR LIMIT=20] Notification settings: App notifications dialog dismiss button caption -->
|
||||
<string name="app_notifications_dialog_done">Done</string>
|
||||
|
||||
<!-- [CHAR LIMIT=30] Zen mode settings: Exit condition selection dialog, default option -->
|
||||
<string name="zen_mode_default_option">Until you turn this off</string>
|
||||
|
||||
|
45
res/xml/app_notification_settings.xml
Normal file
45
res/xml/app_notification_settings.xml
Normal file
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2014 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.
|
||||
-->
|
||||
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:title="@string/app_notifications_title"
|
||||
android:key="app_notification_settings">
|
||||
|
||||
<!-- Block -->
|
||||
<SwitchPreference
|
||||
android:key="block"
|
||||
android:title="@string/app_notification_block_title"
|
||||
android:summary="@string/app_notification_block_summary"
|
||||
android:disableDependentsState="true"
|
||||
android:persistent="false" />
|
||||
|
||||
<!-- Priority -->
|
||||
<SwitchPreference
|
||||
android:key="priority"
|
||||
android:title="@string/app_notification_priority_title"
|
||||
android:summary="@string/app_notification_priority_summary"
|
||||
android:dependency="block"
|
||||
android:persistent="false" />
|
||||
|
||||
<!-- Sensitive -->
|
||||
<SwitchPreference
|
||||
android:key="sensitive"
|
||||
android:title="@string/app_notification_sensitive_title"
|
||||
android:summary="@string/app_notification_sensitive_summary"
|
||||
android:enabled="false"
|
||||
android:persistent="false" />
|
||||
|
||||
</PreferenceScreen>
|
@@ -108,7 +108,7 @@
|
||||
<PreferenceScreen
|
||||
android:key="app_notifications"
|
||||
android:title="@string/app_notifications_title"
|
||||
android:fragment="com.android.settings.notification.AppNotificationSettings" />
|
||||
android:fragment="com.android.settings.notification.NotificationAppList" />
|
||||
|
||||
<!-- Notification access -->
|
||||
<Preference
|
||||
|
Reference in New Issue
Block a user