Merge "Revert "Changed alert window notifications to use single channel"" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
540cb28c5a
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user