Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 897750a7 authored by Rubin Xu's avatar Rubin Xu
Browse files

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
parent c49800f1
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -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 {
+4 −9
Original line number Diff line number Diff line
@@ -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] -->
+1 −3
Original line number Diff line number Diff line
@@ -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" />
+2 −2
Original line number Diff line number Diff line
@@ -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)
+1 −2
Original line number Diff line number Diff line
@@ -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)
Loading