diff options
9 files changed, 45 insertions, 44 deletions
diff --git a/core/java/android/app/NotificationChannel.java b/core/java/android/app/NotificationChannel.java index c06ad3f32cf4..30f2697c1b1f 100644 --- a/core/java/android/app/NotificationChannel.java +++ b/core/java/android/app/NotificationChannel.java @@ -32,8 +32,6 @@ import android.util.proto.ProtoOutputStream; import com.android.internal.util.Preconditions; -import com.android.internal.util.Preconditions; - import org.json.JSONException; import org.json.JSONObject; import org.xmlpull.v1.XmlPullParser; @@ -936,7 +934,9 @@ public final class NotificationChannel implements Parcelable { } /** @hide */ - public void toProto(ProtoOutputStream proto) { + public void writeToProto(ProtoOutputStream proto, long fieldId) { + final long token = proto.start(fieldId); + proto.write(NotificationChannelProto.ID, mId); proto.write(NotificationChannelProto.NAME, mName); proto.write(NotificationChannelProto.DESCRIPTION, mDesc); @@ -959,10 +959,10 @@ public final class NotificationChannel implements Parcelable { proto.write(NotificationChannelProto.IS_DELETED, mDeleted); proto.write(NotificationChannelProto.GROUP, mGroup); if (mAudioAttributes != null) { - long aToken = proto.start(NotificationChannelProto.AUDIO_ATTRIBUTES); - mAudioAttributes.toProto(proto); - proto.end(aToken); + mAudioAttributes.writeToProto(proto, NotificationChannelProto.AUDIO_ATTRIBUTES); } proto.write(NotificationChannelProto.IS_BLOCKABLE_SYSTEM, mBlockableSystem); + + proto.end(token); } } diff --git a/core/java/android/app/NotificationChannelGroup.java b/core/java/android/app/NotificationChannelGroup.java index 5cb7fb7a6707..16166f7cf1cf 100644 --- a/core/java/android/app/NotificationChannelGroup.java +++ b/core/java/android/app/NotificationChannelGroup.java @@ -298,13 +298,17 @@ public final class NotificationChannelGroup implements Parcelable { } /** @hide */ - public void toProto(ProtoOutputStream proto) { + public void writeToProto(ProtoOutputStream proto, long fieldId) { + final long token = proto.start(fieldId); + proto.write(NotificationChannelGroupProto.ID, mId); proto.write(NotificationChannelGroupProto.NAME, mName.toString()); proto.write(NotificationChannelGroupProto.DESCRIPTION, mDescription); proto.write(NotificationChannelGroupProto.IS_BLOCKED, mBlocked); for (NotificationChannel channel : mChannels) { - channel.toProto(proto); + channel.writeToProto(proto, NotificationChannelGroupProto.CHANNELS); } + + proto.end(token); } } diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java index 659cf169e994..45bed5d5711c 100644 --- a/core/java/android/app/NotificationManager.java +++ b/core/java/android/app/NotificationManager.java @@ -1133,7 +1133,7 @@ public class NotificationManager { } /** @hide */ - public void toProto(ProtoOutputStream proto, long fieldId) { + public void writeToProto(ProtoOutputStream proto, long fieldId) { final long pToken = proto.start(fieldId); bitwiseToProtoEnum(proto, PolicyProto.PRIORITY_CATEGORIES, priorityCategories); diff --git a/core/proto/android/service/notification.proto b/core/proto/android/service/notification.proto index 7a0e152c8451..65df89a9a85e 100644 --- a/core/proto/android/service/notification.proto +++ b/core/proto/android/service/notification.proto @@ -24,6 +24,7 @@ import "frameworks/base/core/proto/android/app/notification_channel.proto"; import "frameworks/base/core/proto/android/app/notification_channel_group.proto"; import "frameworks/base/core/proto/android/app/notificationmanager.proto"; import "frameworks/base/core/proto/android/content/component_name.proto"; +import "frameworks/base/core/proto/android/media/audioattributes.proto"; message NotificationServiceDumpProto { repeated NotificationRecordProto records = 1; @@ -55,7 +56,7 @@ message NotificationRecordProto { optional int32 flags = 3; optional string channelId = 4; optional string sound = 5; - optional int32 sound_usage = 6; + optional .android.media.AudioAttributesProto audio_attributes = 6; optional bool can_vibrate = 7; optional bool can_show_light = 8; optional string group_key = 9; diff --git a/media/java/android/media/AudioAttributes.java b/media/java/android/media/AudioAttributes.java index d7861e328126..44a2ff9e8bf7 100644 --- a/media/java/android/media/AudioAttributes.java +++ b/media/java/android/media/AudioAttributes.java @@ -880,7 +880,9 @@ public final class AudioAttributes implements Parcelable { } /** @hide */ - public void toProto(ProtoOutputStream proto) { + public void writeToProto(ProtoOutputStream proto, long fieldId) { + final long token = proto.start(fieldId); + proto.write(AudioAttributesProto.USAGE, mUsage); proto.write(AudioAttributesProto.CONTENT_TYPE, mContentType); proto.write(AudioAttributesProto.FLAGS, mFlags); @@ -892,6 +894,8 @@ public final class AudioAttributes implements Parcelable { } } // TODO: is the data in mBundle useful for debugging? + + proto.end(token); } /** @hide */ diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 39b7c7c310fe..efe54faa0f79 100644 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -3382,36 +3382,28 @@ public class NotificationManagerService extends SystemService { private void dumpProto(FileDescriptor fd, @NonNull DumpFilter filter) { final ProtoOutputStream proto = new ProtoOutputStream(fd); synchronized (mNotificationLock) { - long records = proto.start(NotificationServiceDumpProto.RECORDS); int N = mNotificationList.size(); - if (N > 0) { - for (int i = 0; i < N; i++) { - final NotificationRecord nr = mNotificationList.get(i); - if (filter.filtered && !filter.matches(nr.sbn)) continue; - nr.dump(proto, filter.redact); - proto.write(NotificationRecordProto.STATE, NotificationRecordProto.POSTED); - } + for (int i = 0; i < N; i++) { + final NotificationRecord nr = mNotificationList.get(i); + if (filter.filtered && !filter.matches(nr.sbn)) continue; + nr.dump(proto, NotificationServiceDumpProto.RECORDS, filter.redact, + NotificationRecordProto.POSTED); } N = mEnqueuedNotifications.size(); - if (N > 0) { - for (int i = 0; i < N; i++) { - final NotificationRecord nr = mEnqueuedNotifications.get(i); - if (filter.filtered && !filter.matches(nr.sbn)) continue; - nr.dump(proto, filter.redact); - proto.write(NotificationRecordProto.STATE, NotificationRecordProto.ENQUEUED); - } + for (int i = 0; i < N; i++) { + final NotificationRecord nr = mEnqueuedNotifications.get(i); + if (filter.filtered && !filter.matches(nr.sbn)) continue; + nr.dump(proto, NotificationServiceDumpProto.RECORDS, filter.redact, + NotificationRecordProto.ENQUEUED); } List<NotificationRecord> snoozed = mSnoozeHelper.getSnoozed(); N = snoozed.size(); - if (N > 0) { - for (int i = 0; i < N; i++) { - final NotificationRecord nr = snoozed.get(i); - if (filter.filtered && !filter.matches(nr.sbn)) continue; - nr.dump(proto, filter.redact); - proto.write(NotificationRecordProto.STATE, NotificationRecordProto.SNOOZED); - } + for (int i = 0; i < N; i++) { + final NotificationRecord nr = snoozed.get(i); + if (filter.filtered && !filter.matches(nr.sbn)) continue; + nr.dump(proto, NotificationServiceDumpProto.RECORDS, filter.redact, + NotificationRecordProto.SNOOZED); } - proto.end(records); long zenLog = proto.start(NotificationServiceDumpProto.ZEN); mZenModeHelper.dump(proto); diff --git a/services/core/java/com/android/server/notification/NotificationRecord.java b/services/core/java/com/android/server/notification/NotificationRecord.java index faa300f29053..23b9743aaf78 100644 --- a/services/core/java/com/android/server/notification/NotificationRecord.java +++ b/services/core/java/com/android/server/notification/NotificationRecord.java @@ -361,8 +361,11 @@ public final class NotificationRecord { /** @deprecated Use {@link #getUser()} instead. */ public int getUserId() { return sbn.getUserId(); } - void dump(ProtoOutputStream proto, boolean redact) { + void dump(ProtoOutputStream proto, long fieldId, boolean redact, int state) { + final long token = proto.start(fieldId); + proto.write(NotificationRecordProto.KEY, sbn.getKey()); + proto.write(NotificationRecordProto.STATE, state); if (getChannel() != null) { proto.write(NotificationRecordProto.CHANNEL_ID, getChannel().getId()); } @@ -375,8 +378,10 @@ public final class NotificationRecord { proto.write(NotificationRecordProto.SOUND, getSound().toString()); } if (getAudioAttributes() != null) { - proto.write(NotificationRecordProto.SOUND_USAGE, getAudioAttributes().getUsage()); + getAudioAttributes().writeToProto(proto, NotificationRecordProto.AUDIO_ATTRIBUTES); } + + proto.end(token); } String formatRemoteViews(RemoteViews rv) { diff --git a/services/core/java/com/android/server/notification/RankingHelper.java b/services/core/java/com/android/server/notification/RankingHelper.java index c0dccb53c08a..b0e3820f5887 100644 --- a/services/core/java/com/android/server/notification/RankingHelper.java +++ b/services/core/java/com/android/server/notification/RankingHelper.java @@ -973,16 +973,11 @@ public class RankingHelper implements RankingConfig { proto.write(RecordProto.VISIBILITY, r.visibility); proto.write(RecordProto.SHOW_BADGE, r.showBadge); - long token; for (NotificationChannel channel : r.channels.values()) { - token = proto.start(RecordProto.CHANNELS); - channel.toProto(proto); - proto.end(token); + channel.writeToProto(proto, RecordProto.CHANNELS); } for (NotificationChannelGroup group : r.groups.values()) { - token = proto.start(RecordProto.CHANNEL_GROUPS); - group.toProto(proto); - proto.end(token); + group.writeToProto(proto, RecordProto.CHANNEL_GROUPS); } proto.end(fToken); diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java index 8f672b56c10c..932e4f948a82 100644 --- a/services/core/java/com/android/server/notification/ZenModeHelper.java +++ b/services/core/java/com/android/server/notification/ZenModeHelper.java @@ -565,7 +565,7 @@ public class ZenModeHelper { proto.write(ZenModeProto.ENABLED_ACTIVE_CONDITIONS, rule.toString()); } } - mConfig.toNotificationPolicy().toProto(proto, ZenModeProto.POLICY); + mConfig.toNotificationPolicy().writeToProto(proto, ZenModeProto.POLICY); proto.write(ZenModeProto.SUPPRESSED_EFFECTS, mSuppressedEffects); } } |