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