From 55dbdf68f966d5218a265086f848f60d5a75c13f Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Wed, 15 May 2013 09:38:10 -0400 Subject: Hide notification listeners setting if no listeners. Hide the new notification listeners management setting when no listeners using this API are available. Bug: 8454150 Change-Id: Iae9f975e7b5a3cdf55ff7d0c6aea7e84166d53b3 --- src/com/android/settings/SecuritySettings.java | 27 ++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'src/com/android/settings/SecuritySettings.java') diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index 535d881..948aded 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -82,6 +82,7 @@ public class SecuritySettings extends SettingsPreferenceFragment private static final String KEY_NOTIFICATION_ACCESS = "manage_notification_access"; private static final String PACKAGE_MIME_TYPE = "application/vnd.android.package-archive"; + private PackageManager mPM; DevicePolicyManager mDPM; private ChooseLockSettingsHelper mChooseLockSettingsHelper; @@ -111,6 +112,7 @@ public class SecuritySettings extends SettingsPreferenceFragment mLockPatternUtils = new LockPatternUtils(getActivity()); + mPM = getActivity().getPackageManager(); mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity()); @@ -281,15 +283,24 @@ public class SecuritySettings extends SettingsPreferenceFragment } } - final int n = getNumEnabledNotificationListeners(); mNotificationAccess = findPreference(KEY_NOTIFICATION_ACCESS); - if (n == 0) { - mNotificationAccess.setSummary(getResources().getString( - R.string.manage_notification_access_summary_zero)); - } else { - mNotificationAccess.setSummary(String.format(getResources().getQuantityString( - R.plurals.manage_notification_access_summary_nonzero, - n, n))); + if (mNotificationAccess != null) { + final int total = NotificationAccessSettings.getListenersCount(mPM); + if (total == 0) { + if (deviceAdminCategory != null) { + deviceAdminCategory.removePreference(mNotificationAccess); + } + } else { + final int n = getNumEnabledNotificationListeners(); + if (n == 0) { + mNotificationAccess.setSummary(getResources().getString( + R.string.manage_notification_access_summary_zero)); + } else { + mNotificationAccess.setSummary(String.format(getResources().getQuantityString( + R.plurals.manage_notification_access_summary_nonzero, + n, n))); + } + } } return root; -- cgit v1.1