diff options
| author | 2019-04-30 17:15:03 +0100 | |
|---|---|---|
| committer | 2019-05-09 16:35:16 +0100 | |
| commit | 897750a79b13abc91d501df9d089d9fe35c5afde (patch) | |
| tree | 522171d08e21220185a448a4eb8ad012a45dd29d | |
| parent | c49800f15dc4aac1435a5ff7cb22374b15ae6d64 (diff) | |
Bump several device admin notifications to high priority
The following device admin related events now generate interruptive notifications:
1. Admin-triggered remote bug report collections (requires user action)
2. Remote work profile wipe - post wipe notification
3. The enabling of Network logging
4. Admin remotely installs/removes an APK
5. Work profile needs unlocking after boot
Test: manual
Change-Id: If5a51123c05b15e544a31ac7ec6b42ec831a1ccc
Fix: 130623009
Fix: 120770584
Fix: 118810015
6 files changed, 22 insertions, 18 deletions
diff --git a/core/java/com/android/internal/notification/SystemNotificationChannels.java b/core/java/com/android/internal/notification/SystemNotificationChannels.java index accfc875956c..a35e42e4e140 100644 --- a/core/java/com/android/internal/notification/SystemNotificationChannels.java +++ b/core/java/com/android/internal/notification/SystemNotificationChannels.java @@ -43,7 +43,12 @@ public class SystemNotificationChannels { public static String NETWORK_ALERTS = "NETWORK_ALERTS"; public static String NETWORK_AVAILABLE = "NETWORK_AVAILABLE"; public static String VPN = "VPN"; - public static String DEVICE_ADMIN = "DEVICE_ADMIN"; + /** + * @deprecated Legacy device admin channel with low importance which is no longer used, + * Use the high importance {@link #DEVICE_ADMIN} channel instead. + */ + @Deprecated public static String DEVICE_ADMIN_DEPRECATED = "DEVICE_ADMIN"; + public static String DEVICE_ADMIN = "DEVICE_ADMIN_ALERTS"; public static String ALERTS = "ALERTS"; public static String RETAIL_MODE = "RETAIL_MODE"; public static String USB = "USB"; @@ -128,7 +133,7 @@ public class SystemNotificationChannels { final NotificationChannel deviceAdmin = new NotificationChannel( DEVICE_ADMIN, context.getString(R.string.notification_channel_device_admin), - NotificationManager.IMPORTANCE_LOW); + NotificationManager.IMPORTANCE_HIGH); channelsList.add(deviceAdmin); final NotificationChannel alertsChannel = new NotificationChannel( @@ -180,6 +185,12 @@ public class SystemNotificationChannels { nm.createNotificationChannels(channelsList); } + /** Remove notification channels which are no longer used */ + public static void removeDeprecated(Context context) { + final NotificationManager nm = context.getSystemService(NotificationManager.class); + nm.deleteNotificationChannel(DEVICE_ADMIN_DEPRECATED); + } + public static void createAccountChannelForPackage(String pkg, int uid, Context context) { final INotificationManager iNotificationManager = NotificationManager.getService(); try { diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index dd0a6e605f60..e44a10f49852 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -633,8 +633,8 @@ <!-- Text shown when viewing channel settings for notifications related to vpn status --> <string name="notification_channel_vpn">VPN status</string> - <!-- Text shown when viewing channel settings for notifications related to remote device administration --> - <string name="notification_channel_device_admin">Device administration</string> + <!-- Notification channel name. This channel sends high-priority alerts from the user's IT admin for key updates about the user's work device or work profile. --> + <string name="notification_channel_device_admin">Alerts from your IT admin</string> <!-- Text shown when viewing channel settings for notifications related to important alerts --> <string name="notification_channel_alerts">Alerts</string> @@ -5035,13 +5035,8 @@ <!-- Notification content shown when new SMS/MMS is received while the device is locked [CHAR LIMIT=NONE] --> <string name="new_sms_notification_content">Open SMS app to view</string> - <!-- Notification title shown when user profile is credential encrypted and requires the user to unlock before some features are usable [CHAR LIMIT=30] --> - <string name="user_encrypted_title">Some functionality may be limited</string> - <!-- Notification message shown when user profile is credential encrypted and requires the user to unlock before some features are usable [CHAR LIMIT=30] --> - <string name="user_encrypted_message">Tap to unlock</string> - <!-- Notification detail shown when user profile is credential encrypted and requires the user to unlock before some features are usable [CHAR LIMIT=30] --> - <string name="user_encrypted_detail">User data locked</string> - + <!-- Notification title shown when user profile is credential encrypted and requires the user to unlock before some features are usable [CHAR LIMIT=36] --> + <string name="profile_encrypted_title">Some functionality may be limited</string> <!-- Notification detail shown when work profile is credential encrypted and requires the user to unlock before some features are usable [CHAR LIMIT=30] --> <string name="profile_encrypted_detail">Work profile locked</string> <!-- Notification message shown when work profile is credential encrypted and requires the user to unlock before some features are usable [CHAR LIMIT=30] --> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 18a019a3e144..28217751df6f 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -3024,9 +3024,7 @@ <java-symbol type="string" name="now_string_shortest" /> <!-- Encryption notification while accounts are locked by credential encryption --> - <java-symbol type="string" name="user_encrypted_title" /> - <java-symbol type="string" name="user_encrypted_message" /> - <java-symbol type="string" name="user_encrypted_detail" /> + <java-symbol type="string" name="profile_encrypted_title" /> <java-symbol type="string" name="profile_encrypted_detail" /> <java-symbol type="string" name="profile_encrypted_message" /> <java-symbol type="drawable" name="ic_user_secure" /> diff --git a/services/core/java/com/android/server/locksettings/LockSettingsService.java b/services/core/java/com/android/server/locksettings/LockSettingsService.java index 1b705bb7c4be..59e83a289df9 100644 --- a/services/core/java/com/android/server/locksettings/LockSettingsService.java +++ b/services/core/java/com/android/server/locksettings/LockSettingsService.java @@ -500,7 +500,7 @@ public class LockSettingsService extends ILockSettings.Stub { private void showEncryptionNotificationForProfile(UserHandle user) { Resources r = mContext.getResources(); CharSequence title = r.getText( - com.android.internal.R.string.user_encrypted_title); + com.android.internal.R.string.profile_encrypted_title); CharSequence message = r.getText( com.android.internal.R.string.profile_encrypted_message); CharSequence detail = r.getText( @@ -528,7 +528,7 @@ public class LockSettingsService extends ILockSettings.Stub { if (!StorageManager.isFileEncryptedNativeOrEmulated()) return; Notification notification = - new Notification.Builder(mContext, SystemNotificationChannels.SECURITY) + new Notification.Builder(mContext, SystemNotificationChannels.DEVICE_ADMIN) .setSmallIcon(com.android.internal.R.drawable.ic_user_secure) .setWhen(0) .setOngoing(true) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/RemoteBugreportUtils.java b/services/devicepolicy/java/com/android/server/devicepolicy/RemoteBugreportUtils.java index 344077cce06e..0838fbc536c1 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/RemoteBugreportUtils.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/RemoteBugreportUtils.java @@ -20,7 +20,6 @@ import android.annotation.IntDef; import android.app.Notification; import android.app.PendingIntent; import android.app.admin.DevicePolicyManager; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.os.UserHandle; @@ -65,7 +64,7 @@ class RemoteBugreportUtils { dialogIntent, 0, null, UserHandle.CURRENT); Notification.Builder builder = - new Notification.Builder(context, SystemNotificationChannels.DEVELOPER) + new Notification.Builder(context, SystemNotificationChannels.DEVICE_ADMIN) .setSmallIcon(com.android.internal.R.drawable.stat_sys_adb) .setOngoing(true) .setLocalOnly(true) diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 4ac8342e6e60..428ecf097ab2 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -1407,6 +1407,7 @@ public final class SystemServer { traceBeginAndSlog("StartNotificationManager"); mSystemServiceManager.startService(NotificationManagerService.class); + SystemNotificationChannels.removeDeprecated(context); SystemNotificationChannels.createAll(context); notification = INotificationManager.Stub.asInterface( ServiceManager.getService(Context.NOTIFICATION_SERVICE)); |