diff options
4 files changed, 20 insertions, 16 deletions
diff --git a/main/java/com/google/android/setupcompat/PartnerCustomizationLayout.java b/main/java/com/google/android/setupcompat/PartnerCustomizationLayout.java index f144242..95d6af4 100644 --- a/main/java/com/google/android/setupcompat/PartnerCustomizationLayout.java +++ b/main/java/com/google/android/setupcompat/PartnerCustomizationLayout.java @@ -25,7 +25,6 @@ import android.os.Build; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.os.PersistableBundle; -import androidx.annotation.ColorInt; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; @@ -39,7 +38,6 @@ import com.google.android.setupcompat.internal.TemplateLayout; import com.google.android.setupcompat.logging.CustomEvent; import com.google.android.setupcompat.logging.MetricKey; import com.google.android.setupcompat.logging.SetupMetricsLogger; -import com.google.android.setupcompat.partnerconfig.PartnerConfig; import com.google.android.setupcompat.partnerconfig.PartnerConfigHelper; import com.google.android.setupcompat.template.FooterBarMixin; import com.google.android.setupcompat.template.FooterButton; @@ -116,10 +114,6 @@ public class PartnerCustomizationLayout extends TemplateLayout { activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } - - if (shouldApplyPartnerResource()) { - updateContentBackgroundColorWithPartnerConfig(); - } } @Override @@ -261,13 +255,4 @@ public class PartnerCustomizationLayout extends TemplateLayout { } return true; } - - /** Updates the background color of this layout with the partner-customizable background color. */ - private void updateContentBackgroundColorWithPartnerConfig() { - @ColorInt - int color = - PartnerConfigHelper.get(getContext()) - .getColor(getContext(), PartnerConfig.CONFIG_LAYOUT_BACKGROUND_COLOR); - this.getRootView().setBackgroundColor(color); - } } diff --git a/main/java/com/google/android/setupcompat/internal/Preconditions.java b/main/java/com/google/android/setupcompat/internal/Preconditions.java index b433808..259377c 100644 --- a/main/java/com/google/android/setupcompat/internal/Preconditions.java +++ b/main/java/com/google/android/setupcompat/internal/Preconditions.java @@ -15,6 +15,8 @@ */ package com.google.android.setupcompat.internal; +import android.os.Looper; + /** * Static convenience methods that help a method or constructor check whether it was invoked * correctly (that is, whether its <i>preconditions</i> were met). @@ -49,4 +51,14 @@ public final class Preconditions { } return reference; } + + /** + * Ensures that this method is called from the main thread, otherwise an exception will be thrown. + */ + public static void ensureOnMainThread(String whichMethod) { + if (Looper.myLooper() == Looper.getMainLooper()) { + return; + } + throw new IllegalStateException(whichMethod + " must be called from the UI thread."); + } } diff --git a/main/java/com/google/android/setupcompat/template/FooterBarMixin.java b/main/java/com/google/android/setupcompat/template/FooterBarMixin.java index c9c76b0..f623382 100644 --- a/main/java/com/google/android/setupcompat/template/FooterBarMixin.java +++ b/main/java/com/google/android/setupcompat/template/FooterBarMixin.java @@ -16,6 +16,8 @@ package com.google.android.setupcompat.template; +import static com.google.android.setupcompat.internal.Preconditions.ensureOnMainThread; + import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.content.Context; @@ -36,6 +38,7 @@ import androidx.annotation.AttrRes; import androidx.annotation.ColorInt; import androidx.annotation.IdRes; import androidx.annotation.LayoutRes; +import androidx.annotation.MainThread; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StyleRes; @@ -226,7 +229,9 @@ public class FooterBarMixin implements Mixin { } /** Sets primary button for footer. */ + @MainThread public void setPrimaryButton(FooterButton footerButton) { + ensureOnMainThread("setPrimaryButton"); LinearLayout buttonContainer = ensureFooterInflated(); // Set the default theme if theme is not set, or when running in setup flow. @@ -284,7 +289,9 @@ public class FooterBarMixin implements Mixin { } /** Sets secondary button for footer. */ + @MainThread public void setSecondaryButton(FooterButton footerButton) { + ensureOnMainThread("setSecondaryButton"); LinearLayout buttonContainer = ensureFooterInflated(); // Set the default theme if theme is not set, or when running in setup flow. diff --git a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java index 00b49fd..87f51ba 100644 --- a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java +++ b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java @@ -134,7 +134,7 @@ public @interface PartnerConfigKey { String KEY_FOOTER_SECONDARY_BUTTON_TEXT_COLOR = "setup_compat_footer_secondary_button_text_color"; // Background color of layout - String KEY_LAYOUT_BACKGROUND_COLOR = "setup_compat_layout_bg_color"; + String KEY_LAYOUT_BACKGROUND_COLOR = "setup_design_layout_bg_color"; // Text size of the header String KEY_HEADER_TEXT_SIZE = "setup_design_header_text_size"; |