| /* |
| * 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 = "proto3"; |
| |
| package com.android.car.messenger.proto; |
| |
| option java_package = "com.android.car.messenger.NotificationMsgProto"; |
| |
| message PhoneToCarMessage { |
| // The unique key of the message notification, same in phone and car. |
| // This will be the StatusBarNotification id of the original message notification posted on the |
| // phone. |
| string notification_key = 1; |
| |
| // Categorizing what type of message this is, so the receiver understands what type of |
| // message_data is being sent, and the purpose of the message. The expected message_type(s) with |
| // their message_data type (for now) are: |
| // "NEW_CONVERSATION" - ConversationNotification expected, |
| // "NEW_MESSAGE" - MessagingStyleMessageProto expected, |
| // "ACTION_STATUS_UPDATE" - ActionStatusUpdate expected, |
| // "OTHER" - metadata expected. |
| // |
| // The message_type field is a string and not an enum so that new message types can be added in a |
| // backwards compatible way. New message types that require a message_data structure that was |
| // introduced in later releases will be put in the metadata field. |
| // |
| // NOTE: while a message type like "NEW_CONVERSATION" is required to have a |
| // ConversationNotification message, it may also have a metadata message as well. |
| string message_type = 2; |
| |
| oneof message_data { |
| ConversationNotification conversation = 3; |
| MessagingStyleMessage message = 4; |
| ActionStatusUpdate status_update = 5; |
| } |
| |
| // A byte array containing an undefined message. This field may contain supplemental information |
| // for a message_data, or contain all of the data for the PhoneToCarMessage. |
| bytes metadata = 6; |
| } |
| |
| message CarToPhoneMessage { |
| // The unique key of the message notification, same in phone and car. |
| // This will be the StatusBarNotification id of the original message notification posted on the |
| // phone. |
| string notification_key = 1; |
| |
| Action action_request = 2; |
| |
| bytes metadata = 3; |
| } |
| |
| message ActionStatusUpdate { |
| enum Status { |
| SUCCESSFUL = 0; |
| ERROR = 1; |
| } |
| |
| // Unique ID of the action |
| int64 request_id = 1; |
| |
| Status status = 2; |
| |
| string error_explanation = 3; |
| } |
| |
| // A message notification originating from the user's phone. |
| message ConversationNotification { |
| |
| // Display name of the application that posted this notification. |
| string messaging_app_display_name = 1; |
| |
| // Package name of the application that posted this notification. |
| string messaging_app_package_name = 2; |
| |
| MessagingStyle messaging_style = 3; |
| |
| // The time, in milliseconds, this message notification was last updated. |
| int64 time_ms = 4; |
| |
| bytes app_icon = 5; |
| } |
| |
| message MessagingStyle { |
| repeated MessagingStyleMessage messaging_style_msg = 1; |
| |
| string convo_title = 2; |
| |
| // String of the user, needed for MessagingStyle |
| string user_display_name = 3; |
| |
| bool is_group_convo = 4; |
| } |
| |
| message MessagingStyleMessage { |
| string text_message = 1; |
| |
| int64 timestamp = 2; |
| |
| Person sender = 3; |
| |
| // If the message is read on the phone. |
| bool is_read = 4; |
| } |
| |
| message Person { |
| string name = 1; |
| |
| bytes icon = 2; |
| } |
| |
| message Action { |
| enum ActionName { |
| MARK_AS_READ = 0; |
| REPLY = 1; |
| DISMISS = 2; |
| } |
| |
| // Same as the PhoneToCar and CarToPhone messages's notification_key. |
| // As mentioned above, this notification id should be the same on the phone and the car. |
| // This will be the StatusBarNotification id of the original message notification posted on the |
| // phone. |
| string notification_key = 1; |
| |
| //Optional, used to capture data like the reply string. |
| repeated ActionDataFieldEntry action_data_field = 2; |
| |
| ActionName action_name = 3; |
| |
| // Unique id of this action. |
| int64 request_id = 4; |
| } |
| |
| message ActionDataFieldEntry { |
| string key = 1; |
| string value = 2; |
| } |