xref: /aosp_15_r20/frameworks/base/packages/SettingsLib/Graph/graph.proto (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1*d57664e9SAndroid Build Coastguard Workersyntax = "proto3";
2*d57664e9SAndroid Build Coastguard Worker
3*d57664e9SAndroid Build Coastguard Workerpackage com.android.settingslib.graph;
4*d57664e9SAndroid Build Coastguard Worker
5*d57664e9SAndroid Build Coastguard Workeroption java_package = "com.android.settingslib.graph.proto";
6*d57664e9SAndroid Build Coastguard Workeroption java_multiple_files = true;
7*d57664e9SAndroid Build Coastguard Worker
8*d57664e9SAndroid Build Coastguard Worker// Proto represents preference graph.
9*d57664e9SAndroid Build Coastguard Workermessage PreferenceGraphProto {
10*d57664e9SAndroid Build Coastguard Worker  // Preference screens appear in the graph.
11*d57664e9SAndroid Build Coastguard Worker  // Key: preference key of the PreferenceScreen. Value: PreferenceScreen.
12*d57664e9SAndroid Build Coastguard Worker  map<string, PreferenceScreenProto> screens = 1;
13*d57664e9SAndroid Build Coastguard Worker  // Roots of the graph.
14*d57664e9SAndroid Build Coastguard Worker  // Each element is a preference key of the PreferenceScreen.
15*d57664e9SAndroid Build Coastguard Worker  repeated string roots = 2;
16*d57664e9SAndroid Build Coastguard Worker  // Activities appear in the graph.
17*d57664e9SAndroid Build Coastguard Worker  // Key: activity class. Value: preference key of associated PreferenceScreen.
18*d57664e9SAndroid Build Coastguard Worker  map<string, string> activity_screens = 3;
19*d57664e9SAndroid Build Coastguard Worker}
20*d57664e9SAndroid Build Coastguard Worker
21*d57664e9SAndroid Build Coastguard Worker// Proto of PreferenceScreen.
22*d57664e9SAndroid Build Coastguard Workermessage PreferenceScreenProto {
23*d57664e9SAndroid Build Coastguard Worker  // Intent to show the PreferenceScreen.
24*d57664e9SAndroid Build Coastguard Worker  optional IntentProto intent = 1;
25*d57664e9SAndroid Build Coastguard Worker  // Root of the PreferenceScreen hierarchy.
26*d57664e9SAndroid Build Coastguard Worker  optional PreferenceGroupProto root = 2;
27*d57664e9SAndroid Build Coastguard Worker  // If the preference screen provides complete hierarchy by source code.
28*d57664e9SAndroid Build Coastguard Worker  optional bool complete_hierarchy = 3;
29*d57664e9SAndroid Build Coastguard Worker}
30*d57664e9SAndroid Build Coastguard Worker
31*d57664e9SAndroid Build Coastguard Worker// Proto of PreferenceGroup.
32*d57664e9SAndroid Build Coastguard Workermessage PreferenceGroupProto {
33*d57664e9SAndroid Build Coastguard Worker  // Self information of PreferenceGroup.
34*d57664e9SAndroid Build Coastguard Worker  optional PreferenceProto preference = 1;
35*d57664e9SAndroid Build Coastguard Worker  // A list of children.
36*d57664e9SAndroid Build Coastguard Worker  repeated PreferenceOrGroupProto preferences = 2;
37*d57664e9SAndroid Build Coastguard Worker}
38*d57664e9SAndroid Build Coastguard Worker
39*d57664e9SAndroid Build Coastguard Worker// Proto represents either PreferenceProto or PreferenceGroupProto.
40*d57664e9SAndroid Build Coastguard Workermessage PreferenceOrGroupProto {
41*d57664e9SAndroid Build Coastguard Worker  oneof kind {
42*d57664e9SAndroid Build Coastguard Worker    // It is a Preference.
43*d57664e9SAndroid Build Coastguard Worker    PreferenceProto preference = 1;
44*d57664e9SAndroid Build Coastguard Worker    // It is a PreferenceGroup.
45*d57664e9SAndroid Build Coastguard Worker    PreferenceGroupProto group = 2;
46*d57664e9SAndroid Build Coastguard Worker  }
47*d57664e9SAndroid Build Coastguard Worker}
48*d57664e9SAndroid Build Coastguard Worker
49*d57664e9SAndroid Build Coastguard Worker// Proto of Preference.
50*d57664e9SAndroid Build Coastguard Workermessage PreferenceProto {
51*d57664e9SAndroid Build Coastguard Worker  // Key of the preference.
52*d57664e9SAndroid Build Coastguard Worker  optional string key = 1;
53*d57664e9SAndroid Build Coastguard Worker  // Title of the preference.
54*d57664e9SAndroid Build Coastguard Worker  optional TextProto title = 2;
55*d57664e9SAndroid Build Coastguard Worker  // Summary of the preference.
56*d57664e9SAndroid Build Coastguard Worker  optional TextProto summary = 3;
57*d57664e9SAndroid Build Coastguard Worker  // Icon of the preference.
58*d57664e9SAndroid Build Coastguard Worker  optional int32 icon = 4;
59*d57664e9SAndroid Build Coastguard Worker  // Additional keywords for indexing.
60*d57664e9SAndroid Build Coastguard Worker  optional int32 keywords = 5;
61*d57664e9SAndroid Build Coastguard Worker  // Extras of the preference.
62*d57664e9SAndroid Build Coastguard Worker  optional BundleProto extras = 6;
63*d57664e9SAndroid Build Coastguard Worker  // Whether the preference is indexable.
64*d57664e9SAndroid Build Coastguard Worker  optional bool indexable = 7;
65*d57664e9SAndroid Build Coastguard Worker  // Whether the preference is enabled.
66*d57664e9SAndroid Build Coastguard Worker  optional bool enabled = 8;
67*d57664e9SAndroid Build Coastguard Worker  // Whether the preference is available/visible.
68*d57664e9SAndroid Build Coastguard Worker  optional bool available = 9;
69*d57664e9SAndroid Build Coastguard Worker  // Whether the preference is persistent.
70*d57664e9SAndroid Build Coastguard Worker  optional bool persistent = 10;
71*d57664e9SAndroid Build Coastguard Worker  // Whether the preference is restricted by managed configurations.
72*d57664e9SAndroid Build Coastguard Worker  optional bool restricted = 11;
73*d57664e9SAndroid Build Coastguard Worker  // Target of the preference action.
74*d57664e9SAndroid Build Coastguard Worker  optional ActionTarget action_target = 12;
75*d57664e9SAndroid Build Coastguard Worker  // Preference value (if present, it means `persistent` is true).
76*d57664e9SAndroid Build Coastguard Worker  optional PreferenceValueProto value = 13;
77*d57664e9SAndroid Build Coastguard Worker  // Intent to show and locate the preference (might have highlight animation on
78*d57664e9SAndroid Build Coastguard Worker  // the preference).
79*d57664e9SAndroid Build Coastguard Worker  optional IntentProto launch_intent = 14;
80*d57664e9SAndroid Build Coastguard Worker  // Descriptor of the preference value.
81*d57664e9SAndroid Build Coastguard Worker  optional PreferenceValueDescriptorProto value_descriptor = 15;
82*d57664e9SAndroid Build Coastguard Worker  // Indicate how sensitive of the preference.
83*d57664e9SAndroid Build Coastguard Worker  optional int32 sensitivity_level = 16;
84*d57664e9SAndroid Build Coastguard Worker
85*d57664e9SAndroid Build Coastguard Worker  // Target of an Intent
86*d57664e9SAndroid Build Coastguard Worker  message ActionTarget {
87*d57664e9SAndroid Build Coastguard Worker    oneof kind {
88*d57664e9SAndroid Build Coastguard Worker      // Resolved key of the preference screen located in current app.
89*d57664e9SAndroid Build Coastguard Worker      // This is resolved from android:fragment or activity of current app.
90*d57664e9SAndroid Build Coastguard Worker      string key = 1;
91*d57664e9SAndroid Build Coastguard Worker      // Unresolvable Intent that is either an unrecognized activity of current
92*d57664e9SAndroid Build Coastguard Worker      // app or activity belongs to other app.
93*d57664e9SAndroid Build Coastguard Worker      IntentProto intent = 2;
94*d57664e9SAndroid Build Coastguard Worker    }
95*d57664e9SAndroid Build Coastguard Worker  }
96*d57664e9SAndroid Build Coastguard Worker}
97*d57664e9SAndroid Build Coastguard Worker
98*d57664e9SAndroid Build Coastguard Worker// Proto of string or string resource id.
99*d57664e9SAndroid Build Coastguard Workermessage TextProto {
100*d57664e9SAndroid Build Coastguard Worker  oneof text {
101*d57664e9SAndroid Build Coastguard Worker    int32 resource_id = 1;
102*d57664e9SAndroid Build Coastguard Worker    string string = 2;
103*d57664e9SAndroid Build Coastguard Worker  }
104*d57664e9SAndroid Build Coastguard Worker}
105*d57664e9SAndroid Build Coastguard Worker
106*d57664e9SAndroid Build Coastguard Worker// Proto of preference value.
107*d57664e9SAndroid Build Coastguard Workermessage PreferenceValueProto {
108*d57664e9SAndroid Build Coastguard Worker  oneof value {
109*d57664e9SAndroid Build Coastguard Worker    bool boolean_value = 1;
110*d57664e9SAndroid Build Coastguard Worker    int32 int_value = 2;
111*d57664e9SAndroid Build Coastguard Worker  }
112*d57664e9SAndroid Build Coastguard Worker}
113*d57664e9SAndroid Build Coastguard Worker
114*d57664e9SAndroid Build Coastguard Worker// Proto of preference value descriptor.
115*d57664e9SAndroid Build Coastguard Workermessage PreferenceValueDescriptorProto {
116*d57664e9SAndroid Build Coastguard Worker  oneof type {
117*d57664e9SAndroid Build Coastguard Worker    bool boolean_type = 1;
118*d57664e9SAndroid Build Coastguard Worker    RangeValueProto range_value = 2;
119*d57664e9SAndroid Build Coastguard Worker  }
120*d57664e9SAndroid Build Coastguard Worker}
121*d57664e9SAndroid Build Coastguard Worker
122*d57664e9SAndroid Build Coastguard Worker// Proto of preference value that is between a range.
123*d57664e9SAndroid Build Coastguard Workermessage RangeValueProto {
124*d57664e9SAndroid Build Coastguard Worker  // The lower bound (inclusive) of the range.
125*d57664e9SAndroid Build Coastguard Worker  optional int32 min = 1;
126*d57664e9SAndroid Build Coastguard Worker  // The upper bound (inclusive) of the range.
127*d57664e9SAndroid Build Coastguard Worker  optional int32 max = 2;
128*d57664e9SAndroid Build Coastguard Worker  // The increment step within the range. 0 means unset, which implies step size is 1.
129*d57664e9SAndroid Build Coastguard Worker  optional int32 step = 3;
130*d57664e9SAndroid Build Coastguard Worker}
131*d57664e9SAndroid Build Coastguard Worker
132*d57664e9SAndroid Build Coastguard Worker// Proto of android.content.Intent
133*d57664e9SAndroid Build Coastguard Workermessage IntentProto {
134*d57664e9SAndroid Build Coastguard Worker  // The action of the Intent.
135*d57664e9SAndroid Build Coastguard Worker  optional string action = 1;
136*d57664e9SAndroid Build Coastguard Worker
137*d57664e9SAndroid Build Coastguard Worker  // The data attribute of the Intent, expressed as a URI.
138*d57664e9SAndroid Build Coastguard Worker  optional string data = 2;
139*d57664e9SAndroid Build Coastguard Worker
140*d57664e9SAndroid Build Coastguard Worker  // The package attribute of the Intent, which may be set to force the
141*d57664e9SAndroid Build Coastguard Worker  // detection of a particular application package that can handle the event.
142*d57664e9SAndroid Build Coastguard Worker  optional string pkg = 3;
143*d57664e9SAndroid Build Coastguard Worker
144*d57664e9SAndroid Build Coastguard Worker  // The component attribute of the Intent, which may be set to force the
145*d57664e9SAndroid Build Coastguard Worker  // detection of a particular component (app). If present, this must be a
146*d57664e9SAndroid Build Coastguard Worker  // package name followed by a '/' and then followed by the class name.
147*d57664e9SAndroid Build Coastguard Worker  optional string component = 4;
148*d57664e9SAndroid Build Coastguard Worker
149*d57664e9SAndroid Build Coastguard Worker  // Flags controlling how intent is handled. The value must be bitwise OR of
150*d57664e9SAndroid Build Coastguard Worker  // intent flag constants defined by Android.
151*d57664e9SAndroid Build Coastguard Worker  // http://developer.android.com/reference/android/content/Intent.html#setFlags(int)
152*d57664e9SAndroid Build Coastguard Worker  optional int32 flags = 5;
153*d57664e9SAndroid Build Coastguard Worker
154*d57664e9SAndroid Build Coastguard Worker  // Extended data from the intent.
155*d57664e9SAndroid Build Coastguard Worker  optional BundleProto extras = 6;
156*d57664e9SAndroid Build Coastguard Worker
157*d57664e9SAndroid Build Coastguard Worker  // The MIME type of the Intent (e.g. "text/plain").
158*d57664e9SAndroid Build Coastguard Worker  //
159*d57664e9SAndroid Build Coastguard Worker  // For more information, see
160*d57664e9SAndroid Build Coastguard Worker  // https://developer.android.com/reference/android/content/Intent#setType(java.lang.String).
161*d57664e9SAndroid Build Coastguard Worker  optional string mime_type = 7;
162*d57664e9SAndroid Build Coastguard Worker}
163*d57664e9SAndroid Build Coastguard Worker
164*d57664e9SAndroid Build Coastguard Worker// Proto of android.os.Bundle
165*d57664e9SAndroid Build Coastguard Workermessage BundleProto {
166*d57664e9SAndroid Build Coastguard Worker  // Bundle data.
167*d57664e9SAndroid Build Coastguard Worker  map<string, BundleValue> values = 1;
168*d57664e9SAndroid Build Coastguard Worker
169*d57664e9SAndroid Build Coastguard Worker  message BundleValue {
170*d57664e9SAndroid Build Coastguard Worker    // Bundle data value for the associated key name.
171*d57664e9SAndroid Build Coastguard Worker    // Can be extended to support other types of bundled data.
172*d57664e9SAndroid Build Coastguard Worker    oneof value {
173*d57664e9SAndroid Build Coastguard Worker      string string_value = 1;
174*d57664e9SAndroid Build Coastguard Worker      bytes bytes_value = 2;
175*d57664e9SAndroid Build Coastguard Worker      int32 int_value = 3;
176*d57664e9SAndroid Build Coastguard Worker      int64 long_value = 4;
177*d57664e9SAndroid Build Coastguard Worker      bool boolean_value = 5;
178*d57664e9SAndroid Build Coastguard Worker      double double_value = 6;
179*d57664e9SAndroid Build Coastguard Worker      BundleProto bundle_value = 7;
180*d57664e9SAndroid Build Coastguard Worker    }
181*d57664e9SAndroid Build Coastguard Worker  }
182*d57664e9SAndroid Build Coastguard Worker}
183