diff --git a/res/xml/app_notification_settings.xml b/res/xml/app_notification_settings.xml
index a60eafc8f86..b98c6b204c2 100644
--- a/res/xml/app_notification_settings.xml
+++ b/res/xml/app_notification_settings.xml
@@ -20,7 +20,7 @@
-
diff --git a/res/xml/topic_notification_settings.xml b/res/xml/topic_notification_settings.xml
index 2f155008148..ca41276e638 100644
--- a/res/xml/topic_notification_settings.xml
+++ b/res/xml/topic_notification_settings.xml
@@ -19,7 +19,7 @@
android:key="topic_notification_settings">
-
diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java
index ccb1216640f..b3b15af281c 100644
--- a/src/com/android/settings/notification/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/AppNotificationSettings.java
@@ -83,7 +83,7 @@ public class AppNotificationSettings extends NotificationSettingsBase {
mBlock = (RestrictedSwitchPreference) findPreference(KEY_BLOCK);
mImportance = (ImportanceSeekBarPreference) findPreference(KEY_IMPORTANCE);
mImportanceReset = (LayoutPreference) findPreference(KEY_IMPORTANCE_RESET);
- mImportanceTitle = findPreference(KEY_IMPORTANCE_TITLE);
+ mImportanceTitle = (RestrictedPreference) findPreference(KEY_IMPORTANCE_TITLE);
mPriority =
(RestrictedSwitchPreference) getPreferenceScreen().findPreference(KEY_BYPASS_DND);
mSensitive =
@@ -108,8 +108,7 @@ public class AppNotificationSettings extends NotificationSettingsBase {
setupBlockSwitch();
for (Notification.Topic topic : topics) {
RestrictedPreference topicPreference = new RestrictedPreference(getPrefContext());
- topicPreference.setDisabledByAdmin(
- RestrictedLockUtils.checkIfApplicationIsSuspended(mContext, mPkg, mUserId));
+ topicPreference.setDisabledByAdmin(mSuspendedAppsAdmin);
topicPreference.setKey(topic.getId());
topicPreference.setTitle(topic.getLabel());
// Create intent for this preference.
@@ -153,8 +152,7 @@ public class AppNotificationSettings extends NotificationSettingsBase {
}
private void setupBlockSwitch() {
- mBlock.setDisabledByAdmin(
- RestrictedLockUtils.checkIfApplicationIsSuspended(mContext, mPkg, mUserId));
+ mBlock.setDisabledByAdmin(mSuspendedAppsAdmin);
mBlock.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
diff --git a/src/com/android/settings/notification/NotificationSettingsBase.java b/src/com/android/settings/notification/NotificationSettingsBase.java
index 740f8c1ba77..7f7dfd5648a 100644
--- a/src/com/android/settings/notification/NotificationSettingsBase.java
+++ b/src/com/android/settings/notification/NotificationSettingsBase.java
@@ -20,6 +20,7 @@ import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.applications.AppInfoBase;
import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settings.applications.LayoutPreference;
@@ -65,10 +66,11 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
protected PackageInfo mPkgInfo;
protected Notification.Topic mTopic;
protected ImportanceSeekBarPreference mImportance;
- protected Preference mImportanceTitle;
+ protected RestrictedPreference mImportanceTitle;
protected LayoutPreference mImportanceReset;
protected RestrictedSwitchPreference mPriority;
protected RestrictedSwitchPreference mSensitive;
+ protected EnforcedAdmin mSuspendedAppsAdmin;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
@@ -126,6 +128,9 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
// Will be null for app wide settings.
mTopic = args != null && args.containsKey(ARG_TOPIC)
? (Notification.Topic) args.getParcelable(ARG_TOPIC) : null;
+
+ mSuspendedAppsAdmin = RestrictedLockUtils.checkIfApplicationIsSuspended(
+ mContext, mPkg, mUserId);
}
@Override
@@ -136,22 +141,25 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
finish();
return;
}
- EnforcedAdmin admin = RestrictedLockUtils.checkIfApplicationIsSuspended(
+ mSuspendedAppsAdmin = RestrictedLockUtils.checkIfApplicationIsSuspended(
mContext, mPkg, mUserId);
if (mImportance != null) {
- mImportance.setDisabledByAdmin(admin);
+ mImportance.setDisabledByAdmin(mSuspendedAppsAdmin);
}
if (mPriority != null) {
- mPriority.setDisabledByAdmin(admin);
+ mPriority.setDisabledByAdmin(mSuspendedAppsAdmin);
}
if (mSensitive != null) {
- mSensitive.setDisabledByAdmin(admin);
+ mSensitive.setDisabledByAdmin(mSuspendedAppsAdmin);
+ }
+ if (mImportanceTitle != null) {
+ mImportanceTitle.setDisabledByAdmin(mSuspendedAppsAdmin);
}
}
protected void setupImportancePrefs(boolean isSystemApp, int importance) {
- mImportance.setDisabledByAdmin(
- RestrictedLockUtils.checkIfApplicationIsSuspended(mContext, mPkg, mUserId));
+ mImportance.setDisabledByAdmin(mSuspendedAppsAdmin);
+ mImportanceTitle.setDisabledByAdmin(mSuspendedAppsAdmin);
if (importance == Ranking.IMPORTANCE_UNSPECIFIED) {
mImportance.setVisible(false);
mImportanceReset.setVisible(false);
@@ -180,6 +188,12 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ if (mSuspendedAppsAdmin != null) {
+ RestrictedLockUtils.sendShowAdminSupportDetailsIntent(
+ getActivity(), mSuspendedAppsAdmin);
+ return;
+ }
+
mBackend.setImportance(mPkg, mUid, mTopic, Ranking.IMPORTANCE_UNSPECIFIED);
mImportanceReset.setVisible(false);
mImportance.setVisible(false);
@@ -211,8 +225,7 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
}
protected void setupPriorityPref(boolean priority) {
- mPriority.setDisabledByAdmin(
- RestrictedLockUtils.checkIfApplicationIsSuspended(mContext, mPkg, mUserId));
+ mPriority.setDisabledByAdmin(mSuspendedAppsAdmin);
mPriority.setChecked(priority);
mPriority.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
@@ -224,8 +237,7 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
}
protected void setupSensitivePref(boolean sensitive) {
- mSensitive.setDisabledByAdmin(
- RestrictedLockUtils.checkIfApplicationIsSuspended(mContext, mPkg, mUserId));
+ mSensitive.setDisabledByAdmin(mSuspendedAppsAdmin);
mSensitive.setChecked(sensitive);
mSensitive.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
diff --git a/src/com/android/settings/notification/TopicNotificationSettings.java b/src/com/android/settings/notification/TopicNotificationSettings.java
index bbbcadef641..c1df2de66d4 100644
--- a/src/com/android/settings/notification/TopicNotificationSettings.java
+++ b/src/com/android/settings/notification/TopicNotificationSettings.java
@@ -22,6 +22,7 @@ import com.android.settings.AppHeader;
import com.android.settings.R;
import com.android.settings.applications.LayoutPreference;
import com.android.settings.notification.NotificationBackend.TopicRow;
+import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.RestrictedSwitchPreference;
import android.app.NotificationManager;
@@ -67,7 +68,7 @@ public class TopicNotificationSettings extends NotificationSettingsBase {
mImportance = (ImportanceSeekBarPreference) findPreference(KEY_IMPORTANCE);
mImportanceReset = (LayoutPreference) findPreference(KEY_IMPORTANCE_RESET);
- mImportanceTitle = findPreference(KEY_IMPORTANCE_TITLE);
+ mImportanceTitle = (RestrictedPreference) findPreference(KEY_IMPORTANCE_TITLE);
mPriority = (RestrictedSwitchPreference) findPreference(KEY_BYPASS_DND);
mSensitive = (RestrictedSwitchPreference) findPreference(KEY_SENSITIVE);