1/*
2 * Copyright (C) 2017 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";
18option java_multiple_files = true;
19
20package android.app;
21
22import "frameworks/base/core/proto/android/media/audioattributes.proto";
23import "frameworks/base/core/proto/android/privacy.proto";
24
25/**
26 * An android.app.NotificationChannel object.
27 */
28message NotificationChannelProto {
29    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
30
31    // Notification Channel ID. Provided by the app.
32    optional string id = 1 [ (android.privacy).dest = DEST_EXPLICIT ];
33    // User-visible Notification Channel name. Provided by the app.
34    optional string name = 2 [ (android.privacy).dest = DEST_EXPLICIT ];
35    // User-visible Notification Channel description. Provided by the app.
36    optional string description = 3 [ (android.privacy).dest = DEST_EXPLICIT ];
37    optional int32 importance = 4;
38    optional bool can_bypass_dnd = 5;
39    // Default is VISIBILITY_NO_OVERRIDE (-1000).
40    optional int32 lockscreen_visibility = 6;
41    optional string sound = 7 [ (android.privacy).dest = DEST_EXPLICIT ];
42    optional bool use_lights = 8;
43    // Default is 0.
44    optional int32 light_color = 9;
45    repeated int64 vibration = 10;
46    // Bitwise representation of fields that have been changed by the user,
47    // preventing the app from making changes to these fields.
48    optional int32 user_locked_fields = 11;
49    optional bool is_vibration_enabled = 12;
50    // Default is true.
51    optional bool show_badge = 13;
52    // Default is false.
53    optional bool is_deleted = 14;
54    // Provided by the app but will match a NotificationChannelGroup id.
55    optional string group = 15 [ (android.privacy).dest = DEST_EXPLICIT ];
56    optional android.media.AudioAttributesProto audio_attributes = 16;
57    // If this is a blockable system notification channel.
58    optional bool is_blockable_system = 17;
59    optional bool fg_service_shown = 18;
60    // Default is true.
61    // Allows the notifications to appear outside of the shade in floating windows
62    optional bool allow_app_overlay = 19;
63}
64