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

Commit 540cb28c authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert "Changed alert window notifications to use single channel"" into oc-dev

parents 42c6529c af38fd7b
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ public class SystemNotificationChannels {
    public static String RETAIL_MODE = "RETAIL_MODE";
    public static String USB = "USB";
    public static String FOREGROUND_SERVICE = "FOREGROUND_SERVICE";
    public static String ALERT_WINDOW = "ALERT_WINDOW";

    public static void createAll(Context context) {
        final NotificationManager nm = context.getSystemService(NotificationManager.class);
@@ -138,11 +137,6 @@ public class SystemNotificationChannels {
                context.getString(R.string.notification_channel_foreground_service),
                NotificationManager.IMPORTANCE_MIN));

        channelsList.add(new NotificationChannel(
                ALERT_WINDOW,
                context.getString(R.string.alert_windows_notification_channel_name),
                NotificationManager.IMPORTANCE_MIN));

        nm.createNotificationChannels(channelsList);
    }

+1 −1
Original line number Diff line number Diff line
@@ -3225,7 +3225,7 @@
    <skip />
    <!-- Name of notification channel the system post notification to inform the use about apps
         that are drawing ui on-top of other apps (alert-windows) [CHAR LIMIT=NONE] -->
    <string name="alert_windows_notification_channel_name">App activity</string>
    <string name="alert_windows_notification_channel_name"><xliff:g id="name" example="Google Maps">%s</xliff:g> displaying over other apps</string>
    <!-- Notification title when an application is displaying ui on-top of other apps
         [CHAR LIMIT=30] -->
    <string name="alert_windows_notification_title"><xliff:g id="name" example="Google Maps">%s</xliff:g> is displaying over other apps</string>
+21 −4
Original line number Diff line number Diff line
@@ -16,14 +16,15 @@

package com.android.server.wm;

import static android.app.NotificationManager.IMPORTANCE_MIN;
import static android.app.PendingIntent.FLAG_CANCEL_CURRENT;
import static android.content.Context.NOTIFICATION_SERVICE;
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.provider.Settings.ACTION_MANAGE_OVERLAY_PERMISSION;
import static com.android.internal.notification.SystemNotificationChannels.ALERT_WINDOW;

import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
@@ -40,7 +41,7 @@ import com.android.server.policy.IconUtilities;

/** Displays an ongoing notification for a process displaying an alert window */
class AlertWindowNotification {
    private static final String TAG_PREFIX = "com.android.server.wm.AlertWindowNotification: ";
    private static final String CHANNEL_PREFIX = "com.android.server.wm.AlertWindowNotification - ";
    private static final int NOTIFICATION_ID = 0;

    private static int sNextRequestCode = 0;
@@ -57,7 +58,7 @@ class AlertWindowNotification {
        mPackageName = packageName;
        mNotificationManager =
                (NotificationManager) mService.mContext.getSystemService(NOTIFICATION_SERVICE);
        mNotificationTag = TAG_PREFIX + mPackageName;
        mNotificationTag = CHANNEL_PREFIX + mPackageName;
        mRequestCode = sNextRequestCode++;
        mIconUtilities = new IconUtilities(mService.mContext);
    }
@@ -99,9 +100,11 @@ class AlertWindowNotification {
        final String appName = (aInfo != null)
                ? pm.getApplicationLabel(aInfo).toString() : mPackageName;

        createNotificationChannelIfNeeded(context, appName);

        final String message = context.getString(R.string.alert_windows_notification_message,
                appName);
        final Notification.Builder builder = new Notification.Builder(context, ALERT_WINDOW)
        final Notification.Builder builder = new Notification.Builder(context, mNotificationTag)
                .setOngoing(true)
                .setContentTitle(
                        context.getString(R.string.alert_windows_notification_title, appName))
@@ -131,6 +134,20 @@ class AlertWindowNotification {
        return PendingIntent.getActivity(context, mRequestCode, intent, FLAG_CANCEL_CURRENT);
    }

    private void createNotificationChannelIfNeeded(Context context, String appName) {
        if (mNotificationManager.getNotificationChannel(mNotificationTag) != null) {
            return;
        }
        final String nameChannel =
                context.getString(R.string.alert_windows_notification_channel_name, appName);
        final NotificationChannel channel =
                new NotificationChannel(mNotificationTag, nameChannel, IMPORTANCE_MIN);
        channel.enableLights(false);
        channel.enableVibration(false);
        mNotificationManager.createNotificationChannel(channel);
    }


    private ApplicationInfo getApplicationInfo(PackageManager pm, String packageName) {
        try {
            return pm.getApplicationInfo(packageName, 0);