From 21fd269ea36601238317ace4f236e9157826f466 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Wed, 27 Apr 2016 12:46:43 -0400 Subject: [PATCH] Show 'on the lockscreen' setting in more contexts. - For managed profile apps - When 'auto' importance is on. Bug: 28405255 Change-Id: Ia4c0bc6010f157cac18a828069bbcf54087fc663 --- .../settings/notification/AppNotificationSettings.java | 9 +++++++-- .../notification/ImportanceSeekBarPreference.java | 1 + .../settings/notification/NotificationSettingsBase.java | 3 +++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java index b8270e1587f..bd6f4fe5f1e 100644 --- a/src/com/android/settings/notification/AppNotificationSettings.java +++ b/src/com/android/settings/notification/AppNotificationSettings.java @@ -22,6 +22,7 @@ import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.ResolveInfo; +import android.content.pm.UserInfo; import android.os.Bundle; import android.os.UserHandle; import android.service.notification.NotificationListenerService.Ranking; @@ -101,8 +102,12 @@ public class AppNotificationSettings extends NotificationSettingsBase { @Override protected void updateDependents(int importance) { - final boolean lockscreenSecure = new LockPatternUtils(getActivity()).isSecure( - UserHandle.myUserId()); + LockPatternUtils utils = new LockPatternUtils(getActivity()); + boolean lockscreenSecure = utils.isSecure(UserHandle.myUserId()); + UserInfo parentUser = mUm.getProfileParent(UserHandle.myUserId()); + if (parentUser != null){ + lockscreenSecure |= utils.isSecure(parentUser.id); + } if (getPreferenceScreen().findPreference(mBlock.getKey()) != null) { setVisible(mSilent, checkCanBeVisible(Ranking.IMPORTANCE_MIN, importance)); diff --git a/src/com/android/settings/notification/ImportanceSeekBarPreference.java b/src/com/android/settings/notification/ImportanceSeekBarPreference.java index cca70b47f66..4da5dbf284d 100644 --- a/src/com/android/settings/notification/ImportanceSeekBarPreference.java +++ b/src/com/android/settings/notification/ImportanceSeekBarPreference.java @@ -133,6 +133,7 @@ public class ImportanceSeekBarPreference extends SeekBarPreference implements mSeekBar.setThumbTintList(sliderTint); if (mAutoOn) { + setProgress(NotificationListenerService.Ranking.IMPORTANCE_DEFAULT); mSummary = getProgressSummary( NotificationListenerService.Ranking.IMPORTANCE_UNSPECIFIED); } diff --git a/src/com/android/settings/notification/NotificationSettingsBase.java b/src/com/android/settings/notification/NotificationSettingsBase.java index e0349656fec..77a329c092d 100644 --- a/src/com/android/settings/notification/NotificationSettingsBase.java +++ b/src/com/android/settings/notification/NotificationSettingsBase.java @@ -30,6 +30,7 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; import android.os.UserHandle; +import android.os.UserManager; import android.provider.Settings; import android.service.notification.NotificationListenerService.Ranking; import android.support.v7.preference.DropDownPreference; @@ -54,6 +55,7 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen protected static final String KEY_SILENT = "silent"; protected PackageManager mPm; + protected UserManager mUm; protected final NotificationBackend mBackend = new NotificationBackend(); protected Context mContext; protected boolean mCreated; @@ -94,6 +96,7 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen } mPm = getPackageManager(); + mUm = (UserManager) mContext.getSystemService(Context.USER_SERVICE); mPkg = args != null && args.containsKey(AppInfoBase.ARG_PACKAGE_NAME) ? args.getString(AppInfoBase.ARG_PACKAGE_NAME)