// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // Update proto_value_conversions{.h,.cc,_unittest.cc} if you change // any fields in this file. syntax = "proto2"; option optimize_for = LITE_RUNTIME; option retain_unknown_fields = true; package sync_pb; // Data that is used directly by endpoints to render notifications in the case // where no "native" app can handle the notification. message SyncedNotificationRenderInfo { // Render information for the collapsed (summary) view of a notification. optional CollapsedInfo collapsed_info = 1; // Render information for the expanded view of a notification. optional ExpandedInfo expanded_info = 2; } // Render information for the collapsed (summary) view of a coalesced // notification. message CollapsedInfo { optional SimpleCollapsedLayout simple_collapsed_layout = 1; // The creation time of the notification in microseconds since the UNIX // epoch. optional uint64 creation_timestamp_usec = 2; // The default destination target. optional SyncedNotificationDestination default_destination = 3; repeated Target target = 4; // Defines a repeated list of meta tags that provide some context on what // this collapsed info is describing. Nothing about the display of this // collapsed info is defined by the meta tags. repeated string meta_tag = 5; } // Render information for the expanded (detail) view of a coalesced // notification. message ExpandedInfo { optional SimpleExpandedLayout simple_expanded_layout = 1; // Collapsed information for each notification in the coalesced group. repeated CollapsedInfo collapsed_info = 2; // A set of targets for actions the user can take, or destinations the // viewer can be taken to. These relate to the coalesced notification. repeated Target target = 3; // Enhanced context for the expanded view. repeated string meta_tag = 4; } message SimpleCollapsedLayout { // Application icon. optional SyncedNotificationImage app_icon = 1; // Profile image(s) of the notification creator(s) to show in the // collapsed UI. repeated SyncedNotificationProfileImage profile_image = 2; // Heading - often the name(s) of the notification creator(s). optional string heading = 3; // Description - often the action that generated the notification. optional string description = 4; // Media - one or more shared media items. repeated Media media = 5; // Annotation - often the annotation of the entity generating the // notification. optional string annotation = 6; } message SimpleExpandedLayout { // Title - often the title of the underlying entity referred to by the // notification(s). optional string title = 1; // Text content - often a snippet of text from the underlying entity // reference or the notification. optional string text = 2; repeated Media media = 3; // Profile image, usually this is the creator of the referenced entity. optional SyncedNotificationProfileImage profile_image = 4; // A set of targets for actions the user can take, or destinations the // viewer can be taken to. Usually these relate to the referenced entity. repeated Target target = 5; } // Media. message Media { // TOOD(jro): Do we need other media types? optional SyncedNotificationImage image = 1; } // Secondary destinations and actions grouped into a message to account for // ordering. message Target { // URL that the user will be taken to by clicking on the notification. optional SyncedNotificationDestination destination = 1; // URI to POST if the user clicks on a button. optional SyncedNotificationAction action = 2; // A key to identify this target within a group of targets. optional string target_key = 3; } // A Destination is a target URL that the user can be taken to by clicking on or // selecting the notification or part thereof. message SyncedNotificationDestination { // The description for the link to the destination. optional string text = 1; // The icon to use for the link to the destination. optional SyncedNotificationImage icon = 2; // The destination URL. optional string url = 3; // Optional label to aid accessibility. optional string accessibility_label = 4; } // An Action encapsulates an UI component that trigger certain programmable // actions. Depending on the endpoint, this may show up as a HTML button, an // action button associated with the notification on native mobile, a link, or // even the notification card itself. message SyncedNotificationAction { // The description for the Action. optional string text = 1; // The icon to use for the Action. optional SyncedNotificationImage icon = 2; // The URL that performs the action. optional string url = 3; // Additional request data. optional string request_data = 4; // Optional label to aid accessibility. optional string accessibility_label= 5; // Defines a repeated list of meta tags that provide some context on this // action. Nothing about the display of this action is defined by the tags. repeated string meta_tag = 6; } message SyncedNotificationImage { // Note that the image may be from any source. Clients wishing to resize the // image should ensure the image is proxied appropriately. optional string url = 1; optional string alt_text = 2; optional int32 preferred_width = 3; optional int32 preferred_height = 4; } message SyncedNotificationProfileImage { // Url for the image. optional string image_url = 1; // Object id for the image. optional string oid = 2; // Name to display for this image. optional string display_name = 3; }