summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSetup Wizard Team <android-setup-team-eng@google.com>2019-04-25 10:23:55 +0800
committerMaurice Lam <yukl@google.com>2019-04-30 06:31:47 +0000
commite434fa9fb8a01858896b6da35793abbf3ecd9999 (patch)
treea0a725cca88493a723c03ef480b9dd5207a5d769
parentdc2a10493b3890ce1a7942b8858043b79bfadb13 (diff)
downloadsetupcompat-e434fa9fb8a01858896b6da35793abbf3ecd9999.tar.gz
Import updated Android SetupCompat Library 245161256
Copied from google3/third_party/java_src/android_libs/setupcompat Bug: 129790844 Bug: 131462748 Test: mm Included changes: - 245161256 cl/244113160 move layout background to heavy theme, renam... - 244778670 Adds run on ui thread check for set the footer button. - 244113160 Background color should only apply when heavy theme. PiperOrigin-RevId: 245161256 Change-Id: Ia4759ea204a95ed9108387bd3c82e3682c0fb69d
-rw-r--r--main/java/com/google/android/setupcompat/PartnerCustomizationLayout.java15
-rw-r--r--main/java/com/google/android/setupcompat/internal/Preconditions.java12
-rw-r--r--main/java/com/google/android/setupcompat/template/FooterBarMixin.java7
-rw-r--r--partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java2
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";