diff options
Diffstat (limited to 'main/java/com/google/android/setupcompat/PartnerCustomizationLayout.java')
-rw-r--r-- | main/java/com/google/android/setupcompat/PartnerCustomizationLayout.java | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/main/java/com/google/android/setupcompat/PartnerCustomizationLayout.java b/main/java/com/google/android/setupcompat/PartnerCustomizationLayout.java index 37cc358..21928c8 100644 --- a/main/java/com/google/android/setupcompat/PartnerCustomizationLayout.java +++ b/main/java/com/google/android/setupcompat/PartnerCustomizationLayout.java @@ -76,6 +76,8 @@ public class PartnerCustomizationLayout extends TemplateLayout { private Activity activity; + private PersistableBundle layoutTypeBundle; + @CanIgnoreReturnValue public PartnerCustomizationLayout(Context context) { this(context, 0, 0); @@ -92,10 +94,6 @@ public class PartnerCustomizationLayout extends TemplateLayout { init(null, R.attr.sucLayoutTheme); } - @VisibleForTesting - final ViewTreeObserver.OnWindowFocusChangeListener windowFocusChangeListener = - this::onFocusChanged; - @CanIgnoreReturnValue public PartnerCustomizationLayout(Context context, AttributeSet attrs) { super(context, attrs); @@ -109,6 +107,10 @@ public class PartnerCustomizationLayout extends TemplateLayout { init(attrs, defStyleAttr); } + @VisibleForTesting + final ViewTreeObserver.OnWindowFocusChangeListener windowFocusChangeListener = + this::onFocusChanged; + private void init(AttributeSet attrs, int defStyleAttr) { if (isInEditMode()) { return; @@ -242,9 +244,15 @@ public class PartnerCustomizationLayout extends TemplateLayout { ? secondaryButton.getMetrics("SecondaryFooterButton") : PersistableBundle.EMPTY; + PersistableBundle layoutTypeMetrics = + (layoutTypeBundle != null) ? layoutTypeBundle : PersistableBundle.EMPTY; + PersistableBundle persistableBundle = PersistableBundles.mergeBundles( - footerBarMixin.getLoggingMetrics(), primaryButtonMetrics, secondaryButtonMetrics); + footerBarMixin.getLoggingMetrics(), + primaryButtonMetrics, + secondaryButtonMetrics, + layoutTypeMetrics); SetupMetricsLogger.logCustomEvent( getContext(), @@ -256,6 +264,20 @@ public class PartnerCustomizationLayout extends TemplateLayout { } } + /** + * PartnerCustomizationLayout is a template layout for different type of GlifLayout. + * This method allows each type of layout to report its "GlifLayoutType". + */ + public void setLayoutTypeMetrics(PersistableBundle bundle) { + this.layoutTypeBundle = bundle; + } + + /** Returns a {@link PersistableBundle} contains key "GlifLayoutType". */ + @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED) + public PersistableBundle getLayoutTypeMetrics() { + return this.layoutTypeBundle; + } + public static Activity lookupActivityFromContext(Context context) { if (context instanceof Activity) { return (Activity) context; |