diff options
Diffstat (limited to 'partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java')
-rw-r--r-- | partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java index aca9a07..0db37ae 100644 --- a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java +++ b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java @@ -69,6 +69,9 @@ public class PartnerConfigHelper { @VisibleForTesting public static final String IS_NEUTRAL_BUTTON_STYLE_ENABLED_METHOD = "isNeutralButtonStyleEnabled"; + @VisibleForTesting + public static final String GET_SUW_DEFAULT_THEME_STRING_METHOD = "suwDefaultThemeString"; + @VisibleForTesting public static final String SUW_PACKAGE_NAME = "com.google.android.setupwizard"; @VisibleForTesting public static final String MATERIAL_YOU_RESOURCE_SUFFIX = "_material_you"; @@ -82,6 +85,8 @@ public class PartnerConfigHelper { @VisibleForTesting public static Bundle applyNeutralButtonStyleBundle = null; + @VisibleForTesting public static Bundle suwDefaultThemeBundle = null; + private static PartnerConfigHelper instance = null; @VisibleForTesting Bundle resultBundle = null; @@ -93,8 +98,7 @@ public class PartnerConfigHelper { private static int savedConfigUiMode; - @VisibleForTesting - public static int savedOrientation = Configuration.ORIENTATION_PORTRAIT; + @VisibleForTesting public static int savedOrientation = Configuration.ORIENTATION_PORTRAIT; /** * When testing related to fake PartnerConfigHelper instance, should sync the following saved @@ -622,6 +626,7 @@ public class PartnerConfigHelper { applyMaterialYouConfigBundle = null; applyDynamicColorBundle = null; applyNeutralButtonStyleBundle = null; + suwDefaultThemeBundle = null; } /** @@ -711,6 +716,34 @@ public class PartnerConfigHelper { && applyMaterialYouConfigBundle.getBoolean(IS_MATERIAL_YOU_STYLE_ENABLED_METHOD, false)); } + /** + * Returns default glif theme name string from setupwizard, or if the setupwizard has not + * supported this api, return a null string. + */ + @Nullable + public static String getSuwDefaultThemeString(@NonNull Context context) { + if (suwDefaultThemeBundle == null || suwDefaultThemeBundle.isEmpty()) { + try { + suwDefaultThemeBundle = + context + .getContentResolver() + .call( + getContentUri(), + GET_SUW_DEFAULT_THEME_STRING_METHOD, + /* arg= */ null, + /* extras= */ null); + } catch (IllegalArgumentException | SecurityException exception) { + Log.w(TAG, "SetupWizard default theme status unknown; return as null."); + suwDefaultThemeBundle = null; + return null; + } + } + if (suwDefaultThemeBundle == null || suwDefaultThemeBundle.isEmpty()) { + return null; + } + return suwDefaultThemeBundle.getString(GET_SUW_DEFAULT_THEME_STRING_METHOD); + } + /** Returns true if the SetupWizard supports the dynamic color during setup flow. */ public static boolean isSetupWizardDynamicColorEnabled(@NonNull Context context) { if (applyDynamicColorBundle == null) { |