1/* 2 * Copyright (C) 2020 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17syntax = "proto2"; 18 19package com.android.server.people; 20 21option java_multiple_files = true; 22 23import "frameworks/base/core/proto/android/content/locusid.proto"; 24import "frameworks/base/core/proto/android/privacy.proto"; 25 26// On disk data of conversation infos for a user and app package. 27message ConversationInfosProto { 28 29 // The series of conversation infos for a user and app package. 30 repeated ConversationInfoProto conversation_infos = 1; 31} 32 33// Individual conversation info (com.android.server.people.data.ConversationInfo) for a user 34// and app package. 35message ConversationInfoProto { 36 37 // The conversation's shortcut id. 38 optional string shortcut_id = 1; 39 40 // The conversation's locus id. 41 optional .android.content.LocusIdProto locus_id_proto = 2; 42 43 // The URI of the contact in the conversation. 44 optional string contact_uri = 3 [(.android.privacy).dest = DEST_EXPLICIT]; 45 46 // The notification channel id of the conversation. 47 optional string notification_channel_id = 4 [(.android.privacy).dest = DEST_EXPLICIT]; 48 49 // The parent notification channel ID of the conversation. This is the notification channel where 50 // the notifications are posted before this conversation is customized by the user. 51 optional string parent_notification_channel_id = 8 [(.android.privacy).dest = DEST_EXPLICIT]; 52 53 // Integer representation of shortcut bit flags. 54 optional int32 shortcut_flags = 5; 55 56 // Integer representation of conversation bit flags. 57 optional int32 conversation_flags = 6; 58 59 // The phone number of the contact. 60 optional string contact_phone_number = 7 [(.android.privacy).dest = DEST_EXPLICIT]; 61 62 // The timestamp of the last event in millis. 63 optional int64 last_event_timestamp = 9; 64 65 // The timestamp this conversation was created in millis. 66 optional int64 creation_timestamp = 10; 67 68 // Next tag: 11 69} 70 71// On disk data of events. 72message PeopleEventsProto { 73 repeated PeopleEventProto events = 1; 74} 75 76// Individual event (com.android.server.people.data.Event). 77message PeopleEventProto { 78 79 // For valid values, refer to java class documentation. 80 optional int32 event_type = 1; 81 82 optional int64 time = 2; 83 84 // The duration of the event. Should only be set for some event_types. Refer to java class 85 // documentation for details. 86 optional int32 duration = 3; 87} 88 89// On disk data of event indexes. 90message PeopleEventIndexesProto { 91 repeated TypedPeopleEventIndexProto typed_indexes = 1; 92} 93 94// Mapping of event_type to event index. 95message TypedPeopleEventIndexProto { 96 optional int32 event_type = 1; 97 optional PeopleEventIndexProto index = 2; 98} 99 100// Index of events' time distributions (com.android.server.people.data.EventIndex). 101message PeopleEventIndexProto { 102 // Each long value in event_bitmaps represents a time slot, there should be 4 values. Further 103 // details can be found in class documentation. 104 repeated int64 event_bitmaps = 1; 105 106 optional int64 last_updated_time = 2; 107} 108 109