/* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ syntax = "proto2"; package com.android.server.notification; option java_multiple_files = true; import "frameworks/base/core/proto/android/privacy.proto"; // On disk data store for historical notifications message NotificationHistoryProto { message StringPool { optional int32 size = 1; repeated string strings = 2; } message Notification { // The package that posted the notification optional string package = 1; // package_index contains the index + 1 of the package name in the string pool optional int32 package_index = 2; // The name of the NotificationChannel this notification was posted to optional string channel_name = 3 [(.android.privacy).dest = DEST_EXPLICIT]; // channel_name_index contains the index + 1 of the channel name in the string pool optional int32 channel_name_index = 4; // The id of the NotificationChannel this notification was posted to optional string channel_id = 5; // channel_id_index contains the index + 1 of the channel id in the string pool optional int32 channel_id_index = 6; // The uid of the package that posted the notification optional int32 uid = 7; // The user id that the notification was posted to optional int32 user_id = 8; // The time at which the notification was posted optional int64 posted_time_ms = 9; // The title of the notification optional string title = 10 [(.android.privacy).dest = DEST_EXPLICIT]; // The text of the notification optional string text = 11 [(.android.privacy).dest = DEST_EXPLICIT]; // The small icon of the notification optional Icon icon = 12; // The conversation id, if any, that this notification belongs to optional string conversation_id = 13; // conversation_id_index contains the index + 1 of the conversation id in the string pool optional int32 conversation_id_index = 14; // Matches the constants of android.graphics.drawable.Icon enum ImageTypeEnum { TYPE_UNKNOWN = 0; TYPE_BITMAP = 1; TYPE_RESOURCE = 2; TYPE_DATA = 3; TYPE_URI = 4; TYPE_ADAPTIVE_BITMAP = 5; } message Icon { optional ImageTypeEnum image_type = 1; optional string image_bitmap_filename = 2; optional int32 image_resource_id = 3; optional string image_resource_id_package = 4; optional bytes image_data = 5; optional int32 image_data_length = 6; optional int32 image_data_offset = 7; optional string image_uri = 8; } } // Pool of strings to save space optional StringPool string_pool = 1; // Versioning fields optional int32 major_version = 2; // List of historical notifications repeated Notification notification = 3; }