diff options
| -rw-r--r-- | services/core/java/com/android/server/notification/RankingHelper.java | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/notification/RankingHelper.java b/services/core/java/com/android/server/notification/RankingHelper.java index b3c6ff657867..d7b36aaa8008 100644 --- a/services/core/java/com/android/server/notification/RankingHelper.java +++ b/services/core/java/com/android/server/notification/RankingHelper.java @@ -525,12 +525,11 @@ public class RankingHelper implements RankingConfig { if (r == null) { throw new IllegalArgumentException("Invalid package"); } - LogMaker lm = new LogMaker(MetricsProto.MetricsEvent.ACTION_NOTIFICATION_CHANNEL_GROUP) - .setType(MetricsProto.MetricsEvent.TYPE_UPDATE) - .addTaggedData(MetricsProto.MetricsEvent.FIELD_NOTIFICATION_CHANNEL_GROUP_ID, - group.getId()) - .setPackageName(pkg); - MetricsLogger.action(lm); + final NotificationChannelGroup oldGroup = r.groups.get(group.getId()); + if (!group.equals(oldGroup)) { + // will log for new entries as well as name changes + MetricsLogger.action(getChannelGroupLog(group.getId(), pkg)); + } r.groups.put(group.getId(), group); updateConfig(); } @@ -558,13 +557,16 @@ public class RankingHelper implements RankingConfig { if (existing != null && fromTargetApp) { if (existing.isDeleted()) { existing.setDeleted(false); + + // log a resurrected channel as if it's new again + MetricsLogger.action(getChannelLog(channel, pkg).setType( + MetricsProto.MetricsEvent.TYPE_OPEN)); } existing.setName(channel.getName().toString()); existing.setDescription(channel.getDescription()); existing.setBlockableSystem(channel.isBlockableSystem()); - MetricsLogger.action(getChannelLog(channel, pkg)); updateConfig(); return; } @@ -622,7 +624,10 @@ public class RankingHelper implements RankingConfig { r.showBadge = updatedChannel.canShowBadge(); } - MetricsLogger.action(getChannelLog(updatedChannel, pkg)); + if (!channel.equals(updatedChannel)) { + // only log if there are real changes + MetricsLogger.action(getChannelLog(updatedChannel, pkg)); + } updateConfig(); } @@ -1141,6 +1146,14 @@ public class RankingHelper implements RankingConfig { channel.getImportance()); } + private LogMaker getChannelGroupLog(String groupId, String pkg) { + return new LogMaker(MetricsProto.MetricsEvent.ACTION_NOTIFICATION_CHANNEL_GROUP) + .setType(MetricsProto.MetricsEvent.TYPE_UPDATE) + .addTaggedData(MetricsProto.MetricsEvent.FIELD_NOTIFICATION_CHANNEL_GROUP_ID, + groupId) + .setPackageName(pkg); + } + public void updateBadgingEnabled() { if (mBadgingEnabled == null) { mBadgingEnabled = new SparseBooleanArray(); |