Loading res/layout/preference_importance_slider.xml +2 −27 Original line number Diff line number Diff line Loading @@ -23,35 +23,11 @@ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:orientation="vertical" android:clickable="false" android:focusable="false" android:paddingTop="8dip" android:paddingBottom="8dip"> <TextView android:id="@android:id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:textAppearance="@android:style/TextAppearance.Material.Subhead" android:textColor="?android:attr/textColorPrimary" android:ellipsize="marquee" android:fadingEdge="horizontal" /> <TextView android:id="@android:id/summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignStart="@android:id/title" android:textAlignment="viewStart" android:textAppearance="@android:style/TextAppearance.Material.Body1" android:textColor="?android:attr/textColorSecondary" android:maxLines="10" android:minLines="2" /> android:focusable="false" > <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="6dp"> android:layout_height="wrap_content" > <ImageView android:id="@+id/low_importance" Loading Loading @@ -82,5 +58,4 @@ android:tint="@color/importance_icon_tint" /> </FrameLayout> </LinearLayout> res/values/strings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -5839,6 +5839,9 @@ <!-- [CHAR LIMIT=100] Notification importance slider title --> <string name="notification_importance_title">Importance</string> <!-- [CHAR LIMIT=100] Notification Importance slider: unset importance level description --> <string name="notification_importance_none">Not set</string> <!-- [CHAR LIMIT=100] Notification Importance slider: blocked importance level description --> <string name="notification_importance_blocked">Blocked: Never show these notifications</string> Loading @@ -5854,6 +5857,9 @@ <!-- [CHAR LIMIT=100] Notification Importance slider: max importance level description --> <string name="notification_importance_max">Urgent: Peek onto the screen and make sound</string> <!-- [CHAR LIMIT=60] Notification importance reset button --> <string name="importance_reset">Reset</string> <!-- Default Apps > Default notification assistant --> <string name="default_notification_assistant">Notification assistant</string> Loading res/xml/app_notification_settings.xml +42 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,47 @@ <Preference android:key="app_settings" android:title="@string/app_notification_preferences" android:persistent="false" /> android:order="1" /> <!-- Apps without topics --> <!-- Importance --> <Preference android:key="importance_title" android:title="@string/notification_importance_title" android:order="2" /> <com.android.settings.notification.ImportanceSeekBarPreference android:key="importance" android:order="3"/> <com.android.settings.applications.LayoutPreference android:key="importance_reset_button" android:layout="@layout/two_buttons_panel" android:order="4" /> <!-- Sensitive --> <com.android.settingslib.RestrictedSwitchPreference android:key="sensitive" android:title="@string/app_notification_sensitive_title" android:summary="@string/app_notification_sensitive_summary" android:order="5" /> <!-- Bypass DND --> <com.android.settingslib.RestrictedSwitchPreference android:key="bypass_dnd" android:title="@string/app_notification_override_dnd_title" android:summary="@string/app_notification_override_dnd_summary" android:order="6" /> <!-- Apps with topics --> <!-- Block --> <com.android.settingslib.RestrictedSwitchPreference android:key="block" android:title="@string/app_notification_block_title" android:summary="@string/app_notification_block_summary" android:order="7" /> <PreferenceCategory android:key="categories" android:title="@string/notification_topic_categories" android:order="8" /> </PreferenceScreen> res/xml/topic_notification_settings.xml +18 −13 Original line number Diff line number Diff line Loading @@ -19,26 +19,31 @@ android:key="topic_notification_settings"> <!-- Importance --> <Preference android:key="importance_title" android:title="@string/notification_importance_title" android:order="1" /> <com.android.settings.notification.ImportanceSeekBarPreference android:key="importance" android:title="@string/notification_importance_title" android:order="1" android:persistent="false" /> android:order="2" /> <!-- Bypass DND --> <SwitchPreference android:key="bypass_dnd" android:title="@string/app_notification_override_dnd_title" android:summary="@string/app_notification_override_dnd_summary" android:order="2" android:persistent="false" /> <com.android.settings.applications.LayoutPreference android:key="importance_reset_button" android:order="3" android:layout="@layout/two_buttons_panel" /> <!-- Sensitive --> <SwitchPreference <com.android.settingslib.RestrictedSwitchPreference android:key="sensitive" android:title="@string/app_notification_sensitive_title" android:summary="@string/app_notification_sensitive_summary" android:order="4" android:persistent="false" /> android:order="4" /> <!-- Bypass DND --> <com.android.settingslib.RestrictedSwitchPreference android:key="bypass_dnd" android:title="@string/app_notification_override_dnd_title" android:summary="@string/app_notification_override_dnd_summary" android:order="5" /> </PreferenceScreen> src/com/android/settings/notification/AppNotificationSettings.java +33 −25 Original line number Diff line number Diff line Loading @@ -22,8 +22,7 @@ import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.ResolveInfo; import android.os.Bundle; import android.service.notification.NotificationListenerService; import android.support.v14.preference.SwitchPreference; import android.service.notification.NotificationListenerService.Ranking; import android.support.v7.preference.Preference; import android.support.v7.preference.Preference.OnPreferenceChangeListener; import android.support.v7.preference.Preference.OnPreferenceClickListener; Loading @@ -37,6 +36,7 @@ import com.android.settings.AppHeader; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.applications.AppInfoBase; import com.android.settings.applications.LayoutPreference; import com.android.settings.notification.NotificationBackend.AppRow; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedSwitchPreference; Loading Loading @@ -79,7 +79,16 @@ public class AppNotificationSettings extends NotificationSettingsBase { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.app_notification_settings); getPreferenceScreen().setOrderingAsAdded(true); mCategories = (PreferenceCategory) findPreference(KEY_CATEGORIES); mBlock = (RestrictedSwitchPreference) findPreference(KEY_BLOCK); mImportance = (ImportanceSeekBarPreference) findPreference(KEY_IMPORTANCE); mImportanceReset = (LayoutPreference) findPreference(KEY_IMPORTANCE_RESET); mImportanceTitle = findPreference(KEY_IMPORTANCE_TITLE); mPriority = (RestrictedSwitchPreference) getPreferenceScreen().findPreference(KEY_BYPASS_DND); mSensitive = (RestrictedSwitchPreference) getPreferenceScreen().findPreference(KEY_SENSITIVE); mAppRow = mBackend.loadAppRow(mPm, mPkgInfo); // load settings intent Loading @@ -90,16 +99,13 @@ public class AppNotificationSettings extends NotificationSettingsBase { // Add topics List<Notification.Topic> topics = mBackend.getTopics(mPkg, mUid); if (topics.size() <= 1) { setupImportancePref(mAppRow, null, mAppRow.appImportance); setupPriorityPref(null, mAppRow.appBypassDnd); setupSensitivePref(null, mAppRow.appSensitive); removeAppPrefs(); setupImportancePrefs(mAppRow.systemApp, mAppRow.appImportance); setupPriorityPref(mAppRow.appBypassDnd); setupSensitivePref(mAppRow.appSensitive); } else { removeTopicPrefs(); setupBlockSwitch(); mCategories = new PreferenceCategory(getPrefContext()); mCategories.setKey(KEY_CATEGORIES); mCategories.setTitle(R.string.notification_topic_categories); mCategories.setOrderingAsAdded(true); getPreferenceScreen().addPreference(mCategories); for (Notification.Topic topic : topics) { RestrictedPreference topicPreference = new RestrictedPreference(getPrefContext()); topicPreference.setDisabledByAdmin( Loading Loading @@ -138,22 +144,28 @@ public class AppNotificationSettings extends NotificationSettingsBase { @Override protected void updateDependents(int progress) { updateDependents(progress == NotificationListenerService.Ranking.IMPORTANCE_NONE); updateDependents(progress == Ranking.IMPORTANCE_NONE); } private void updateDependents(boolean banned) { if (mBlock != null) { mBlock.setEnabled(!mAppRow.systemApp); mBlock.setDisabledByAdmin( RestrictedLockUtils.checkIfApplicationIsSuspended(mContext, mPkg, mUserId)); private void removeTopicPrefs() { setVisible(mImportance, false); setVisible(mImportanceReset, false); setVisible(mImportanceTitle, false); setVisible(mPriority, false); setVisible(mSensitive, false); } if (mCategories != null) { setVisible(mCategories, !banned); private void removeAppPrefs() { setVisible(mBlock, false); setVisible(mCategories, false); } private void updateDependents(boolean banned) { mBlock.setEnabled(!mAppRow.systemApp); mCategories.setEnabled(!banned); } private void setupBlockSwitch() { mBlock = new RestrictedSwitchPreference(getPrefContext()); mBlock.setDisabledByAdmin( RestrictedLockUtils.checkIfApplicationIsSuspended(mContext, mPkg, mUserId)); mBlock.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { Loading @@ -170,10 +182,6 @@ public class AppNotificationSettings extends NotificationSettingsBase { return success; } }); mBlock.setKey(KEY_BLOCK); mBlock.setTitle(R.string.app_notification_block_title); mBlock.setSummary(R.string.app_notification_block_summary); getPreferenceScreen().addPreference(mBlock); mBlock.setChecked(mAppRow.banned); updateDependents(mAppRow.banned); } Loading Loading
res/layout/preference_importance_slider.xml +2 −27 Original line number Diff line number Diff line Loading @@ -23,35 +23,11 @@ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:orientation="vertical" android:clickable="false" android:focusable="false" android:paddingTop="8dip" android:paddingBottom="8dip"> <TextView android:id="@android:id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:textAppearance="@android:style/TextAppearance.Material.Subhead" android:textColor="?android:attr/textColorPrimary" android:ellipsize="marquee" android:fadingEdge="horizontal" /> <TextView android:id="@android:id/summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignStart="@android:id/title" android:textAlignment="viewStart" android:textAppearance="@android:style/TextAppearance.Material.Body1" android:textColor="?android:attr/textColorSecondary" android:maxLines="10" android:minLines="2" /> android:focusable="false" > <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="6dp"> android:layout_height="wrap_content" > <ImageView android:id="@+id/low_importance" Loading Loading @@ -82,5 +58,4 @@ android:tint="@color/importance_icon_tint" /> </FrameLayout> </LinearLayout>
res/values/strings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -5839,6 +5839,9 @@ <!-- [CHAR LIMIT=100] Notification importance slider title --> <string name="notification_importance_title">Importance</string> <!-- [CHAR LIMIT=100] Notification Importance slider: unset importance level description --> <string name="notification_importance_none">Not set</string> <!-- [CHAR LIMIT=100] Notification Importance slider: blocked importance level description --> <string name="notification_importance_blocked">Blocked: Never show these notifications</string> Loading @@ -5854,6 +5857,9 @@ <!-- [CHAR LIMIT=100] Notification Importance slider: max importance level description --> <string name="notification_importance_max">Urgent: Peek onto the screen and make sound</string> <!-- [CHAR LIMIT=60] Notification importance reset button --> <string name="importance_reset">Reset</string> <!-- Default Apps > Default notification assistant --> <string name="default_notification_assistant">Notification assistant</string> Loading
res/xml/app_notification_settings.xml +42 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,47 @@ <Preference android:key="app_settings" android:title="@string/app_notification_preferences" android:persistent="false" /> android:order="1" /> <!-- Apps without topics --> <!-- Importance --> <Preference android:key="importance_title" android:title="@string/notification_importance_title" android:order="2" /> <com.android.settings.notification.ImportanceSeekBarPreference android:key="importance" android:order="3"/> <com.android.settings.applications.LayoutPreference android:key="importance_reset_button" android:layout="@layout/two_buttons_panel" android:order="4" /> <!-- Sensitive --> <com.android.settingslib.RestrictedSwitchPreference android:key="sensitive" android:title="@string/app_notification_sensitive_title" android:summary="@string/app_notification_sensitive_summary" android:order="5" /> <!-- Bypass DND --> <com.android.settingslib.RestrictedSwitchPreference android:key="bypass_dnd" android:title="@string/app_notification_override_dnd_title" android:summary="@string/app_notification_override_dnd_summary" android:order="6" /> <!-- Apps with topics --> <!-- Block --> <com.android.settingslib.RestrictedSwitchPreference android:key="block" android:title="@string/app_notification_block_title" android:summary="@string/app_notification_block_summary" android:order="7" /> <PreferenceCategory android:key="categories" android:title="@string/notification_topic_categories" android:order="8" /> </PreferenceScreen>
res/xml/topic_notification_settings.xml +18 −13 Original line number Diff line number Diff line Loading @@ -19,26 +19,31 @@ android:key="topic_notification_settings"> <!-- Importance --> <Preference android:key="importance_title" android:title="@string/notification_importance_title" android:order="1" /> <com.android.settings.notification.ImportanceSeekBarPreference android:key="importance" android:title="@string/notification_importance_title" android:order="1" android:persistent="false" /> android:order="2" /> <!-- Bypass DND --> <SwitchPreference android:key="bypass_dnd" android:title="@string/app_notification_override_dnd_title" android:summary="@string/app_notification_override_dnd_summary" android:order="2" android:persistent="false" /> <com.android.settings.applications.LayoutPreference android:key="importance_reset_button" android:order="3" android:layout="@layout/two_buttons_panel" /> <!-- Sensitive --> <SwitchPreference <com.android.settingslib.RestrictedSwitchPreference android:key="sensitive" android:title="@string/app_notification_sensitive_title" android:summary="@string/app_notification_sensitive_summary" android:order="4" android:persistent="false" /> android:order="4" /> <!-- Bypass DND --> <com.android.settingslib.RestrictedSwitchPreference android:key="bypass_dnd" android:title="@string/app_notification_override_dnd_title" android:summary="@string/app_notification_override_dnd_summary" android:order="5" /> </PreferenceScreen>
src/com/android/settings/notification/AppNotificationSettings.java +33 −25 Original line number Diff line number Diff line Loading @@ -22,8 +22,7 @@ import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.ResolveInfo; import android.os.Bundle; import android.service.notification.NotificationListenerService; import android.support.v14.preference.SwitchPreference; import android.service.notification.NotificationListenerService.Ranking; import android.support.v7.preference.Preference; import android.support.v7.preference.Preference.OnPreferenceChangeListener; import android.support.v7.preference.Preference.OnPreferenceClickListener; Loading @@ -37,6 +36,7 @@ import com.android.settings.AppHeader; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.applications.AppInfoBase; import com.android.settings.applications.LayoutPreference; import com.android.settings.notification.NotificationBackend.AppRow; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedSwitchPreference; Loading Loading @@ -79,7 +79,16 @@ public class AppNotificationSettings extends NotificationSettingsBase { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.app_notification_settings); getPreferenceScreen().setOrderingAsAdded(true); mCategories = (PreferenceCategory) findPreference(KEY_CATEGORIES); mBlock = (RestrictedSwitchPreference) findPreference(KEY_BLOCK); mImportance = (ImportanceSeekBarPreference) findPreference(KEY_IMPORTANCE); mImportanceReset = (LayoutPreference) findPreference(KEY_IMPORTANCE_RESET); mImportanceTitle = findPreference(KEY_IMPORTANCE_TITLE); mPriority = (RestrictedSwitchPreference) getPreferenceScreen().findPreference(KEY_BYPASS_DND); mSensitive = (RestrictedSwitchPreference) getPreferenceScreen().findPreference(KEY_SENSITIVE); mAppRow = mBackend.loadAppRow(mPm, mPkgInfo); // load settings intent Loading @@ -90,16 +99,13 @@ public class AppNotificationSettings extends NotificationSettingsBase { // Add topics List<Notification.Topic> topics = mBackend.getTopics(mPkg, mUid); if (topics.size() <= 1) { setupImportancePref(mAppRow, null, mAppRow.appImportance); setupPriorityPref(null, mAppRow.appBypassDnd); setupSensitivePref(null, mAppRow.appSensitive); removeAppPrefs(); setupImportancePrefs(mAppRow.systemApp, mAppRow.appImportance); setupPriorityPref(mAppRow.appBypassDnd); setupSensitivePref(mAppRow.appSensitive); } else { removeTopicPrefs(); setupBlockSwitch(); mCategories = new PreferenceCategory(getPrefContext()); mCategories.setKey(KEY_CATEGORIES); mCategories.setTitle(R.string.notification_topic_categories); mCategories.setOrderingAsAdded(true); getPreferenceScreen().addPreference(mCategories); for (Notification.Topic topic : topics) { RestrictedPreference topicPreference = new RestrictedPreference(getPrefContext()); topicPreference.setDisabledByAdmin( Loading Loading @@ -138,22 +144,28 @@ public class AppNotificationSettings extends NotificationSettingsBase { @Override protected void updateDependents(int progress) { updateDependents(progress == NotificationListenerService.Ranking.IMPORTANCE_NONE); updateDependents(progress == Ranking.IMPORTANCE_NONE); } private void updateDependents(boolean banned) { if (mBlock != null) { mBlock.setEnabled(!mAppRow.systemApp); mBlock.setDisabledByAdmin( RestrictedLockUtils.checkIfApplicationIsSuspended(mContext, mPkg, mUserId)); private void removeTopicPrefs() { setVisible(mImportance, false); setVisible(mImportanceReset, false); setVisible(mImportanceTitle, false); setVisible(mPriority, false); setVisible(mSensitive, false); } if (mCategories != null) { setVisible(mCategories, !banned); private void removeAppPrefs() { setVisible(mBlock, false); setVisible(mCategories, false); } private void updateDependents(boolean banned) { mBlock.setEnabled(!mAppRow.systemApp); mCategories.setEnabled(!banned); } private void setupBlockSwitch() { mBlock = new RestrictedSwitchPreference(getPrefContext()); mBlock.setDisabledByAdmin( RestrictedLockUtils.checkIfApplicationIsSuspended(mContext, mPkg, mUserId)); mBlock.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { Loading @@ -170,10 +182,6 @@ public class AppNotificationSettings extends NotificationSettingsBase { return success; } }); mBlock.setKey(KEY_BLOCK); mBlock.setTitle(R.string.app_notification_block_title); mBlock.setSummary(R.string.app_notification_block_summary); getPreferenceScreen().addPreference(mBlock); mBlock.setChecked(mAppRow.banned); updateDependents(mAppRow.banned); } Loading