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 import androidx.annotation.StringDef;
20 import androidx.annotation.VisibleForTesting;
21 import java.lang.annotation.Retention;
22 import java.lang.annotation.RetentionPolicy;
23 
24 /** Resource names that can be customized by partner overlay APK. */
25 @Retention(RetentionPolicy.SOURCE)
26 @StringDef({
27   PartnerConfigKey.KEY_STATUS_BAR_BACKGROUND,
28   PartnerConfigKey.KEY_LIGHT_STATUS_BAR,
29   PartnerConfigKey.KEY_NAVIGATION_BAR_BG_COLOR,
30   PartnerConfigKey.KEY_LIGHT_NAVIGATION_BAR,
31   PartnerConfigKey.KEY_NAVIGATION_BAR_DIVIDER_COLOR,
32   PartnerConfigKey.KEY_FOOTER_BAR_BG_COLOR,
33   PartnerConfigKey.KEY_FOOTER_BAR_MIN_HEIGHT,
34   PartnerConfigKey.KEY_FOOTER_BUTTON_FONT_FAMILY,
35   PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_ADD_ANOTHER,
36   PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_CANCEL,
37   PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_CLEAR,
38   PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_DONE,
39   PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_NEXT,
40   PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_OPT_IN,
41   PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_SKIP,
42   PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_STOP,
43   PartnerConfigKey.KEY_FOOTER_BUTTON_PADDING_TOP,
44   PartnerConfigKey.KEY_FOOTER_BUTTON_PADDING_BOTTOM,
45   PartnerConfigKey.KEY_FOOTER_BUTTON_RADIUS,
46   PartnerConfigKey.KEY_FOOTER_BUTTON_RIPPLE_ALPHA,
47   PartnerConfigKey.KEY_FOOTER_BUTTON_TEXT_SIZE,
48   PartnerConfigKey.KEY_FOOTER_BUTTON_TEXT_STYLE,
49   PartnerConfigKey.KEY_FOOTER_BUTTON_MIN_HEIGHT,
50   PartnerConfigKey.KEY_FOOTER_BUTTON_DISABLED_ALPHA,
51   PartnerConfigKey.KEY_FOOTER_BUTTON_DISABLED_BG_COLOR,
52   PartnerConfigKey.KEY_FOOTER_PRIMARY_BUTTON_BG_COLOR,
53   PartnerConfigKey.KEY_FOOTER_PRIMARY_BUTTON_TEXT_COLOR,
54   PartnerConfigKey.KEY_FOOTER_SECONDARY_BUTTON_BG_COLOR,
55   PartnerConfigKey.KEY_FOOTER_SECONDARY_BUTTON_TEXT_COLOR,
56   PartnerConfigKey.KEY_LAYOUT_BACKGROUND_COLOR,
57   PartnerConfigKey.KEY_LAYOUT_MARGIN_START,
58   PartnerConfigKey.KEY_LAYOUT_MARGIN_END,
59   PartnerConfigKey.KEY_HEADER_TEXT_SIZE,
60   PartnerConfigKey.KEY_HEADER_TEXT_COLOR,
61   PartnerConfigKey.KEY_HEADER_FONT_FAMILY,
62   PartnerConfigKey.KEY_HEADER_AREA_BACKGROUND_COLOR,
63   PartnerConfigKey.KEY_HEADER_TEXT_MARGIN_TOP,
64   PartnerConfigKey.KEY_HEADER_TEXT_MARGIN_BOTTOM,
65   PartnerConfigKey.KEY_HEADER_CONTAINER_MARGIN_BOTTOM,
66   PartnerConfigKey.KEY_HEADER_AUTO_SIZE_ENABLED,
67   PartnerConfigKey.KEY_HEADER_AUTO_SIZE_MAX_TEXT_SIZE,
68   PartnerConfigKey.KEY_HEADER_AUTO_SIZE_MIN_TEXT_SIZE,
69   PartnerConfigKey.KEY_HEADER_AUTO_SIZE_MAX_LINE_OF_MAX_SIZE,
70   PartnerConfigKey.KEY_HEADER_AUTO_SIZE_LINE_SPACING_EXTRA,
71   PartnerConfigKey.KEY_LAYOUT_GRAVITY,
72   PartnerConfigKey.KEY_ICON_MARGIN_TOP,
73   PartnerConfigKey.KEY_ICON_SIZE,
74   PartnerConfigKey.KEY_DESCRIPTION_TEXT_SIZE,
75   PartnerConfigKey.KEY_DESCRIPTION_TEXT_COLOR,
76   PartnerConfigKey.KEY_DESCRIPTION_LINK_TEXT_COLOR,
77   PartnerConfigKey.KEY_DESCRIPTION_FONT_FAMILY,
78   PartnerConfigKey.KEY_DESCRIPTION_TEXT_MARGIN_TOP,
79   PartnerConfigKey.KEY_DESCRIPTION_TEXT_MARGIN_BOTTOM,
80   PartnerConfigKey.KEY_CONTENT_TEXT_SIZE,
81   PartnerConfigKey.KEY_CONTENT_TEXT_COLOR,
82   PartnerConfigKey.KEY_CONTENT_LINK_TEXT_COLOR,
83   PartnerConfigKey.KEY_CONTENT_FONT_FAMILY,
84   PartnerConfigKey.KEY_CONTENT_LAYOUT_GRAVITY,
85   PartnerConfigKey.KEY_CONTENT_PADDING_TOP,
86   PartnerConfigKey.KEY_CONTENT_INFO_TEXT_SIZE,
87   PartnerConfigKey.KEY_CONTENT_INFO_FONT_FAMILY,
88   PartnerConfigKey.KEY_CONTENT_INFO_LINE_SPACING_EXTRA,
89   PartnerConfigKey.KEY_CONTENT_INFO_ICON_SIZE,
90   PartnerConfigKey.KEY_CONTENT_INFO_ICON_MARGIN_END,
91   PartnerConfigKey.KEY_CONTENT_INFO_PADDING_TOP,
92   PartnerConfigKey.KEY_CONTENT_INFO_PADDING_BOTTOM,
93   PartnerConfigKey.KEY_CARD_VIEW_INTRINSIC_WIDTH,
94   PartnerConfigKey.KEY_CARD_VIEW_INTRINSIC_HEIGHT,
95   PartnerConfigKey.KEY_ITEMS_TITLE_TEXT_SIZE,
96   PartnerConfigKey.KEY_ITEMS_SUMMARY_TEXT_SIZE,
97   PartnerConfigKey.KEY_ITEMS_SUMMARY_MARGIN_TOP,
98   PartnerConfigKey.KEY_ITEMS_TITLE_FONT_FAMILY,
99   PartnerConfigKey.KEY_ITEMS_SUMMARY_FONT_FAMILY,
100   PartnerConfigKey.KEY_ITEMS_PADDING_TOP,
101   PartnerConfigKey.KEY_ITEMS_PADDING_BOTTOM,
102   PartnerConfigKey.KEY_ITEMS_MIN_HEIGHT,
103   PartnerConfigKey.KEY_ITEMS_DIVIDER_SHOWN,
104   PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_DEFAULT,
105   PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_ACCOUNT,
106   PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_CONNECTION,
107   PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_UPDATE,
108   PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_FINAL_HOLD,
109   PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_DISPLAY_MINIMUM_MS,
110   PartnerConfigKey.KEY_LOADING_LOTTIE_ACCOUNT,
111   PartnerConfigKey.KEY_LOADING_LOTTIE_CONNECTION,
112   PartnerConfigKey.KEY_LOADING_LOTTIE_DEFAULT,
113   PartnerConfigKey.KEY_LOADING_LOTTIE_UPDATE,
114   PartnerConfigKey.KEY_LOADING_LOTTIE_FINAL_HOLD,
115   PartnerConfigKey.KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_DEFAULT,
116   PartnerConfigKey.KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_ACCOUNT,
117   PartnerConfigKey.KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_CONNECTION,
118   PartnerConfigKey.KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_UPDATE,
119   PartnerConfigKey.KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_FINAL_HOLD,
120   PartnerConfigKey.KEY_LOADING_DARK_THEME_CUSTOMIZATION_DEFAULT,
121   PartnerConfigKey.KEY_LOADING_DARK_THEME_CUSTOMIZATION_ACCOUNT,
122   PartnerConfigKey.KEY_LOADING_DARK_THEME_CUSTOMIZATION_CONNECTION,
123   PartnerConfigKey.KEY_LOADING_DARK_THEME_CUSTOMIZATION_UPDATE,
124   PartnerConfigKey.KEY_LOADING_DARK_THEME_CUSTOMIZATION_FINAL_HOLD,
125   PartnerConfigKey.KEY_TRANSITION_TYPE,
126   PartnerConfigKey.KEY_LOADING_LAYOUT_CONTENT_PADDING_TOP,
127   PartnerConfigKey.KEY_LOADING_LAYOUT_CONTENT_PADDING_START,
128   PartnerConfigKey.KEY_LOADING_LAYOUT_CONTENT_PADDING_END,
129   PartnerConfigKey.KEY_LOADING_LAYOUT_CONTENT_PADDING_BOTTOM,
130   PartnerConfigKey.KEY_LOADING_LAYOUT_HEADER_HEIGHT,
131 })
132 // TODO: can be removed and always reference PartnerConfig.getResourceName()?
133 @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
134 public @interface PartnerConfigKey {
135   // Status bar background color or illustration.
136   String KEY_STATUS_BAR_BACKGROUND = "setup_compat_status_bar_background";
137 
138   // The same as "WindowLightStatusBar". If set true, the status bar icons will be drawn such
139   // that it is compatible with a light status bar background
140   String KEY_LIGHT_STATUS_BAR = "setup_compat_light_status_bar";
141 
142   // Navigation bar background color
143   String KEY_NAVIGATION_BAR_BG_COLOR = "setup_compat_navigation_bar_bg_color";
144 
145   // The same as "windowLightNavigationBar". If set true, the navigation bar icons will be drawn
146   // such that it is compatible with a light navigation bar background.
147   String KEY_LIGHT_NAVIGATION_BAR = "setup_compat_light_navigation_bar";
148 
149   // Navigation bar divider color
150   String KEY_NAVIGATION_BAR_DIVIDER_COLOR = "setup_compat_navigation_bar_divider_color";
151 
152   // Background color of the footer bar.
153   String KEY_FOOTER_BAR_BG_COLOR = "setup_compat_footer_bar_bg_color";
154 
155   // The min height of the footer bar
156   String KEY_FOOTER_BAR_MIN_HEIGHT = "setup_compat_footer_bar_min_height";
157 
158   // The font face used in footer buttons. This must be a string reference to a font that is
159   // available in the system. Font references (@font or @xml) are not allowed.
160   String KEY_FOOTER_BUTTON_FONT_FAMILY = "setup_compat_footer_button_font_family";
161 
162   // The icon for "add another" action. Can be "@null" for no icon.
163   String KEY_FOOTER_BUTTON_ICON_ADD_ANOTHER = "setup_compat_footer_button_icon_add_another";
164 
165   // The icon for "cancel" action. Can be "@null" for no icon.
166   String KEY_FOOTER_BUTTON_ICON_CANCEL = "setup_compat_footer_button_icon_cancel";
167 
168   // The icon for "clear" action. Can be "@null" for no icon.
169   String KEY_FOOTER_BUTTON_ICON_CLEAR = "setup_compat_footer_button_icon_clear";
170 
171   // The icon for "done" action. Can be "@null" for no icon.
172   String KEY_FOOTER_BUTTON_ICON_DONE = "setup_compat_footer_button_icon_done";
173 
174   // The icon for "next" action. Can be "@null" for no icon.
175   String KEY_FOOTER_BUTTON_ICON_NEXT = "setup_compat_footer_button_icon_next";
176 
177   // The icon for "opt-in" action. Can be "@null" for no icon.
178   String KEY_FOOTER_BUTTON_ICON_OPT_IN = "setup_compat_footer_button_icon_opt_in";
179 
180   // The icon for "skip" action. Can be "@null" for no icon.
181   String KEY_FOOTER_BUTTON_ICON_SKIP = "setup_compat_footer_button_icon_skip";
182 
183   // The icon for "stop" action. Can be "@null" for no icon.
184   String KEY_FOOTER_BUTTON_ICON_STOP = "setup_compat_footer_button_icon_stop";
185 
186   // Top padding of the footer buttons
187   String KEY_FOOTER_BUTTON_PADDING_TOP = "setup_compat_footer_button_padding_top";
188 
189   // Bottom padding of the footer buttons
190   String KEY_FOOTER_BUTTON_PADDING_BOTTOM = "setup_compat_footer_button_padding_bottom";
191 
192   // Corner radius of the footer buttons
193   String KEY_FOOTER_BUTTON_RADIUS = "setup_compat_footer_button_radius";
194 
195   // Ripple color alpha of the footer buttons
196   String KEY_FOOTER_BUTTON_RIPPLE_ALPHA = "setup_compat_footer_button_ripple_alpha";
197 
198   // Text size of the footer buttons
199   String KEY_FOOTER_BUTTON_TEXT_SIZE = "setup_compat_footer_button_text_size";
200 
201   // The font face used in footer buttons {0 = NORMAL}, {1 = BOLD}, {2 = ITALIC}, {3 = BOLD_ITALIC}
202   String KEY_FOOTER_BUTTON_TEXT_STYLE = "setup_compat_footer_button_text_style";
203 
204   // The min height of the footer buttons
205   String KEY_FOOTER_BUTTON_MIN_HEIGHT = "setup_compat_footer_button_min_height";
206 
207   // Disabled background alpha of the footer buttons
208   String KEY_FOOTER_BUTTON_DISABLED_ALPHA = "setup_compat_footer_button_disabled_alpha";
209 
210   // Disabled background color of the footer buttons
211   String KEY_FOOTER_BUTTON_DISABLED_BG_COLOR = "setup_compat_footer_button_disabled_bg_color";
212 
213   // Background color of the primary footer button
214   String KEY_FOOTER_PRIMARY_BUTTON_BG_COLOR = "setup_compat_footer_primary_button_bg_color";
215 
216   // Text color of the primary footer button
217   String KEY_FOOTER_PRIMARY_BUTTON_TEXT_COLOR = "setup_compat_footer_primary_button_text_color";
218 
219   // Background color of the secondary footer button
220   String KEY_FOOTER_SECONDARY_BUTTON_BG_COLOR = "setup_compat_footer_secondary_button_bg_color";
221 
222   // Text color of the secondary footer button
223   String KEY_FOOTER_SECONDARY_BUTTON_TEXT_COLOR = "setup_compat_footer_secondary_button_text_color";
224 
225   // Background color of layout
226   String KEY_LAYOUT_BACKGROUND_COLOR = "setup_design_layout_bg_color";
227 
228   // Margin start of the layout
229   String KEY_LAYOUT_MARGIN_START = "setup_design_layout_margin_start";
230 
231   // Margin end of the layout
232   String KEY_LAYOUT_MARGIN_END = "setup_design_layout_margin_end";
233 
234   // Text size of the header
235   String KEY_HEADER_TEXT_SIZE = "setup_design_header_text_size";
236 
237   // Text color of the header
238   String KEY_HEADER_TEXT_COLOR = "setup_design_header_text_color";
239 
240   // Font family of the header
241   String KEY_HEADER_FONT_FAMILY = "setup_design_header_font_family";
242 
243   // Margin top of the header text
244   String KEY_HEADER_TEXT_MARGIN_TOP = "setup_design_header_text_margin_top";
245 
246   // Margin bottom of the header text
247   String KEY_HEADER_TEXT_MARGIN_BOTTOM = "setup_design_header_text_margin_bottom";
248 
249   // Gravity of the header, icon and description
250   String KEY_LAYOUT_GRAVITY = "setup_design_layout_gravity";
251 
252   // Margin top of the icon
253   String KEY_ICON_MARGIN_TOP = "setup_design_icon_margin_top";
254 
255   // Size of the icon
256   String KEY_ICON_SIZE = "setup_design_icon_size";
257 
258   // Background color of the header area
259   String KEY_HEADER_AREA_BACKGROUND_COLOR = "setup_design_header_area_background_color";
260 
261   // Margin bottom of the header container
262   String KEY_HEADER_CONTAINER_MARGIN_BOTTOM = "setup_design_header_container_margin_bottom";
263 
264   // Auto text size enabled status
265   String KEY_HEADER_AUTO_SIZE_ENABLED = "setup_design_header_auto_size_enabled";
266 
267   // Max text size of header when auto size enabled. Ignored if auto size is false.
268   String KEY_HEADER_AUTO_SIZE_MAX_TEXT_SIZE = "setup_design_header_auto_size_max_text_size";
269 
270   // Min text size of header when auto size enabled. Ignored if auto size is false.
271   String KEY_HEADER_AUTO_SIZE_MIN_TEXT_SIZE = "setup_design_header_auto_size_min_text_size";
272 
273   // The max lines of the max text size when auto size enabled. Ignored if auto size is false.
274   String KEY_HEADER_AUTO_SIZE_MAX_LINE_OF_MAX_SIZE =
275       "setup_design_header_auto_size_max_line_of_max_size";
276 
277   // Extra line spacing of header when auto size enabled. Ignored if auto size is false.
278   String KEY_HEADER_AUTO_SIZE_LINE_SPACING_EXTRA =
279       "setup_design_header_auto_size_line_spacing_extra";
280 
281   // Text size of the description
282   String KEY_DESCRIPTION_TEXT_SIZE = "setup_design_description_text_size";
283 
284   // Text color of the description
285   String KEY_DESCRIPTION_TEXT_COLOR = "setup_design_description_text_color";
286 
287   // Link text color of the description
288   String KEY_DESCRIPTION_LINK_TEXT_COLOR = "setup_design_description_link_text_color";
289 
290   // Font family of the description
291   String KEY_DESCRIPTION_FONT_FAMILY = "setup_design_description_font_family";
292 
293   // Margin top of the header text
294   String KEY_DESCRIPTION_TEXT_MARGIN_TOP = "setup_design_description_text_margin_top";
295 
296   // Margin bottom of the header text
297   String KEY_DESCRIPTION_TEXT_MARGIN_BOTTOM = "setup_design_description_text_margin_bottom";
298 
299   // Text size of the body content text
300   String KEY_CONTENT_TEXT_SIZE = "setup_design_content_text_size";
301 
302   // Text color of the body content text
303   String KEY_CONTENT_TEXT_COLOR = "setup_design_content_text_color";
304 
305   // Link text color of the body content text
306   String KEY_CONTENT_LINK_TEXT_COLOR = "setup_design_content_link_text_color";
307 
308   // Font family of the body content text
309   String KEY_CONTENT_FONT_FAMILY = "setup_design_content_font_family";
310 
311   // Gravity of the body content text
312   String KEY_CONTENT_LAYOUT_GRAVITY = "setup_design_content_layout_gravity";
313 
314   // The padding top of the content
315   String KEY_CONTENT_PADDING_TOP = "setup_design_content_padding_top";
316 
317   // The text size of the content info.
318   String KEY_CONTENT_INFO_TEXT_SIZE = "setup_design_content_info_text_size";
319 
320   // The font family of the content info.
321   String KEY_CONTENT_INFO_FONT_FAMILY = "setup_design_content_info_font_family";
322 
323   // The text line spacing extra of the content info.
324   String KEY_CONTENT_INFO_LINE_SPACING_EXTRA = "setup_design_content_info_line_spacing_extra";
325 
326   // The icon size of the content info.
327   String KEY_CONTENT_INFO_ICON_SIZE = "setup_design_content_info_icon_size";
328 
329   // The icon margin end of the content info.
330   String KEY_CONTENT_INFO_ICON_MARGIN_END = "setup_design_content_info_icon_margin_end";
331 
332   // The padding top of the content info.
333   String KEY_CONTENT_INFO_PADDING_TOP = "setup_design_content_info_padding_top";
334 
335   // The padding bottom of the content info.
336   String KEY_CONTENT_INFO_PADDING_BOTTOM = "setup_design_content_info_padding_bottom";
337 
338   // The title text size of list items.
339   String KEY_ITEMS_TITLE_TEXT_SIZE = "setup_design_items_title_text_size";
340 
341   // The summary text size of list items.
342   String KEY_ITEMS_SUMMARY_TEXT_SIZE = "setup_design_items_summary_text_size";
343 
344   // The summary margin top of list items.
345   String KEY_ITEMS_SUMMARY_MARGIN_TOP = "setup_design_items_summary_margin_top";
346 
347   // The title font family of list items.
348   String KEY_ITEMS_TITLE_FONT_FAMILY = "setup_design_items_title_font_family";
349 
350   // The summary font family of list items.
351   String KEY_ITEMS_SUMMARY_FONT_FAMILY = "setup_design_items_summary_font_family";
352 
353   // The padding top of list items.
354   String KEY_ITEMS_PADDING_TOP = "setup_design_items_padding_top";
355 
356   // The padding bottom of list items.
357   String KEY_ITEMS_PADDING_BOTTOM = "setup_design_items_padding_bottom";
358 
359   // The minimum height of list items.
360   String KEY_ITEMS_MIN_HEIGHT = "setup_design_items_min_height";
361 
362   // The divider of list items are showing.
363   String KEY_ITEMS_DIVIDER_SHOWN = "setup_design_items_divider_shown";
364 
365   // The intrinsic width of the card view for foldabe/tablet.
366   String KEY_CARD_VIEW_INTRINSIC_WIDTH = "setup_design_card_view_intrinsic_width";
367 
368   // The intrinsic height of the card view for foldabe/tablet.
369   String KEY_CARD_VIEW_INTRINSIC_HEIGHT = "setup_design_card_view_intrinsic_height";
370 
371   // The animation of loading screen used in those activities which is non of below type.
372   String KEY_PROGRESS_ILLUSTRATION_DEFAULT = "progress_illustration_custom_default";
373 
374   // The animation of loading screen used in those activity which is processing account info or
375   // related functions.
376   // For example:com.google.android.setupwizard.LOAD_ADD_ACCOUNT_INTENT
377   String KEY_PROGRESS_ILLUSTRATION_ACCOUNT = "progress_illustration_custom_account";
378 
379   // The animation of loading screen used in those activity which is processing data connection.
380   // For example:com.android.setupwizard.CAPTIVE_PORTAL
381   String KEY_PROGRESS_ILLUSTRATION_CONNECTION = "progress_illustration_custom_connection";
382 
383   // The animation of loading screen used in those activities which is updating device.
384   // For example:com.google.android.setupwizard.COMPAT_EARLY_UPDATE
385   String KEY_PROGRESS_ILLUSTRATION_UPDATE = "progress_illustration_custom_update";
386 
387   // The animation of loading screen used in those activities which is updating device.
388   // For example:com.google.android.setupwizard.FINAL_HOLD
389   String KEY_PROGRESS_ILLUSTRATION_FINAL_HOLD = "final_hold_custom_illustration";
390 
391   // The minimum illustration display time, set to 0 may cause the illustration stuck
392   String KEY_PROGRESS_ILLUSTRATION_DISPLAY_MINIMUM_MS = "progress_illustration_display_minimum_ms";
393 
394   // The animation for S+ devices used in those screens waiting for non of below type.
395   String KEY_LOADING_LOTTIE_DEFAULT = "loading_animation_custom_default";
396 
397   // The animation for S+ devices used in those screens which is processing account info or related
398   // functions.
399   // For example:com.google.android.setupwizard.LOAD_ADD_ACCOUNT_INTENT
400   String KEY_LOADING_LOTTIE_ACCOUNT = "loading_animation_custom_account";
401 
402   // The animation for S+ devices used in those screens which is processing data connection.
403   // For example:com.android.setupwizard.CAPTIVE_PORTAL
404   String KEY_LOADING_LOTTIE_CONNECTION = "loading_animation_custom_connection";
405 
406   // The animation for S+ devices used in those screens which is updating devices.
407   // For example:com.google.android.setupwizard.COMPAT_EARLY_UPDATE
408   String KEY_LOADING_LOTTIE_UPDATE = "loading_animation_custom_update";
409 
410   // The animation for S+ devices used in those screens which is updating devices.
411   // For example:com.google.android.setupwizard.FINAL_HOLD
412   String KEY_LOADING_LOTTIE_FINAL_HOLD = "loading_animation_custom_final_hold";
413 
414   // A string-array to list all the key path and color map for default animation for light theme.
415   // For example: background:#FFFFFF
416   String KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_DEFAULT =
417       "loading_light_theme_customization_default";
418 
419   // A string-array to list all the key path and color map for account animation for light theme.
420   // For example: background:#FFFFFF
421   String KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_ACCOUNT =
422       "loading_light_theme_customization_account";
423 
424   // A string-array to list all the key path and color map for connection animation for light theme.
425   // For example: background:#FFFFFF
426   String KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_CONNECTION =
427       "loading_light_theme_customization_connection";
428 
429   // A string-array to list all the key path and color map for update animation for light theme.
430   // For example: background:#FFFFFF
431   String KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_UPDATE = "loading_light_theme_customization_update";
432 
433   // A string-array to list all the key path and color map for final hold animation for light theme.
434   // For example: background:#FFFFFF
435   String KEY_LOADING_LIGHT_THEME_CUSTOMIZATION_FINAL_HOLD =
436       "loading_light_theme_customization_final_hold";
437 
438   // A string-array to list all the key path and color map for default animation for dark theme.
439   // For example: background:#000000
440   String KEY_LOADING_DARK_THEME_CUSTOMIZATION_DEFAULT = "loading_dark_theme_customization_default";
441 
442   // A string-array to list all the key path and color map for account animation for dark theme.
443   // For example: background:#000000
444   String KEY_LOADING_DARK_THEME_CUSTOMIZATION_ACCOUNT = "loading_dark_theme_customization_account";
445 
446   // A string-array to list all the key path and color map for connection animation for dark theme.
447   // For example: background:#000000
448   String KEY_LOADING_DARK_THEME_CUSTOMIZATION_CONNECTION =
449       "loading_dark_theme_customization_connection";
450 
451   // A string-array to list all the key path and color map for update animation for dark theme.
452   // For example: background:#000000
453   String KEY_LOADING_DARK_THEME_CUSTOMIZATION_UPDATE = "loading_dark_theme_customization_update";
454 
455   // A string-array to list all the key path and color map for final hold animation for dark theme.
456   // For example: background:#000000
457   String KEY_LOADING_DARK_THEME_CUSTOMIZATION_FINAL_HOLD =
458       "loading_dark_theme_customization_final_hold";
459 
460   // The transition type between activities
461   String KEY_TRANSITION_TYPE = "setup_design_transition_type";
462 
463   // A padding top of the content frame of loading layout.
464   String KEY_LOADING_LAYOUT_CONTENT_PADDING_TOP = "loading_layout_content_padding_top";
465 
466   // A padding start of the content frame of loading layout.
467   String KEY_LOADING_LAYOUT_CONTENT_PADDING_START = "loading_layout_content_padding_start";
468 
469   // A padding end of the content frame of loading layout.
470   String KEY_LOADING_LAYOUT_CONTENT_PADDING_END = "loading_layout_content_padding_end";
471 
472   // A padding bottom of the content frame of loading layout.
473   String KEY_LOADING_LAYOUT_CONTENT_PADDING_BOTTOM = "loading_layout_content_padding_bottom";
474 
475   // A height of the header of loading layout.
476   String KEY_LOADING_LAYOUT_HEADER_HEIGHT = "loading_layout_header_height";
477 }
478