• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2024 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 
17 package com.android.settingslib.graph
18 
19 import com.android.settingslib.graph.proto.BundleProto
20 import com.android.settingslib.graph.proto.BundleProto.BundleValue
21 import com.android.settingslib.graph.proto.IntentProto
22 import com.android.settingslib.graph.proto.ParameterizedPreferenceScreenProto
23 import com.android.settingslib.graph.proto.PreferenceGroupProto
24 import com.android.settingslib.graph.proto.PreferenceOrGroupProto
25 import com.android.settingslib.graph.proto.PreferenceProto
26 import com.android.settingslib.graph.proto.PreferenceProto.ActionTarget
27 import com.android.settingslib.graph.proto.PreferenceScreenProto
28 import com.android.settingslib.graph.proto.PreferenceValueDescriptorProto
29 import com.android.settingslib.graph.proto.PreferenceValueProto
30 import com.android.settingslib.graph.proto.RangeValueProto
31 import com.android.settingslib.graph.proto.TextProto
32 
33 /** Returns root or null. */
34 val PreferenceScreenProto.rootOrNull
35     get() = if (hasRoot()) root else null
36 
37 /** Kotlin DSL-style builder for [PreferenceScreenProto]. */
38 @JvmSynthetic
preferenceScreenProtonull39 inline fun preferenceScreenProto(
40     init: PreferenceScreenProto.Builder.() -> Unit
41 ): PreferenceScreenProto = PreferenceScreenProto.newBuilder().also(init).build()
42 
43 /** Kotlin DSL-style builder for [PreferenceScreenProto]. */
44 inline fun parameterizedPreferenceScreenProto(
45     init: ParameterizedPreferenceScreenProto.Builder.() -> Unit
46 ): ParameterizedPreferenceScreenProto =
47     ParameterizedPreferenceScreenProto.newBuilder().also(init).build()
48 
49 /** Returns preference or null. */
50 val PreferenceOrGroupProto.preferenceOrNull
51     get() = if (hasPreference()) preference else null
52 
53 /** Returns group or null. */
54 val PreferenceOrGroupProto.groupOrNull
55     get() = if (hasGroup()) group else null
56 
57 /** Kotlin DSL-style builder for [PreferenceOrGroupProto]. */
58 @JvmSynthetic
59 inline fun preferenceOrGroupProto(
60     init: PreferenceOrGroupProto.Builder.() -> Unit
61 ): PreferenceOrGroupProto = PreferenceOrGroupProto.newBuilder().also(init).build()
62 
63 /** Returns preference or null. */
64 val PreferenceGroupProto.preferenceOrNull
65     get() = if (hasPreference()) preference else null
66 
67 /** Kotlin DSL-style builder for [PreferenceGroupProto]. */
68 @JvmSynthetic
69 inline fun preferenceGroupProto(
70     init: PreferenceGroupProto.Builder.() -> Unit
71 ): PreferenceGroupProto = PreferenceGroupProto.newBuilder().also(init).build()
72 
73 /** Returns title or null. */
74 val PreferenceProto.titleOrNull
75     get() = if (hasTitle()) title else null
76 
77 /** Returns summary or null. */
78 val PreferenceProto.summaryOrNull
79     get() = if (hasSummary()) summary else null
80 
81 /** Returns actionTarget or null. */
82 val PreferenceProto.actionTargetOrNull
83     get() = if (hasActionTarget()) actionTarget else null
84 
85 /** Kotlin DSL-style builder for [PreferenceProto]. */
86 @JvmSynthetic
87 inline fun preferenceProto(init: PreferenceProto.Builder.() -> Unit): PreferenceProto =
88     PreferenceProto.newBuilder().also(init).build()
89 
90 /** Returns intent or null. */
91 val ActionTarget.intentOrNull
92     get() = if (hasIntent()) intent else null
93 
94 /** Kotlin DSL-style builder for [ActionTarget]. */
95 @JvmSynthetic
96 inline fun actionTargetProto(init: ActionTarget.Builder.() -> Unit): ActionTarget =
97     ActionTarget.newBuilder().also(init).build()
98 
99 /** Kotlin DSL-style builder for [PreferenceValueProto]. */
100 @JvmSynthetic
101 inline fun preferenceValueProto(
102     init: PreferenceValueProto.Builder.() -> Unit
103 ): PreferenceValueProto = PreferenceValueProto.newBuilder().also(init).build()
104 
105 /** Kotlin DSL-style builder for [PreferenceValueDescriptorProto]. */
106 @JvmSynthetic
107 inline fun preferenceValueDescriptorProto(
108     init: PreferenceValueDescriptorProto.Builder.() -> Unit
109 ): PreferenceValueDescriptorProto = PreferenceValueDescriptorProto.newBuilder().also(init).build()
110 
111 /** Kotlin DSL-style builder for [RangeValueProto]. */
112 @JvmSynthetic
113 inline fun rangeValueProto(init: RangeValueProto.Builder.() -> Unit): RangeValueProto =
114     RangeValueProto.newBuilder().also(init).build()
115 
116 /** Kotlin DSL-style builder for [TextProto]. */
117 @JvmSynthetic
118 inline fun textProto(init: TextProto.Builder.() -> Unit): TextProto =
119     TextProto.newBuilder().also(init).build()
120 
121 /** Kotlin DSL-style builder for [IntentProto]. */
122 @JvmSynthetic
123 inline fun intentProto(init: IntentProto.Builder.() -> Unit): IntentProto =
124     IntentProto.newBuilder().also(init).build()
125 
126 /** Kotlin DSL-style builder for [BundleProto]. */
127 @JvmSynthetic
128 inline fun bundleProto(init: BundleProto.Builder.() -> Unit): BundleProto =
129     BundleProto.newBuilder().also(init).build()
130 
131 /** Kotlin DSL-style builder for [BundleValue]. */
132 @JvmSynthetic
133 inline fun bundleValueProto(init: BundleValue.Builder.() -> Unit): BundleValue =
134     BundleValue.newBuilder().also(init).build()
135