1 /*
2  * Copyright 2018 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.google.android.setupcompat.partnerconfig;
18 
19 // TODO: optimize the enum
20 /** Resources that can be customized by partner overlay APK. */
21 public enum PartnerConfig {
22 
23   // Status bar background color or illustration.
24   CONFIG_STATUS_BAR_BACKGROUND(PartnerConfigKey.KEY_STATUS_BAR_BACKGROUND, ResourceType.DRAWABLE),
25 
26   // The same as "WindowLightStatusBar". If set true, the status bar icons will be drawn such
27   // that it is compatible with a light status bar background
28   CONFIG_LIGHT_STATUS_BAR(PartnerConfigKey.KEY_LIGHT_STATUS_BAR, ResourceType.BOOL),
29 
30   // Navigation bar background color
31   CONFIG_NAVIGATION_BAR_BG_COLOR(PartnerConfigKey.KEY_NAVIGATION_BAR_BG_COLOR, ResourceType.COLOR),
32 
33   // Navigation bar divider color
34   CONFIG_NAVIGATION_BAR_DIVIDER_COLOR(
35       PartnerConfigKey.KEY_NAVIGATION_BAR_DIVIDER_COLOR, ResourceType.COLOR),
36 
37   // Background color of the footer bar.
38   CONFIG_FOOTER_BAR_BG_COLOR(PartnerConfigKey.KEY_FOOTER_BAR_BG_COLOR, ResourceType.COLOR),
39 
40   // The min height of the footer buttons
41   CONFIG_FOOTER_BAR_MIN_HEIGHT(PartnerConfigKey.KEY_FOOTER_BAR_MIN_HEIGHT, ResourceType.DIMENSION),
42 
43   // The same as "windowLightNavigationBar". If set true, the navigation bar icons will be drawn
44   // such that it is compatible with a light navigation bar background.
45   CONFIG_LIGHT_NAVIGATION_BAR(PartnerConfigKey.KEY_LIGHT_NAVIGATION_BAR, ResourceType.BOOL),
46 
47   // The font face used in footer buttons. This must be a string reference to a font that is
48   // available in the system. Font references (@font or @xml) are not allowed.
49   CONFIG_FOOTER_BUTTON_FONT_FAMILY(
50       PartnerConfigKey.KEY_FOOTER_BUTTON_FONT_FAMILY, ResourceType.STRING),
51 
52   // The icon for "add another" action. Can be "@null" for no icon.
53   CONFIG_FOOTER_BUTTON_ICON_ADD_ANOTHER(
54       PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_ADD_ANOTHER, ResourceType.DRAWABLE),
55 
56   // The icon for "cancel" action. Can be "@null" for no icon.
57   CONFIG_FOOTER_BUTTON_ICON_CANCEL(
58       PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_CANCEL, ResourceType.DRAWABLE),
59 
60   // The icon for "clear" action. Can be "@null" for no icon.
61   CONFIG_FOOTER_BUTTON_ICON_CLEAR(
62       PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_CLEAR, ResourceType.DRAWABLE),
63 
64   // The icon for "done" action. Can be "@null" for no icon.
65   CONFIG_FOOTER_BUTTON_ICON_DONE(
66       PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_DONE, ResourceType.DRAWABLE),
67 
68   // The icon for "next" action. Can be "@null" for no icon.
69   CONFIG_FOOTER_BUTTON_ICON_NEXT(
70       PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_NEXT, ResourceType.DRAWABLE),
71 
72   // The icon for "opt-in" action. Can be "@null" for no icon.
73   CONFIG_FOOTER_BUTTON_ICON_OPT_IN(
74       PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_OPT_IN, ResourceType.DRAWABLE),
75 
76   // The icon for "skip" action. Can be "@null" for no icon.
77   CONFIG_FOOTER_BUTTON_ICON_SKIP(
78       PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_SKIP, ResourceType.DRAWABLE),
79 
80   // The icon for "stop" action. Can be "@null" for no icon.
81   CONFIG_FOOTER_BUTTON_ICON_STOP(
82       PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_STOP, ResourceType.DRAWABLE),
83 
84   // Top padding of the footer buttons
85   CONFIG_FOOTER_BUTTON_PADDING_TOP(
86       PartnerConfigKey.KEY_FOOTER_BUTTON_PADDING_TOP, ResourceType.DIMENSION),
87 
88   // Bottom padding of the footer buttons
89   CONFIG_FOOTER_BUTTON_PADDING_BOTTOM(
90       PartnerConfigKey.KEY_FOOTER_BUTTON_PADDING_BOTTOM, ResourceType.DIMENSION),
91 
92   // Corner radius of the footer buttons
93   CONFIG_FOOTER_BUTTON_RADIUS(PartnerConfigKey.KEY_FOOTER_BUTTON_RADIUS, ResourceType.DIMENSION),
94 
95   // Ripple color alpha the footer buttons
96   CONFIG_FOOTER_BUTTON_RIPPLE_COLOR_ALPHA(
97       PartnerConfigKey.KEY_FOOTER_BUTTON_RIPPLE_ALPHA, ResourceType.FRACTION),
98 
99   // Text size of the footer buttons
100   CONFIG_FOOTER_BUTTON_TEXT_SIZE(
101       PartnerConfigKey.KEY_FOOTER_BUTTON_TEXT_SIZE, ResourceType.DIMENSION),
102 
103   // The text style of footer buttons {0 = NORMAL}, {1 = BOLD}, {2 = ITALIC}, {3 = BOLD_ITALIC}
104   CONFIG_FOOTER_BUTTON_TEXT_STYLE(
105       PartnerConfigKey.KEY_FOOTER_BUTTON_TEXT_STYLE, ResourceType.INTEGER),
106 
107   // The min height of the footer buttons
108   CONFIG_FOOTER_BUTTON_MIN_HEIGHT(
109       PartnerConfigKey.KEY_FOOTER_BUTTON_MIN_HEIGHT, ResourceType.DIMENSION),
110 
111   // Disabled background alpha of the footer buttons
112   CONFIG_FOOTER_BUTTON_DISABLED_ALPHA(
113       PartnerConfigKey.KEY_FOOTER_BUTTON_DISABLED_ALPHA, ResourceType.FRACTION),
114 
115   // Disabled background color of the footer buttons
116   CONFIG_FOOTER_BUTTON_DISABLED_BG_COLOR(
117       PartnerConfigKey.KEY_FOOTER_BUTTON_DISABLED_BG_COLOR, ResourceType.COLOR),
118 
119   // Background color of the primary footer button
120   CONFIG_FOOTER_PRIMARY_BUTTON_BG_COLOR(
121       PartnerConfigKey.KEY_FOOTER_PRIMARY_BUTTON_BG_COLOR, ResourceType.COLOR),
122 
123   // Text color of the primary footer button
124   CONFIG_FOOTER_PRIMARY_BUTTON_TEXT_COLOR(
125       PartnerConfigKey.KEY_FOOTER_PRIMARY_BUTTON_TEXT_COLOR, ResourceType.COLOR),
126 
127   // Background color of the secondary footer button
128   CONFIG_FOOTER_SECONDARY_BUTTON_BG_COLOR(
129       PartnerConfigKey.KEY_FOOTER_SECONDARY_BUTTON_BG_COLOR, ResourceType.COLOR),
130 
131   // Text color of the secondary footer button
132   CONFIG_FOOTER_SECONDARY_BUTTON_TEXT_COLOR(
133       PartnerConfigKey.KEY_FOOTER_SECONDARY_BUTTON_TEXT_COLOR, ResourceType.COLOR),
134 
135   // Background color of layout
136   CONFIG_LAYOUT_BACKGROUND_COLOR(PartnerConfigKey.KEY_LAYOUT_BACKGROUND_COLOR, ResourceType.COLOR),
137 
138   // Margin start of the layout
139   CONFIG_LAYOUT_MARGIN_START(PartnerConfigKey.KEY_LAYOUT_MARGIN_START, ResourceType.DIMENSION),
140 
141   // Margin end of the layout
142   CONFIG_LAYOUT_MARGIN_END(PartnerConfigKey.KEY_LAYOUT_MARGIN_END, ResourceType.DIMENSION),
143 
144   // Text color of the header
145   CONFIG_HEADER_TEXT_COLOR(PartnerConfigKey.KEY_HEADER_TEXT_COLOR, ResourceType.COLOR),
146 
147   // Text size of the header
148   CONFIG_HEADER_TEXT_SIZE(PartnerConfigKey.KEY_HEADER_TEXT_SIZE, ResourceType.DIMENSION),
149 
150   // Font family of the header
151   CONFIG_HEADER_FONT_FAMILY(PartnerConfigKey.KEY_HEADER_FONT_FAMILY, ResourceType.STRING),
152 
153   // Margin top of the header text
154   CONFIG_HEADER_TEXT_MARGIN_TOP(
155       PartnerConfigKey.KEY_HEADER_TEXT_MARGIN_TOP, ResourceType.DIMENSION),
156 
157   // Margin bottom of the header text
158   CONFIG_HEADER_TEXT_MARGIN_BOTTOM(
159       PartnerConfigKey.KEY_HEADER_TEXT_MARGIN_BOTTOM, ResourceType.DIMENSION),
160 
161   // Gravity of the header, icon and description
162   CONFIG_LAYOUT_GRAVITY(PartnerConfigKey.KEY_LAYOUT_GRAVITY, ResourceType.STRING),
163 
164   // Margin top of the icon
165   CONFIG_ICON_MARGIN_TOP(PartnerConfigKey.KEY_ICON_MARGIN_TOP, ResourceType.DIMENSION),
166 
167   // Size of the icon
168   CONFIG_ICON_SIZE(PartnerConfigKey.KEY_ICON_SIZE, ResourceType.DIMENSION),
169 
170   // Background color of the header area
171   CONFIG_HEADER_AREA_BACKGROUND_COLOR(
172       PartnerConfigKey.KEY_HEADER_AREA_BACKGROUND_COLOR, ResourceType.COLOR),
173 
174   // Margin bottom of the header container
175   CONFIG_HEADER_CONTAINER_MARGIN_BOTTOM(
176       PartnerConfigKey.KEY_HEADER_CONTAINER_MARGIN_BOTTOM, ResourceType.DIMENSION),
177 
178   // Auto text size enabled status
179   CONFIG_HEADER_AUTO_SIZE_ENABLED(PartnerConfigKey.KEY_HEADER_AUTO_SIZE_ENABLED, ResourceType.BOOL),
180 
181   // Max text size of header when auto size enabled. Ignored if auto size is false.
182   CONFIG_HEADER_AUTO_SIZE_MAX_TEXT_SIZE(
183       PartnerConfigKey.KEY_HEADER_AUTO_SIZE_MAX_TEXT_SIZE, ResourceType.DIMENSION),
184 
185   // Min text size of header when auto size enabled. Ignored if auto size is false.
186   CONFIG_HEADER_AUTO_SIZE_MIN_TEXT_SIZE(
187       PartnerConfigKey.KEY_HEADER_AUTO_SIZE_MIN_TEXT_SIZE, ResourceType.DIMENSION),
188 
189   // The max lines of the max text size when auto size enabled. Ignored if auto size is false.
190   CONFIG_HEADER_AUTO_SIZE_MAX_LINE_OF_MAX_SIZE(
191       PartnerConfigKey.KEY_HEADER_AUTO_SIZE_MAX_LINE_OF_MAX_SIZE, ResourceType.INTEGER),
192 
193   // Extra line spacing of header when auto size enabled. Ignored if auto size is false.
194   CONFIG_HEADER_AUTO_SIZE_LINE_SPACING_EXTRA(
195       PartnerConfigKey.KEY_HEADER_AUTO_SIZE_LINE_SPACING_EXTRA, ResourceType.DIMENSION),
196 
197   // Text size of the description
198   CONFIG_DESCRIPTION_TEXT_SIZE(PartnerConfigKey.KEY_DESCRIPTION_TEXT_SIZE, ResourceType.DIMENSION),
199 
200   // Text color of the description
201   CONFIG_DESCRIPTION_TEXT_COLOR(PartnerConfigKey.KEY_DESCRIPTION_TEXT_COLOR, ResourceType.COLOR),
202 
203   // Link text color of the description
204   CONFIG_DESCRIPTION_LINK_TEXT_COLOR(
205       PartnerConfigKey.KEY_DESCRIPTION_LINK_TEXT_COLOR, ResourceType.COLOR),
206 
207   // Font family of the description
208   CONFIG_DESCRIPTION_FONT_FAMILY(PartnerConfigKey.KEY_DESCRIPTION_FONT_FAMILY, ResourceType.STRING),
209 
210   // Margin top of the description text
211   CONFIG_DESCRIPTION_TEXT_MARGIN_TOP(
212       PartnerConfigKey.KEY_DESCRIPTION_TEXT_MARGIN_TOP, ResourceType.DIMENSION),
213 
214   // Margin bottom of the description text
215   CONFIG_DESCRIPTION_TEXT_MARGIN_BOTTOM(
216       PartnerConfigKey.KEY_DESCRIPTION_TEXT_MARGIN_BOTTOM, ResourceType.DIMENSION),
217 
218   // Text size of the body content text
219   CONFIG_CONTENT_TEXT_SIZE(PartnerConfigKey.KEY_CONTENT_TEXT_SIZE, ResourceType.DIMENSION),
220 
221   // Text color of the body content text
222   CONFIG_CONTENT_TEXT_COLOR(PartnerConfigKey.KEY_CONTENT_TEXT_COLOR, ResourceType.COLOR),
223 
224   // Link text color of the body content text
225   CONFIG_CONTENT_LINK_TEXT_COLOR(PartnerConfigKey.KEY_CONTENT_LINK_TEXT_COLOR, ResourceType.COLOR),
226 
227   // Font family of the body content text
228   CONFIG_CONTENT_FONT_FAMILY(PartnerConfigKey.KEY_CONTENT_FONT_FAMILY, ResourceType.STRING),
229 
230   // Gravity of the body content text
231   CONFIG_CONTENT_LAYOUT_GRAVITY(PartnerConfigKey.KEY_CONTENT_LAYOUT_GRAVITY, ResourceType.STRING),
232 
233   // The padding top of the content
234   CONFIG_CONTENT_PADDING_TOP(PartnerConfigKey.KEY_CONTENT_PADDING_TOP, ResourceType.DIMENSION),
235 
236   // The text size of the content info.
237   CONFIG_CONTENT_INFO_TEXT_SIZE(
238       PartnerConfigKey.KEY_CONTENT_INFO_TEXT_SIZE, ResourceType.DIMENSION),
239 
240   // The font family of the content info.
241   CONFIG_CONTENT_INFO_FONT_FAMILY(
242       PartnerConfigKey.KEY_CONTENT_INFO_FONT_FAMILY, ResourceType.STRING),
243 
244   // The text line spacing extra of the content info.
245   CONFIG_CONTENT_INFO_LINE_SPACING_EXTRA(
246       PartnerConfigKey.KEY_CONTENT_INFO_LINE_SPACING_EXTRA, ResourceType.DIMENSION),
247 
248   // The icon size of the content info.
249   CONFIG_CONTENT_INFO_ICON_SIZE(
250       PartnerConfigKey.KEY_CONTENT_INFO_ICON_SIZE, ResourceType.DIMENSION),
251 
252   // The icon margin end of the content info.
253   CONFIG_CONTENT_INFO_ICON_MARGIN_END(
254       PartnerConfigKey.KEY_CONTENT_INFO_ICON_MARGIN_END, ResourceType.DIMENSION),
255 
256   // The padding top of the content info.
257   CONFIG_CONTENT_INFO_PADDING_TOP(
258       PartnerConfigKey.KEY_CONTENT_INFO_PADDING_TOP, ResourceType.DIMENSION),
259 
260   // The padding bottom of the content info.
261   CONFIG_CONTENT_INFO_PADDING_BOTTOM(
262       PartnerConfigKey.KEY_CONTENT_INFO_PADDING_BOTTOM, ResourceType.DIMENSION),
263 
264   // The title text size of list items.
265   CONFIG_ITEMS_TITLE_TEXT_SIZE(PartnerConfigKey.KEY_ITEMS_TITLE_TEXT_SIZE, ResourceType.DIMENSION),
266 
267   // The summary text size of list items.
268   CONFIG_ITEMS_SUMMARY_TEXT_SIZE(
269       PartnerConfigKey.KEY_ITEMS_SUMMARY_TEXT_SIZE, ResourceType.DIMENSION),
270 
271   // The summary margin top of list items.
272   CONFIG_ITEMS_SUMMARY_MARGIN_TOP(
273       PartnerConfigKey.KEY_ITEMS_SUMMARY_MARGIN_TOP, ResourceType.DIMENSION),
274 
275   // The title font family of list items.
276   CONFIG_ITEMS_TITLE_FONT_FAMILY(PartnerConfigKey.KEY_ITEMS_TITLE_FONT_FAMILY, ResourceType.STRING),
277 
278   // The summary font family of list items.
279   CONFIG_ITEMS_SUMMARY_FONT_FAMILY(
280       PartnerConfigKey.KEY_ITEMS_SUMMARY_FONT_FAMILY, ResourceType.STRING),
281 
282   // The padding top of list items.
283   CONFIG_ITEMS_PADDING_TOP(PartnerConfigKey.KEY_ITEMS_PADDING_TOP, ResourceType.DIMENSION),
284 
285   // The padding bottom of list items.
286   CONFIG_ITEMS_PADDING_BOTTOM(PartnerConfigKey.KEY_ITEMS_PADDING_BOTTOM, ResourceType.DIMENSION),
287 
288   // The minimum height of list items.
289   CONFIG_ITEMS_MIN_HEIGHT(PartnerConfigKey.KEY_ITEMS_MIN_HEIGHT, ResourceType.DIMENSION),
290 
291   // The divider of list items are showing on the pages.
292   CONFIG_ITEMS_DIVIDER_SHOWN(PartnerConfigKey.KEY_ITEMS_DIVIDER_SHOWN, ResourceType.BOOL),
293 
294   // The intrinsic width of the card view for foldabe/tablet.
295   CONFIG_CARD_VIEW_INTRINSIC_WIDTH(
296       PartnerConfigKey.KEY_CARD_VIEW_INTRINSIC_WIDTH, ResourceType.DIMENSION),
297 
298   // The intrinsic height of the card view for foldabe/tablet.
299   CONFIG_CARD_VIEW_INTRINSIC_HEIGHT(
300       PartnerConfigKey.KEY_CARD_VIEW_INTRINSIC_HEIGHT, ResourceType.DIMENSION),
301 
302   // The animation of loading screen used in those activities which is non of below type.
303   CONFIG_PROGRESS_ILLUSTRATION_DEFAULT(
304       PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_DEFAULT, ResourceType.ILLUSTRATION),
305 
306   // The animation of loading screen used in those activity which is processing account info or
307   // related functions.
308   // For example:com.google.android.setupwizard.LOAD_ADD_ACCOUNT_INTENT
309   CONFIG_PROGRESS_ILLUSTRATION_ACCOUNT(
310       PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_ACCOUNT, ResourceType.ILLUSTRATION),
311 
312   // The animation of loading screen used in those activity which is processing data connection.
313   // For example:com.android.setupwizard.CAPTIVE_PORTAL
314   CONFIG_PROGRESS_ILLUSTRATION_CONNECTION(
315       PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_CONNECTION, ResourceType.ILLUSTRATION),
316 
317   // The animation of loading screen used in those activities which is updating device.
318   // For example:com.google.android.setupwizard.COMPAT_EARLY_UPDATE
319   CONFIG_PROGRESS_ILLUSTRATION_UPDATE(
320       PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_UPDATE, ResourceType.ILLUSTRATION),
321 
322   // The animation of loading screen used in those activities which is finishing setup.
323   // For example:com.google.android.setupwizard.FINAL_HOLD
324   CONFIG_PROGRESS_ILLUSTRATION_FINAL_HOLD(
325       PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_FINAL_HOLD, ResourceType.ILLUSTRATION),
326 
327   // The animation of loading screen to define how long showing on the pages.
328   CONFIG_PROGRESS_ILLUSTRATION_DISPLAY_MINIMUM_MS(
329       PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_DISPLAY_MINIMUM_MS, ResourceType.INTEGER),
330 
331   // The animation for S+ devices used in those screens waiting for non of below type.
332   CONFIG_LOADING_LOTTIE_DEFAULT(
333       PartnerConfigKey.KEY_LOADING_LOTTIE_DEFAULT, ResourceType.ILLUSTRATION),
334 
335   // The animation for S+ devices used in those screens which is processing account info or related
336   // functions.
337   // For example:com.google.android.setupwizard.LOAD_ADD_ACCOUNT_INTENT
338   CONFIG_LOADING_LOTTIE_ACCOUNT(
339       PartnerConfigKey.KEY_LOADING_LOTTIE_ACCOUNT, ResourceType.ILLUSTRATION),
340 
341   // The animation for S+ devices used in those screens which is processing data connection.
342   // For example:com.android.setupwizard.CAPTIVE_PORTAL
343   CONFIG_LOADING_LOTTIE_CONNECTION(
344       PartnerConfigKey.KEY_LOADING_LOTTIE_CONNECTION, ResourceType.ILLUSTRATION),
345 
346   // The animation for S+ devices used in those screens which is updating devices.
347   // For example:com.google.android.setupwizard.COMPAT_EARLY_UPDATE
348   CONFIG_LOADING_LOTTIE_UPDATE(
349       PartnerConfigKey.KEY_LOADING_LOTTIE_UPDATE, ResourceType.ILLUSTRATION),
350 
351   // The animation for S+ devices used in those screens which is updating devices.
352   // For example:com.google.android.setupwizard.COMPAT_EARLY_UPDATE
353   CONFIG_LOADING_LOTTIE_FINAL_HOLD(
354       PartnerConfigKey.KEY_LOADING_LOTTIE_FINAL_HOLD, ResourceType.ILLUSTRATION),
355 
356   // The transition type to decide the transition between activities or fragments.
357   CONFIG_TRANSITION_TYPE(PartnerConfigKey.KEY_TRANSITION_TYPE, ResourceType.INTEGER),
358 
359   // The list of keypath and color map, applied to default animation when light theme.
360   CONFIG_LOTTIE_LIGHT_THEME_CUSTOMIZATION_DEFAULT(
361       PartnerConfigKey.KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_DEFAULT, ResourceType.STRING_ARRAY),
362 
363   // The list of keypath and color map, applied to account animation when light theme.
364   CONFIG_LOTTIE_LIGHT_THEME_CUSTOMIZATION_ACCOUNT(
365       PartnerConfigKey.KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_ACCOUNT, ResourceType.STRING_ARRAY),
366 
367   // The list of keypath and color map, applied to connection animation when light theme.
368   CONFIG_LOTTIE_LIGHT_THEME_CUSTOMIZATION_CONNECTION(
369       PartnerConfigKey.KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_CONNECTION, ResourceType.STRING_ARRAY),
370 
371   // The list of keypath and color map, applied to update animation when light theme.
372   CONFIG_LOTTIE_LIGHT_THEME_CUSTOMIZATION_UPDATE(
373       PartnerConfigKey.KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_UPDATE, ResourceType.STRING_ARRAY),
374 
375   // The list of keypath and color map, applied to update animation when light theme.
376   CONFIG_LOTTIE_LIGHT_THEME_CUSTOMIZATION_FINAL_HOLD(
377       PartnerConfigKey.KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_FINAL_HOLD, ResourceType.STRING_ARRAY),
378 
379   // The list of keypath and color map, applied to default animation when dark theme.
380   CONFIG_LOTTIE_DARK_THEME_CUSTOMIZATION_DEFAULT(
381       PartnerConfigKey.KEY_LOADING_DARK_THEME_CUSTOMIZATION_DEFAULT, ResourceType.STRING_ARRAY),
382 
383   // The list of keypath and color map, applied to account animation when dark theme.
384   CONFIG_LOTTIE_DARK_THEME_CUSTOMIZATION_ACCOUNT(
385       PartnerConfigKey.KEY_LOADING_DARK_THEME_CUSTOMIZATION_ACCOUNT, ResourceType.STRING_ARRAY),
386 
387   // The list of keypath and color map, applied to connection animation when dark theme.
388   CONFIG_LOTTIE_DARK_THEME_CUSTOMIZATION_CONNECTION(
389       PartnerConfigKey.KEY_LOADING_DARK_THEME_CUSTOMIZATION_CONNECTION, ResourceType.STRING_ARRAY),
390 
391   // The list of keypath and color map, applied to update animation when dark theme.
392   CONFIG_LOTTIE_DARK_THEME_CUSTOMIZATION_UPDATE(
393       PartnerConfigKey.KEY_LOADING_DARK_THEME_CUSTOMIZATION_UPDATE, ResourceType.STRING_ARRAY),
394 
395   // The list of keypath and color map, applied to final hold animation when dark theme.
396   CONFIG_LOTTIE_DARK_THEME_CUSTOMIZATION_FINAL_HOLD(
397       PartnerConfigKey.KEY_LOADING_DARK_THEME_CUSTOMIZATION_FINAL_HOLD, ResourceType.STRING_ARRAY),
398 
399   // The padding top of the content frame of loading layout.
400   CONFIG_LOADING_LAYOUT_PADDING_TOP(
401       PartnerConfigKey.KEY_LOADING_LAYOUT_CONTENT_PADDING_TOP, ResourceType.DIMENSION),
402 
403   // The padding start of the content frame of loading layout.
404   CONFIG_LOADING_LAYOUT_PADDING_START(
405       PartnerConfigKey.KEY_LOADING_LAYOUT_CONTENT_PADDING_START, ResourceType.DIMENSION),
406 
407   // The padding end of the content frame of loading layout.
408   CONFIG_LOADING_LAYOUT_PADDING_END(
409       PartnerConfigKey.KEY_LOADING_LAYOUT_CONTENT_PADDING_END, ResourceType.DIMENSION),
410 
411   // The padding bottom of the content frame of loading layout.
412   CONFIG_LOADING_LAYOUT_PADDING_BOTTOM(
413       PartnerConfigKey.KEY_LOADING_LAYOUT_CONTENT_PADDING_BOTTOM, ResourceType.DIMENSION),
414 
415   // The height of the header of the loading layout.
416   CONFIG_LOADING_LAYOUT_HEADER_HEIGHT(
417       PartnerConfigKey.KEY_LOADING_LAYOUT_HEADER_HEIGHT, ResourceType.DIMENSION);
418 
419   /** Resource type of the partner resources type. */
420   public enum ResourceType {
421     INTEGER,
422     BOOL,
423     COLOR,
424     DRAWABLE,
425     STRING,
426     DIMENSION,
427     FRACTION,
428     ILLUSTRATION,
429     STRING_ARRAY
430   }
431 
432   private final String resourceName;
433   private final ResourceType resourceType;
434 
getResourceType()435   public ResourceType getResourceType() {
436     return resourceType;
437   }
438 
getResourceName()439   public String getResourceName() {
440     return resourceName;
441   }
442 
PartnerConfig(@artnerConfigKey String resourceName, ResourceType type)443   PartnerConfig(@PartnerConfigKey String resourceName, ResourceType type) {
444     this.resourceName = resourceName;
445     this.resourceType = type;
446   }
447 }
448