Merge "Filter out some notifications." into ub-launcher3-dorval
This commit is contained in:
@@ -42,11 +42,6 @@ import com.android.launcher3.util.PackageUserKey;
|
||||
*/
|
||||
public class NotificationInfo implements View.OnClickListener {
|
||||
|
||||
// TODO: use Notification constants directly.
|
||||
public static final int BADGE_ICON_NONE = 0;
|
||||
public static final int BADGE_ICON_SMALL = 1;
|
||||
public static final int BADGE_ICON_LARGE = 2;
|
||||
|
||||
public final PackageUserKey packageUserKey;
|
||||
public final String notificationKey;
|
||||
public final CharSequence title;
|
||||
@@ -69,10 +64,10 @@ public class NotificationInfo implements View.OnClickListener {
|
||||
Notification notification = statusBarNotification.getNotification();
|
||||
title = notification.extras.getCharSequence(Notification.EXTRA_TITLE);
|
||||
text = notification.extras.getCharSequence(Notification.EXTRA_TEXT);
|
||||
mBadgeIcon = BADGE_ICON_LARGE; // TODO: get from the Notification
|
||||
mBadgeIcon = notification.getBadgeIcon();
|
||||
// Load the icon. Since it is backed by ashmem, we won't copy the entire bitmap
|
||||
// into our process as long as we don't touch it and it exists in systemui.
|
||||
Icon icon = mBadgeIcon == BADGE_ICON_SMALL ? null : notification.getLargeIcon();
|
||||
Icon icon = mBadgeIcon == Notification.BADGE_ICON_SMALL ? null : notification.getLargeIcon();
|
||||
if (icon == null) {
|
||||
// Use the small icon.
|
||||
icon = notification.getSmallIcon();
|
||||
@@ -88,7 +83,7 @@ public class NotificationInfo implements View.OnClickListener {
|
||||
mIconDrawable = new BitmapDrawable(context.getResources(), LauncherAppState
|
||||
.getInstance(context).getIconCache()
|
||||
.getDefaultIcon(statusBarNotification.getUser()));
|
||||
mBadgeIcon = BADGE_ICON_NONE;
|
||||
mBadgeIcon = Notification.BADGE_ICON_NONE;
|
||||
}
|
||||
intent = notification.contentIntent;
|
||||
autoCancel = (notification.flags & Notification.FLAG_AUTO_CANCEL) != 0;
|
||||
@@ -133,7 +128,7 @@ public class NotificationInfo implements View.OnClickListener {
|
||||
public boolean shouldShowIconInBadge() {
|
||||
// If the icon we're using for this notification matches what the Notification
|
||||
// specified should show in the badge, then return true.
|
||||
return mIsIconLarge && mBadgeIcon == BADGE_ICON_LARGE
|
||||
|| !mIsIconLarge && mBadgeIcon == BADGE_ICON_SMALL;
|
||||
return mIsIconLarge && mBadgeIcon == Notification.BADGE_ICON_LARGE
|
||||
|| !mIsIconLarge && mBadgeIcon == Notification.BADGE_ICON_SMALL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package com.android.launcher3.notification;
|
||||
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationChannel;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
@@ -24,6 +25,7 @@ import android.service.notification.NotificationListenerService;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.android.launcher3.LauncherModel;
|
||||
import com.android.launcher3.Utilities;
|
||||
@@ -222,8 +224,17 @@ public class NotificationListener extends NotificationListenerService {
|
||||
}
|
||||
}
|
||||
Notification notification = sbn.getNotification();
|
||||
if (mTempRanking.getChannel().getId().equals(NotificationChannel.DEFAULT_CHANNEL_ID)) {
|
||||
// Special filtering for the default, legacy "Miscellaneous" channel.
|
||||
if ((notification.flags & Notification.FLAG_ONGOING_EVENT) != 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
boolean isGroupHeader = (notification.flags & Notification.FLAG_GROUP_SUMMARY) != 0;
|
||||
return (notification.contentIntent == null || isGroupHeader);
|
||||
CharSequence title = notification.extras.getCharSequence(Notification.EXTRA_TITLE);
|
||||
CharSequence text = notification.extras.getCharSequence(Notification.EXTRA_TEXT);
|
||||
boolean missingTitleOrText = TextUtils.isEmpty(title) || TextUtils.isEmpty(text);
|
||||
return (notification.contentIntent == null || isGroupHeader || missingTitleOrText);
|
||||
}
|
||||
|
||||
public interface NotificationsChangedListener {
|
||||
|
||||
Reference in New Issue
Block a user