Import updated Android Setupdesign Library 432397943

Copied from google3/third_party/java_src/android_libs/setupdesign

Test: mm

Included changes:
  - 432397943 Edge to Edge, eliminate the navigation bar divider.
  - 432341362 Make the loadinglayout header height match parent in land...
  - 432061547 Fix the wrong padding top on landscape loading screen
  - 431614278 Updates the new color scheme
  - 430955940 Rollin the header section support again(cl/430632447) and...
  - 430906695 Automated g4 rollback of changelist 430632447.
  - 430646242 Fix card view fit layout in fullscreen mode
  - 430632447 [SetupDesign] update default value for Glifv4 - header se...
  - 429495738 migrate some material style to Glifv4 theme.
  - 428987926 Update the edit box corner radius.
  - 428716981 Add a partnerconfig for loading animation finished.
  - 428618706 Cloned CL/423965608
  - 428389234 Update targetSdkVersion to 32 of unit tests
  - 423478198 Add the sudDividerShown in recycler mixin.
  - 422744910 [Tablet] Add default values of GlifLayout into setupdesig...
  - 422734768 Add target api check for android attribute.

PiperOrigin-RevId: 432397943
Change-Id: I700a6b49ac4f2830833dc8f7364beb9f72c3b4a0
diff --git a/exempting_lint_checks.txt b/exempting_lint_checks.txt
index b6d4d30..949488a 100644
--- a/exempting_lint_checks.txt
+++ b/exempting_lint_checks.txt
@@ -63,3 +63,29 @@
 third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/RichTextView.java: DiscouragedApi: .getIdentifier(textAppearance, "style", context.getPackageName());
 third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/StickyHeaderListView.java: CustomViewStyleable: .obtainStyledAttributes(attrs, R.styleable.SudStickyHeaderListView, defStyleAttr, 0);
 third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/StickyHeaderScrollView.java: ObsoleteSdkInt: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/GlifLayout.java: CustomViewStyleable: getContext().obtainStyledAttributes(attrs, R.styleable.SudGlifLayout, defStyleAttr, 0);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/GlifLayout.java: NewApi: LayoutStyler.applyPartnerCustomizationExtraPaddingStyle(view);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/GlifLayout.java: NewApi: tryApplyPartnerCustomizationContentPaddingTopStyle(view);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/GlifListLayout.java: NewApi: tryApplyPartnerCustomizationContentPaddingTopStyle(view);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/GlifRecyclerLayout.java: NewApi: tryApplyPartnerCustomizationContentPaddingTopStyle(view);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/SetupWizardLayout.java: CustomViewStyleable: .obtainStyledAttributes(attrs, R.styleable.SudSetupWizardLayout, defStyleAttr, 0);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/items/ExpandableSwitchItem.java: NewApi: LayoutStyler.applyPartnerCustomizationLayoutPaddingStyle(content);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/items/Item.java: NewApi: ItemStyler.applyPartnerCustomizationItemStyle(view);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/items/Item.java: NewApi: LayoutStyler.applyPartnerCustomizationLayoutPaddingStyle(view);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/items/RecyclerItemAdapter.java: NotifyDataSetChanged: notifyDataSetChanged();
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/template/HeaderMixin.java: NewApi: LayoutStyler.applyPartnerCustomizationExtraPaddingStyle(headerAreaView);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/util/Partner.java: DiscouragedApi: return resources.getIdentifier(name, defType, packageName);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/util/TextViewPartnerStyler.java: NewApi: ((RichTextView) textView).setSpanTypeface(linkFont);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/FillContentLayout.java: CustomViewStyleable: context.obtainStyledAttributes(attrs, R.styleable.SudFillContentLayout, defStyleAttr, 0);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/HeaderRecyclerView.java: CustomViewStyleable: .obtainStyledAttributes(attrs, R.styleable.SudHeaderRecyclerView, defStyleAttr, 0);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/HeaderRecyclerView.java: NotifyDataSetChanged: notifyDataSetChanged();
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/IconUniformityAppImageView.java: AnnotateVersionCheck: private static final boolean ON_L_PLUS = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/Illustration.java: CustomViewStyleable: getContext().obtainStyledAttributes(attrs, R.styleable.SudIllustration, defStyleAttr, 0);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/IllustrationVideoView.java: CustomViewStyleable: context.obtainStyledAttributes(attrs, R.styleable.SudIllustrationVideoView);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/IntrinsicSizeFrameLayout.java: CustomViewStyleable: attrs, R.styleable.SudIntrinsicSizeFrameLayout, defStyleAttr, 0);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/NavigationBar.java: ResourceType: @StyleableRes int colorBackground = 2;
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/NavigationBar.java: ResourceType: @StyleableRes int colorForeground = 1;
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/RichTextView.java: DiscouragedApi: .getIdentifier(textAppearance, "style", context.getPackageName());
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/RichTextView.java: NewApi: text = getRichText(getContext(), text);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/StickyHeaderListView.java: CustomViewStyleable: .obtainStyledAttributes(attrs, R.styleable.SudStickyHeaderListView, defStyleAttr, 0);
+third_party/java_src/android_libs/setupdesign/main/src/com/google/android/setupdesign/view/StickyHeaderScrollView.java: ObsoleteSdkInt: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
diff --git a/lottie_loading_layout/AndroidManifest.xml b/lottie_loading_layout/AndroidManifest.xml
index 67c363d..3053930 100644
--- a/lottie_loading_layout/AndroidManifest.xml
+++ b/lottie_loading_layout/AndroidManifest.xml
@@ -20,6 +20,6 @@
 
   <uses-sdk
       android:minSdkVersion="14"
-      android:targetSdkVersion="31" />
+      android:targetSdkVersion="32" />
 
 </manifest>
diff --git a/lottie_loading_layout/res/layout-land-v31/sud_glif_loading_template_content.xml b/lottie_loading_layout/res/layout-land-v31/sud_glif_loading_template_content.xml
index 4473c52..ef0ba71 100644
--- a/lottie_loading_layout/res/layout-land-v31/sud_glif_loading_template_content.xml
+++ b/lottie_loading_layout/res/layout-land-v31/sud_glif_loading_template_content.xml
@@ -57,12 +57,12 @@
         <LinearLayout
             android:id="@+id/sud_landscape_content_area"
             style="@style/SudLandContentContianerStyle"
-            android:paddingTop="?attr/sudGlifContentPaddingTop"
             android:focusedByDefault="false"
             android:orientation="vertical">
 
             <FrameLayout
                 android:id="@+id/sud_layout_loading_content"
+                android:paddingTop="?attr/sudGlifContentPaddingTop"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent">
 
diff --git a/lottie_loading_layout/src/com/google/android/setupdesign/GlifLoadingLayout.java b/lottie_loading_layout/src/com/google/android/setupdesign/GlifLoadingLayout.java
index 7874b75..db0b1f3 100644
--- a/lottie_loading_layout/src/com/google/android/setupdesign/GlifLoadingLayout.java
+++ b/lottie_loading_layout/src/com/google/android/setupdesign/GlifLoadingLayout.java
@@ -24,6 +24,7 @@
 import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Configuration;
 import android.content.res.TypedArray;
 import android.graphics.Color;
 import android.graphics.ColorFilter;
@@ -60,8 +61,8 @@
 import com.google.android.setupcompat.template.FooterBarMixin;
 import com.google.android.setupcompat.util.BuildCompatUtils;
 import com.google.android.setupdesign.lottieloadinglayout.R;
-import com.google.android.setupdesign.view.IllustrationVideoView;
 import com.google.android.setupdesign.util.LayoutStyler;
+import com.google.android.setupdesign.view.IllustrationVideoView;
 import java.io.InputStream;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -391,9 +392,11 @@
 
   private void updateHeaderHeight() {
     View headerView = findManagedViewById(R.id.sud_header_scroll_view);
+    Configuration currentConfig = getResources().getConfiguration();
     if (headerView != null
         && PartnerConfigHelper.get(getContext())
-            .isPartnerConfigAvailable(PartnerConfig.CONFIG_LOADING_LAYOUT_HEADER_HEIGHT)) {
+            .isPartnerConfigAvailable(PartnerConfig.CONFIG_LOADING_LAYOUT_HEADER_HEIGHT)
+        && currentConfig.orientation != Configuration.ORIENTATION_LANDSCAPE) {
       float configHeaderHeight =
           PartnerConfigHelper.get(getContext())
               .getDimension(getContext(), PartnerConfig.CONFIG_LOADING_LAYOUT_HEADER_HEIGHT);
@@ -853,10 +856,17 @@
       this.runnable = runnable;
       this.lottieAnimationView = glifLoadingLayout.findLottieAnimationView();
 
+      boolean shouldAnimationBeFinished =
+          PartnerConfigHelper.get(glifLoadingLayout.getContext())
+              .getBoolean(
+                  glifLoadingLayout.getContext(),
+                  PartnerConfig.CONFIG_LOADING_LAYOUT_WAIT_FOR_ANIMATION_FINISHED,
+                  true);
       // TODO: add test case for verify the case which isAnimating returns true.
       if (glifLoadingLayout.isLottieLayoutVisible()
           && lottieAnimationView.isAnimating()
-          && !isZeroAnimatorDurationScale()) {
+          && !isZeroAnimatorDurationScale()
+          && shouldAnimationBeFinished) {
         Log.i(TAG, "Register animation finish.");
         lottieAnimationView.addAnimatorListener(animatorListener);
         lottieAnimationView.setRepeatCount(0);
diff --git a/main/res/layout/sud_glif_header.xml b/main/res/layout/sud_glif_header.xml
index 1bbde55..70b8daa 100644
--- a/main/res/layout/sud_glif_header.xml
+++ b/main/res/layout/sud_glif_header.xml
@@ -31,20 +31,15 @@
         <ImageView
             android:id="@+id/sud_layout_icon"
             style="?attr/sudGlifIconStyle"
-            android:layout_marginLeft="0dp"
-            android:layout_marginRight="0dp"
-            android:layout_marginTop="0dp"
-            android:layout_marginBottom="0dp"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:contentDescription="@null"
-            android:layout_gravity="?attr/sudGlifHeaderGravity"
             android:visibility="gone" />
     </FrameLayout>
 
     <TextView
         android:id="@+id/suc_layout_title"
-        style="@style/SudGlifHeaderTitle"
+        style="?attr/sudGlifHeaderTitleStyle"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" />
 
@@ -61,7 +56,7 @@
 
     <com.google.android.setupdesign.view.RichTextView
         android:id="@+id/sud_layout_subtitle"
-        style="@style/SudGlifDescription"
+        style="?attr/sudGlifDescriptionStyle"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:visibility="gone" />
diff --git a/main/res/values-land/dimens.xml b/main/res/values-land/dimens.xml
index 49ed20d..dfdc5b2 100644
--- a/main/res/values-land/dimens.xml
+++ b/main/res/values-land/dimens.xml
@@ -45,4 +45,8 @@
     <dimen name="sud_content_loading_frame_padding_end">0dp</dimen>
     <dimen name="sud_content_loading_frame_padding_bottom">24dp</dimen>
 
+    <!--  Page Margins Material You   -->
+    <dimen name="sud_glif_margin_start_material_you">32dp</dimen>
+    <dimen name="sud_glif_margin_end_material_you">32dp</dimen>
+
 </resources>
diff --git a/main/res/values-night-v31/colors.xml b/main/res/values-night-v31/colors.xml
index f929595..76e2b2b 100644
--- a/main/res/values-night-v31/colors.xml
+++ b/main/res/values-night-v31/colors.xml
@@ -20,14 +20,15 @@
   <color name="sud_dynamic_color_accent_glif_v3">@color/sud_dynamic_color_accent_glif_v3_dark</color>
 
 
-  <color name="sud_system_primary_text">@color/sud_system_neutral1_50</color>
-  <color name="sud_system_secondary_text">@color/sud_system_neutral2_200</color>
-  <color name="sud_system_tertiary_text_inactive">@color/sud_system_neutral2_400</color>
+  <color name="sud_system_primary_text">@color/sud_system_neutral1_0</color>
+  <color name="sud_system_secondary_text">@color/sud_system_neutral1_200</color>
+  <color name="sud_system_tertiary_text_inactive">@color/sud_system_neutral1_300</color>
   <color name="sud_system_error_warning">@color/sud_error_warning_default_dark</color>
-  <color name="sud_system_background_surface">@color/sud_system_neutral1_900</color>
+  <color name="sud_system_background_surface">@color/sud_system_neutral1_1000</color>
   <color name="sud_system_accent_icon_text_button">@color/sud_system_accent1_100</color>
   <color name="sud_system_button_surface">@color/sud_system_accent1_100</color>
   <color name="sud_system_button_text">@color/sud_system_neutral1_900</color>
-  <color name="sud_system_dividing_line">@color/sud_system_neutral2_300</color>
+  <color name="sud_system_dividing_line">@color/sud_system_neutral1_600</color>
+  <color name="sud_system_hyperlink_text">@color/sud_system_accent1_300</color>
 
 </resources>
\ No newline at end of file
diff --git a/main/res/values-sw600dp-land/dimens.xml b/main/res/values-sw600dp-land/dimens.xml
index d68c884..b9bae55 100644
--- a/main/res/values-sw600dp-land/dimens.xml
+++ b/main/res/values-sw600dp-land/dimens.xml
@@ -23,4 +23,8 @@
     <!-- Illustration -->
     <item name="sud_illustration_aspect_ratio" format="float" type="dimen">0.0</item>
 
+    <!--  Page Margins Material You   -->
+    <dimen name="sud_glif_margin_start_material_you">48dp</dimen>
+    <dimen name="sud_glif_margin_end_material_you">48dp</dimen>
+
 </resources>
diff --git a/main/res/values-sw600dp-v31/dimens.xml b/main/res/values-sw600dp-v31/dimens.xml
index f3f3aba..556b872 100644
--- a/main/res/values-sw600dp-v31/dimens.xml
+++ b/main/res/values-sw600dp-v31/dimens.xml
@@ -26,9 +26,12 @@
     <dimen name="sud_glif_footer_padding_start">48dp</dimen>
     <!-- Calculated by (sud_glif_margin_end - 4dp internal padding of button) -->
     <dimen name="sud_glif_footer_padding_end">60dp</dimen>
-    <!-- Default margin start/end should be 96dp in portrait mode for the large screen. However, If
-         you set this value, you can no longer overwrite a smaller value from partner config. So
-         here is set to 64dp and rewritten to 96dp through partner config. -->
+    <!-- Default margins start/end are 96dp in portrait mode for the large screen. However, If here
+         set this value, it cannot be overwrited by a smaller value from partner config. So here
+         set to 64dp and rewritten to 96dp through partner config the partner config
+         "setup_design_layout_margin_start" & "setup_design_layout_margin_end" for glifv3 default
+         margins. -->
+    <!-- TODO: b/221404901 to remove this limitation -->
     <dimen name="sud_glif_margin_start">64dp</dimen>
     <dimen name="sud_glif_margin_end">64dp</dimen>
 
diff --git a/main/res/values-sw600dp/dimens.xml b/main/res/values-sw600dp/dimens.xml
index b7802b1..388507e 100644
--- a/main/res/values-sw600dp/dimens.xml
+++ b/main/res/values-sw600dp/dimens.xml
@@ -18,10 +18,14 @@
 <resources>
 
     <!-- General -->
+    <!-- Calculated by (sud_glif_margin_start - sud_glif_button_padding) -->
+    <dimen name="sud_glif_button_margin_start">24dp</dimen>
     <!-- Calculated by (sud_glif_margin_start - 4dp internal padding of button) -->
     <dimen name="sud_glif_button_margin_end">36dp</dimen>
     <!-- Calculated by (sud_glif_margin_start - sud_glif_button_padding) -->
-    <dimen name="sud_glif_button_margin_start">24dp</dimen>
+    <dimen name="sud_glif_footer_padding_start">24dp</dimen>
+    <!-- Calculated by (sud_glif_margin_end - 4dp internal padding of button) -->
+    <dimen name="sud_glif_footer_padding_end">36dp</dimen>
     <dimen name="sud_glif_margin_start">40dp</dimen>
     <dimen name="sud_glif_margin_end">40dp</dimen>
 
@@ -38,4 +42,17 @@
     <dimen name="sud_items_glif_icon_divider_inset">88dp</dimen>
     <dimen name="sud_items_glif_text_divider_inset">40dp</dimen>
 
+    <!-- Page Margins Material You -->
+    <!-- Default margins start/end are 120dp in portrait mode for the large screen. However, If here
+         set this value, it cannot be overwrited by a smaller value from partner config. So here
+         set to 64dp and rewritten to 120dp through partner config the partner config
+         "setup_design_layout_margin_start" & "setup_design_layout_margin_end" for glifv4 default
+         margins. -->
+    <!-- TODO: b/221404901 to remove this limitation -->
+    <dimen name="sud_glif_margin_start_material_you">64dp</dimen>
+    <dimen name="sud_glif_margin_end_material_you">64dp</dimen>
+    <!-- Header Area Material You -->
+    <dimen name="sud_glif_header_title_size_material_you">44sp</dimen>
+    <dimen name="sud_glif_icon_margin_top_material_you">24dp</dimen>
+
 </resources>
diff --git a/main/res/values-v31/colors.xml b/main/res/values-v31/colors.xml
index 3db968b..07298d1 100644
--- a/main/res/values-v31/colors.xml
+++ b/main/res/values-v31/colors.xml
@@ -48,14 +48,24 @@
 
   <color name="sud_system_neutral1_50">@android:color/system_neutral1_50</color>
 
+  <color name="sud_system_neutral1_200">@android:color/system_neutral1_200</color>
+
+  <color name="sud_system_neutral1_300">@android:color/system_neutral1_300</color>
+
   <color name="sud_system_neutral1_400">@android:color/system_neutral1_400</color>
 
+  <color name="sud_system_neutral1_500">@android:color/system_neutral1_500</color>
+
+  <color name="sud_system_neutral1_600">@android:color/system_neutral1_600</color>
+
   <color name="sud_system_neutral1_700">@android:color/system_neutral1_700</color>
 
   <color name="sud_system_neutral1_800">@android:color/system_neutral1_800</color>
 
   <color name="sud_system_neutral1_900">@android:color/system_neutral1_900</color>
 
+  <color name="sud_system_neutral1_1000">@android:color/system_neutral1_1000</color>
+
 
 
   <color name="sud_system_neutral2_50">@android:color/system_neutral2_50</color>
@@ -74,14 +84,15 @@
 
 
   <color name="sud_system_primary_text">@color/sud_system_neutral1_900</color>
-  <color name="sud_system_secondary_text">@color/sud_system_neutral2_700</color>
-  <color name="sud_system_tertiary_text_inactive">@color/sud_system_neutral2_500</color>
+  <color name="sud_system_secondary_text">@color/sud_system_neutral1_700</color>
+  <color name="sud_system_tertiary_text_inactive">@color/sud_system_neutral1_600</color>
   <color name="sud_system_error_warning">@color/sud_error_warning_default_light</color>
-  <color name="sud_system_background_surface">@color/sud_system_neutral1_50</color>
+  <color name="sud_system_background_surface">@color/sud_system_neutral1_0</color>
   <color name="sud_system_accent_icon_text_button">@color/sud_system_accent1_600</color>
-  <color name="sud_system_button_surface">@color/sud_system_accent1_100</color>
-  <color name="sud_system_button_text">@color/sud_system_neutral1_900</color>
-  <color name="sud_system_dividing_line">@color/sud_system_neutral2_300</color>
+  <color name="sud_system_button_surface">@color/sud_system_accent1_600</color>
+  <color name="sud_system_button_text">@color/sud_system_neutral1_50</color>
+  <color name="sud_system_dividing_line">@color/sud_system_neutral1_500</color>
+  <color name="sud_system_hyperlink_text">@color/sud_system_accent1_600</color>
 
 
   <color name="sud_dynamic_switch_thumb_off_light">@color/sud_system_neutral2_300</color>
diff --git a/main/res/values-v31/styles.xml b/main/res/values-v31/styles.xml
index cf98b0b..7e59aa5 100644
--- a/main/res/values-v31/styles.xml
+++ b/main/res/values-v31/styles.xml
@@ -19,7 +19,7 @@
   <!-- Main theme for dynamic color -->
   <style name="SudDynamicColorTheme">
     <item name="colorAccent">@color/sud_dynamic_color_accent_glif_v3_dark</item>
-    <item name="android:textColorLink">@color/sud_system_accent1_300</item>
+    <item name="android:textColorLink">@color/sud_system_hyperlink_text</item>
     <item name="alertDialogTheme">@style/SudDynamicColorAlertDialogThemeCompat</item>
     <item name="android:datePickerDialogTheme">@style/SudDynamicColorDateTimePickerDialogTheme</item>
     <item name="android:timePickerDialogTheme">@style/SudDynamicColorDateTimePickerDialogTheme</item>
@@ -33,7 +33,7 @@
 
   <style name="SudDynamicColorTheme.Light">
     <item name="colorAccent">@color/sud_dynamic_color_accent_glif_v3_light</item>
-    <item name="android:textColorLink">@color/sud_system_accent1_600</item>
+    <item name="android:textColorLink">@color/sud_system_hyperlink_text</item>
     <item name="alertDialogTheme">@style/SudDynamicColorAlertDialogThemeCompat.Light</item>
     <item name="android:datePickerDialogTheme">@style/SudDynamicColorDateTimePickerDialogTheme.Light</item>
     <item name="android:timePickerDialogTheme">@style/SudDynamicColorDateTimePickerDialogTheme.Light</item>
@@ -46,13 +46,13 @@
   </style>
 
   <style name="SudFullDynamicColorTheme" parent="SudDynamicColorTheme">
-    <item name="android:windowBackground">@android:color/system_neutral1_900</item>
+    <item name="android:windowBackground">@color/sud_system_background_surface</item>
     <item name="android:colorForeground">@android:color/system_neutral1_50</item>
-    <item name="android:colorForegroundInverse">@android:color/system_neutral1_900</item>
-    <item name="android:colorBackground">@android:color/system_neutral1_900</item>
-    <item name="android:colorBackgroundCacheHint">@android:color/system_neutral1_900</item>
-    <item name="colorBackgroundFloating">@android:color/system_neutral1_900</item>
-    <item name="android:navigationBarColor">@android:color/system_neutral1_900</item>
+    <item name="android:colorForegroundInverse">@color/sud_system_background_surface</item>
+    <item name="android:colorBackground">@color/sud_system_background_surface</item>
+    <item name="android:colorBackgroundCacheHint">@color/sud_system_background_surface</item>
+    <item name="colorBackgroundFloating">@color/sud_system_background_surface</item>
+    <item name="android:navigationBarColor">@color/sud_system_background_surface</item>
 
     <item name="android:textColorPrimary">@color/sud_system_primary_text</item>
     <item name="android:textColorSecondary">@color/sud_system_secondary_text</item>
@@ -71,13 +71,13 @@
   </style>
 
   <style name="SudFullDynamicColorTheme.Light" parent="SudDynamicColorTheme.Light">
-    <item name="android:windowBackground">@android:color/system_neutral1_50</item>
+    <item name="android:windowBackground">@color/sud_system_background_surface</item>
     <item name="android:colorForeground">@android:color/system_neutral1_900</item>
-    <item name="android:colorForegroundInverse">@android:color/system_neutral1_50</item>
-    <item name="android:colorBackground">@android:color/system_neutral1_50</item>
-    <item name="android:colorBackgroundCacheHint">@@android:color/system_neutral1_50</item>
-    <item name="colorBackgroundFloating">@android:color/system_neutral1_50</item>
-    <item name="android:navigationBarColor">@android:color/system_neutral1_50</item>
+    <item name="android:colorForegroundInverse">@color/sud_system_background_surface</item>
+    <item name="android:colorBackground">@color/sud_system_background_surface</item>
+    <item name="android:colorBackgroundCacheHint">@color/sud_system_background_surface</item>
+    <item name="colorBackgroundFloating">@color/sud_system_background_surface</item>
+    <item name="android:navigationBarColor">@color/sud_system_background_surface</item>
 
     <item name="android:textColorPrimary">@color/sud_system_primary_text</item>
     <item name="android:textColorSecondary">@color/sud_system_secondary_text</item>
@@ -98,7 +98,7 @@
   <!-- TODO: cleanup the Glifv3 dependent dynamic color theme -->
   <style name="SudDynamicColorThemeGlifV3" parent="SudThemeGlifV3">
     <item name="colorAccent">@color/sud_dynamic_color_accent_glif_v3_dark</item>
-    <item name="android:textColorLink">@color/sud_system_accent1_300</item>
+    <item name="android:textColorLink">@color/sud_system_hyperlink_text</item>
     <item name="alertDialogTheme">@style/SudDynamicColorAlertDialogThemeCompat</item>
     <item name="android:datePickerDialogTheme">@style/SudDynamicColorDateTimePickerDialogTheme</item>
     <item name="android:timePickerDialogTheme">@style/SudDynamicColorDateTimePickerDialogTheme</item>
@@ -112,7 +112,7 @@
 
   <style name="SudDynamicColorThemeGlifV3.Light" parent="SudThemeGlifV3.Light">
     <item name="colorAccent">@color/sud_dynamic_color_accent_glif_v3_light</item>
-    <item name="android:textColorLink">@color/sud_system_accent1_600</item>
+    <item name="android:textColorLink">@color/sud_system_hyperlink_text</item>
     <item name="alertDialogTheme">@style/SudDynamicColorAlertDialogThemeCompat.Light</item>
     <item name="android:datePickerDialogTheme">@style/SudDynamicColorDateTimePickerDialogTheme.Light</item>
     <item name="android:timePickerDialogTheme">@style/SudDynamicColorDateTimePickerDialogTheme.Light</item>
@@ -125,13 +125,13 @@
   </style>
 
   <style name="SudFullDynamicColorThemeGlifV3" parent="SudDynamicColorThemeGlifV3">
-    <item name="android:windowBackground">@android:color/system_neutral1_900</item>
-    <item name="android:colorForeground">@android:color/system_neutral1_50</item>
-    <item name="android:colorForegroundInverse">@android:color/system_neutral1_900</item>
-    <item name="android:colorBackground">@android:color/system_neutral1_900</item>
-    <item name="android:colorBackgroundCacheHint">@android:color/system_neutral1_900</item>
-    <item name="colorBackgroundFloating">@android:color/system_neutral1_900</item>
-    <item name="android:navigationBarColor">@android:color/system_neutral1_900</item>
+    <item name="android:windowBackground">@color/sud_system_background_surface</item>
+    <item name="android:colorForeground">@android:color/system_neutral1_0</item>
+    <item name="android:colorForegroundInverse">@color/sud_system_background_surface</item>
+    <item name="android:colorBackground">@color/sud_system_background_surface</item>
+    <item name="android:colorBackgroundCacheHint">@color/sud_system_background_surface</item>
+    <item name="colorBackgroundFloating">@color/sud_system_background_surface</item>
+    <item name="android:navigationBarColor">@color/sud_system_background_surface</item>
 
     <item name="android:textColorPrimary">@color/sud_system_primary_text</item>
     <item name="android:textColorSecondary">@color/sud_system_secondary_text</item>
@@ -150,13 +150,13 @@
   </style>
 
   <style name="SudFullDynamicColorThemeGlifV3.Light" parent="SudDynamicColorThemeGlifV3.Light">
-    <item name="android:windowBackground">@android:color/system_neutral1_50</item>
+    <item name="android:windowBackground">@color/sud_system_background_surface</item>
     <item name="android:colorForeground">@android:color/system_neutral1_900</item>
-    <item name="android:colorForegroundInverse">@android:color/system_neutral1_50</item>
-    <item name="android:colorBackground">@android:color/system_neutral1_50</item>
-    <item name="android:colorBackgroundCacheHint">@@android:color/system_neutral1_50</item>
-    <item name="colorBackgroundFloating">@android:color/system_neutral1_50</item>
-    <item name="android:navigationBarColor">@android:color/system_neutral1_50</item>
+    <item name="android:colorForegroundInverse">@color/sud_system_background_surface</item>
+    <item name="android:colorBackground">@color/sud_system_background_surface</item>
+    <item name="android:colorBackgroundCacheHint">@color/sud_system_background_surface</item>
+    <item name="colorBackgroundFloating">@color/sud_system_background_surface</item>
+    <item name="android:navigationBarColor">@color/sud_system_background_surface</item>
 
     <item name="android:textColorPrimary">@color/sud_system_primary_text</item>
     <item name="android:textColorSecondary">@color/sud_system_secondary_text</item>
diff --git a/main/res/values-v33/colors.xml b/main/res/values-v33/colors.xml
new file mode 100644
index 0000000..92422db
--- /dev/null
+++ b/main/res/values-v33/colors.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <color name="sud_glif_v3_nav_bar_divider_color_light">@android:color/transparent</color>
+</resources>
diff --git a/main/res/values/attrs.xml b/main/res/values/attrs.xml
index 61798dd..6a3d9a4 100644
--- a/main/res/values/attrs.xml
+++ b/main/res/values/attrs.xml
@@ -24,6 +24,7 @@
     <attr name="sudEditTextBackgroundColor" format="color" />
     <attr name="sudButtonHighlightAlpha" format="float" />
 
+    <attr name="sudGlifHeaderTitleStyle" format="reference" />
     <!-- Subset of values in "gravity" in frameworks/base/core/res/res/values/attrs.xml. Only
          horizontal values are listed here as the header does not support vertical gravity. -->
     <attr name="sudGlifHeaderGravity">
@@ -59,6 +60,8 @@
     <attr name="sudGlifIconStyle" format="reference" />
     <attr name="sudGlifIconSize" format="dimension" />
 
+    <attr name="sudGlifDescriptionStyle" format="reference" />
+
     <attr name="sudButtonAllCaps" format="boolean" />
     <attr name="sudButtonCornerRadius" format="dimension" />
     <attr name="sudButtonFontFamily" format="string|reference" />
@@ -121,8 +124,15 @@
     <attr name="sudItemDescriptionTitleStyle" format="reference" />
     <attr name="sudContentFramePaddingTop" format="dimension|reference" />
     <attr name="sudContentFramePaddingBottom" format="dimension|reference" />
+
+    <!-- EditBox -->
     <attr name="sudEditBoxStyle" format="reference" />
     <attr name="sudEditBoxColor" format="reference" />
+    <attr name="boxCornerRadiusTopStart" format="dimension"/>
+    <attr name="boxCornerRadiusTopEnd" format="dimension"/>
+    <attr name="boxCornerRadiusBottomStart" format="dimension"/>
+    <attr name="boxCornerRadiusBottomEnd" format="dimension"/>
+
     <attr name="sudGlifContentPaddingTop" format="dimension|reference" />
 
     <attr name="sudHasStableIds" format="boolean|reference" />
diff --git a/main/res/values/colors.xml b/main/res/values/colors.xml
index 3fe0b4b..5fbdd9a 100644
--- a/main/res/values/colors.xml
+++ b/main/res/values/colors.xml
@@ -81,10 +81,24 @@
 
     <color name="sud_system_neutral1_50">#f0f0f0</color>
 
+    <color name="sud_system_neutral1_200">#c6c6c6</color>
+
+    <color name="sud_system_neutral1_300">#ababab</color>
+
+    <color name="sud_system_neutral1_400">#909090</color>
+
+    <color name="sud_system_neutral1_500">#757575</color>
+
+    <color name="sud_system_neutral1_600">#5e5e5e</color>
+
+    <color name="sud_system_neutral1_700">#464646</color>
+
     <color name="sud_system_neutral1_800">#303030</color>
 
     <color name="sud_system_neutral1_900">#1b1b1b</color>
 
+    <color name="sud_system_neutral1_1000">#000000</color>
+
 
 
     <color name="sud_system_neutral2_50">#f0f0f0</color>
diff --git a/main/res/values/dimens.xml b/main/res/values/dimens.xml
index 173d847..db585be 100644
--- a/main/res/values/dimens.xml
+++ b/main/res/values/dimens.xml
@@ -171,7 +171,28 @@
     <dimen name="sud_items_padding_top">15dp</dimen>
     <dimen name="sud_items_padding_bottom">15dp</dimen>
 
-    <!-- Items Material Next-->
+    <!-- Page Margins Material You -->
+    <!-- Default margins start are 40dp in portrait mode for the large screen. However, If here
+         set this value, it cannot be overwrited by a smaller value from partner config. So here
+         set to 24dp and rewritten to 40dp through partner config the partner config
+         "setup_design_layout_margin_start" for glifv4 default margins. -->
+    <!-- TODO: b/221404901 to remove this limitation -->
+    <dimen name="sud_glif_margin_start_material_you">24dp</dimen>
+    <dimen name="sud_glif_margin_end_material_you">24dp</dimen>
+
+    <!-- Header Area Material You -->
+    <dimen name="sud_header_container_margin_bottom_material_you">24dp</dimen>
+    <dimen name="sud_glif_header_title_size_material_you">36sp</dimen>
+    <dimen name="sud_glif_header_title_margin_top_material_you">24dp</dimen>
+    <dimen name="sud_glif_header_title_margin_bottom_material_you">0dp</dimen>
+    <dimen name="sud_glif_description_text_size_material_you">18sp</dimen>
+    <dimen name="sud_glif_description_margin_top_material_you">24dp</dimen>
+    <dimen name="sud_glif_description_margin_bottom_material_you">0dp</dimen>
+
+    <dimen name="sud_glif_icon_margin_top_material_you">32dp</dimen>
+    <dimen name="sud_glif_icon_max_height_material_you">48dp</dimen>
+
+    <!-- Items Material You -->
     <dimen name="sud_items_padding_top_material_you">18dp</dimen>
     <dimen name="sud_items_padding_bottom_material_you">18dp</dimen>
     <dimen name="sud_items_title_text_size_material_you">20sp</dimen>
@@ -214,6 +235,7 @@
     <!-- Edit Text dimensions -->
     <dimen name="sud_edit_text_min_height">56dp</dimen>
     <dimen name="sud_edit_text_padding_horizontal">12dp</dimen>
+    <dimen name="sud_edit_text_corner_radius">28dp</dimen>
 
     <!-- SwitchItem -->
     <dimen name="sud_switch_padding_start">16dp</dimen>
diff --git a/main/res/values/styles.xml b/main/res/values/styles.xml
index 1ee239d..eaee5ae 100644
--- a/main/res/values/styles.xml
+++ b/main/res/values/styles.xml
@@ -165,11 +165,13 @@
         <item name="sudDividerInsetStart">@dimen/sud_items_glif_icon_divider_inset</item>
         <item name="sudDividerInsetStartNoIcon">@dimen/sud_items_glif_text_divider_inset</item>
         <item name="sudDividerShown">true</item>
+        <item name="sudGlifHeaderTitleStyle">@style/SudGlifHeaderTitle</item>
         <item name="sudGlifHeaderGravity">start</item>
         <item name="sudGlifSubtitleGravity">start</item>
         <item name="sucGlifHeaderMarginTop">@dimen/sud_glif_header_title_margin_top</item>
-        <item name="sudGlifDescriptionMarginTop">@dimen/sud_glif_description_margin_top</item>
         <item name="sucGlifHeaderMarginBottom">@dimen/sud_glif_header_title_margin_bottom</item>
+        <item name="sudGlifDescriptionStyle">@style/SudGlifDescription</item>
+        <item name="sudGlifDescriptionMarginTop">@dimen/sud_glif_description_margin_top</item>
         <item name="sudGlifDescriptionMarginBottom">@dimen/sud_glif_description_margin_bottom</item>
         <item name="sucHeaderContainerMarginBottom">@dimen/sud_header_container_margin_bottom</item>
         <item name="sudGlifIconStyle">@style/SudGlifIcon</item>
@@ -254,11 +256,13 @@
         <item name="sudDividerInsetStart">@dimen/sud_items_glif_icon_divider_inset</item>
         <item name="sudDividerInsetStartNoIcon">@dimen/sud_items_glif_text_divider_inset</item>
         <item name="sudDividerShown">true</item>
+        <item name="sudGlifHeaderTitleStyle">@style/SudGlifHeaderTitle</item>
         <item name="sudGlifHeaderGravity">start</item>
         <item name="sudGlifSubtitleGravity">start</item>
         <item name="sucGlifHeaderMarginTop">@dimen/sud_glif_header_title_margin_top</item>
-        <item name="sudGlifDescriptionMarginTop">@dimen/sud_glif_description_margin_top</item>
         <item name="sucGlifHeaderMarginBottom">@dimen/sud_glif_header_title_margin_bottom</item>
+        <item name="sudGlifDescriptionStyle">@style/SudGlifDescription</item>
+        <item name="sudGlifDescriptionMarginTop">@dimen/sud_glif_description_margin_top</item>
         <item name="sudGlifDescriptionMarginBottom">@dimen/sud_glif_description_margin_bottom</item>
         <item name="sucHeaderContainerMarginBottom">@dimen/sud_header_container_margin_bottom</item>
         <item name="sudGlifIconStyle">@style/SudGlifIcon</item>
@@ -372,8 +376,51 @@
     <style name="SudDynamicColorThemeGlifV3.Light" parent="SudThemeGlifV3.Light" />
     <style name="SudFullDynamicColorThemeGlifV3.Light" parent="SudDynamicColorThemeGlifV3.Light" />
 
-    <style name="SudThemeGlifV4" parent="SudThemeGlifV3" />
-    <style name="SudThemeGlifV4.Light" parent="SudThemeGlifV3.Light" />
+    <style name="SudThemeGlifV4" parent="SudThemeGlifV3">
+        <item name="sudMarginStart">@dimen/sud_glif_margin_start_material_you</item>
+        <item name="sudMarginEnd">@dimen/sud_glif_margin_end_material_you</item>
+        <item name="sucHeaderContainerMarginBottom">@dimen/sud_header_container_margin_bottom_material_you</item>
+        <item name="sucGlifIconMarginTop">@dimen/sud_glif_icon_margin_top_material_you</item>
+        <item name="sudGlifIconSize">@dimen/sud_glif_icon_max_height_material_you</item>
+        <item name="sudGlifHeaderTitleStyle">@style/SudGlifHeaderTitleMaterialYou</item>
+        <item name="sudGlifHeaderGravity">start</item>
+        <item name="sucGlifHeaderMarginTop">@dimen/sud_glif_header_title_margin_top_material_you</item>
+        <item name="sucGlifHeaderMarginBottom">@dimen/sud_glif_header_title_margin_bottom_material_you</item>
+        <item name="sudGlifDescriptionStyle">@style/SudGlifDescriptionMaterialYou</item>
+        <item name="sudGlifDescriptionMarginTop">@dimen/sud_glif_description_margin_top_material_you</item>
+        <item name="sudGlifDescriptionMarginBottom">@dimen/sud_glif_description_margin_bottom_material_you</item>
+        <item name="textAppearanceListItem">@style/TextAppearance.SudMaterialYouItemTitle</item>
+        <item name="textAppearanceListItemSmall">@style/TextAppearance.SudMaterialYouItemSummary</item>
+        <item name="sudDividerShown">false</item>
+        <item name="sudItemContainerStyle">@style/SudItemContainerMaterialYou</item>
+        <item name="sudItemTitleStyle">@style/SudItemTitleMaterialYou</item>
+        <item name="sudItemSummaryStyle">@style/SudItemSummaryMaterialYou</item>
+        <item name="alertDialogTheme">@style/SudMaterialYouAlertDialogThemeCompat</item>
+        <item name="android:alertDialogTheme" >@style/SudMaterialYouAlertDialogTheme</item>
+    </style>
+
+    <style name="SudThemeGlifV4.Light" parent="SudThemeGlifV3.Light">
+        <item name="sudMarginStart">@dimen/sud_glif_margin_start_material_you</item>
+        <item name="sudMarginEnd">@dimen/sud_glif_margin_end_material_you</item>
+        <item name="sucHeaderContainerMarginBottom">@dimen/sud_header_container_margin_bottom_material_you</item>
+        <item name="sucGlifIconMarginTop">@dimen/sud_glif_icon_margin_top_material_you</item>
+        <item name="sudGlifIconSize">@dimen/sud_glif_icon_max_height_material_you</item>
+        <item name="sudGlifHeaderTitleStyle">@style/SudGlifHeaderTitleMaterialYou</item>
+        <item name="sudGlifHeaderGravity">start</item>
+        <item name="sucGlifHeaderMarginTop">@dimen/sud_glif_header_title_margin_top_material_you</item>
+        <item name="sucGlifHeaderMarginBottom">@dimen/sud_glif_header_title_margin_bottom_material_you</item>
+        <item name="sudGlifDescriptionStyle">@style/SudGlifDescriptionMaterialYou</item>
+        <item name="sudGlifDescriptionMarginTop">@dimen/sud_glif_description_margin_top_material_you</item>
+        <item name="sudGlifDescriptionMarginBottom">@dimen/sud_glif_description_margin_bottom_material_you</item>
+        <item name="textAppearanceListItem">@style/TextAppearance.SudMaterialYouItemTitle</item>
+        <item name="textAppearanceListItemSmall">@style/TextAppearance.SudMaterialYouItemSummary</item>
+        <item name="sudDividerShown">false</item>
+        <item name="sudItemContainerStyle">@style/SudItemContainerMaterialYou</item>
+        <item name="sudItemTitleStyle">@style/SudItemTitleMaterialYou</item>
+        <item name="sudItemSummaryStyle">@style/SudItemSummaryMaterialYou</item>
+        <item name="alertDialogTheme">@style/SudMaterialYouAlertDialogThemeCompat.Light</item>
+        <item name="android:alertDialogTheme" >@style/SudMaterialYouAlertDialogTheme.Light</item>
+    </style>
 
     <style name="SudDynamicColorTheme" />
     <style name="SudDynamicColorTheme.Light"  />
@@ -671,6 +718,10 @@
     <!-- Edit box theme-->
     <style name="SudEditBoxTheme">
         <item name="colorPrimary">?attr/sudEditBoxColor</item>
+        <item name="boxCornerRadiusTopStart">@dimen/sud_edit_text_corner_radius</item>
+        <item name="boxCornerRadiusTopEnd">@dimen/sud_edit_text_corner_radius</item>
+        <item name="boxCornerRadiusBottomStart">@dimen/sud_edit_text_corner_radius</item>
+        <item name="boxCornerRadiusBottomEnd">@dimen/sud_edit_text_corner_radius</item>
     </style>
 
     <!-- Items styles -->
@@ -784,6 +835,24 @@
         <item name="android:accessibilityHeading" tools:targetApi="p">true</item>
     </style>
 
+    <style name="SudGlifHeaderTitleMaterialYou">
+        <!-- Before Honeycomb, layout_gravity is needed for FrameLayout to apply the margins -->
+        <item name="android:layout_gravity">top</item>
+        <item name="android:ellipsize">end</item>
+        <item name="android:maxLines">3</item>
+        <item name="android:gravity">?attr/sudGlifHeaderGravity</item>
+        <item name="android:layout_marginBottom">?attr/sucGlifHeaderMarginBottom</item>
+        <item name="android:layout_marginLeft">?attr/sudMarginStart</item>
+        <item name="android:layout_marginRight">?attr/sudMarginEnd</item>
+        <item name="android:layout_marginTop">?attr/sucGlifHeaderMarginTop</item>
+        <item name="android:fontFamily" tools:targetApi="jelly_bean">@string/sudFontSecondary</item>
+        <item name="android:textAlignment" tools:targetApi="jelly_bean_mr1">gravity</item>
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
+        <item name="android:textDirection" tools:targetApi="jelly_bean_mr1">locale</item>
+        <item name="android:accessibilityHeading" tools:targetApi="p">true</item>
+        <item name="android:textSize">@dimen/sud_glif_header_title_size_material_you</item>
+    </style>
+
     <style name="SudGlifDescription" parent="SudDescription.Glif">
         <item name="android:layout_marginTop">?attr/sudGlifDescriptionMarginTop</item>
         <item name="android:layout_marginBottom">?attr/sudGlifDescriptionMarginBottom</item>
@@ -796,6 +865,23 @@
         <item name="android:textDirection" tools:targetApi="jelly_bean_mr1">locale</item>
     </style>
 
+    <style name="SudGlifDescriptionMaterialYou">
+        <!-- Before Honeycomb, layout_gravity is needed for FrameLayout to apply the margins -->
+        <item name="android:textAppearance">@android:style/TextAppearance.DeviceDefault</item>
+        <item name="android:lineSpacingExtra">@dimen/sud_description_line_spacing_extra</item>
+        <item name="android:gravity">?attr/sudGlifHeaderGravity</item>
+        <item name="android:textAlignment" tools:targetApi="jelly_bean_mr1">gravity</item>
+        <item name="android:layout_marginTop">?attr/sudGlifDescriptionMarginTop</item>
+        <item name="android:layout_marginBottom">?attr/sudGlifDescriptionMarginBottom</item>
+        <item name="android:layout_marginLeft">?attr/sudMarginStart</item>
+        <item name="android:layout_marginStart">?attr/sudMarginStart</item>
+        <item name="android:layout_marginRight">?attr/sudMarginEnd</item>
+        <item name="android:layout_marginEnd">?attr/sudMarginEnd</item>
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
+        <item name="android:textDirection" tools:targetApi="jelly_bean_mr1">locale</item>
+        <item name="android:textSize">@dimen/sud_glif_description_text_size_material_you</item>
+    </style>
+
     <style name="SudGlifHeaderContainer">
         <item name="android:gravity">?attr/sudGlifHeaderGravity</item>
         <item name="android:layout_marginBottom">?attr/sucHeaderContainerMarginBottom</item>
@@ -803,18 +889,24 @@
 
     <style name="SudGlifIconContainer">
         <item name="android:layout_marginLeft">?attr/sudMarginStart</item>
+      <item name="android:layout_marginStart" tools:ignore="NewApi">?attr/sudMarginStart</item>
         <item name="android:layout_marginRight">?attr/sudMarginEnd</item>
+      <item name="android:layout_marginEnd" tools:ignore="NewApi">?attr/sudMarginEnd</item>
         <item name="android:layout_marginTop">?attr/sucGlifIconMarginTop</item>
         <item name="android:maxHeight">?attr/sudGlifIconSize</item>
     </style>
 
     <style name="SudGlifIcon">
-        <item name="android:layout_marginLeft">?attr/sudMarginStart</item>
-        <item name="android:layout_marginRight">?attr/sudMarginEnd</item>
-        <item name="android:layout_marginTop">?attr/sucGlifIconMarginTop</item>
+        <item name="android:layout_marginTop">0dp</item>
+        <item name="android:layout_marginBottom">0dp</item>
+        <item name="android:layout_marginLeft">0dp</item>
+        <item name="android:layout_marginStart" tools:ignore="NewApi">0dp</item>
+        <item name="android:layout_marginRight">0dp</item>
+        <item name="android:layout_marginEnd" tools:ignore="NewApi">0dp</item>
         <item name="android:adjustViewBounds">true</item>
         <item name="android:maxHeight">?attr/sudGlifIconSize</item>
         <item name="android:scaleType">centerInside</item>
+        <item name="android:layout_gravity">?attr/sudGlifHeaderGravity</item>
     </style>
 
     <style name="TextAppearance.SudGlifBody" parent="android:TextAppearance">
diff --git a/main/src/com/google/android/setupdesign/template/RecyclerMixin.java b/main/src/com/google/android/setupdesign/template/RecyclerMixin.java
index c4e8f56..46b2faf 100644
--- a/main/src/com/google/android/setupdesign/template/RecyclerMixin.java
+++ b/main/src/com/google/android/setupdesign/template/RecyclerMixin.java
@@ -17,6 +17,7 @@
 package com.google.android.setupdesign.template;
 
 import android.content.Context;
+import android.content.res.Resources.Theme;
 import android.content.res.TypedArray;
 import android.graphics.drawable.Drawable;
 import android.os.Build;
@@ -26,6 +27,7 @@
 import androidx.recyclerview.widget.RecyclerView.Adapter;
 import androidx.recyclerview.widget.RecyclerView.ViewHolder;
 import android.util.AttributeSet;
+import android.util.TypedValue;
 import android.view.View;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -90,22 +92,31 @@
       header = ((HeaderRecyclerView) recyclerView).getHeader();
     }
 
-    isDividerDisplay = isShowItemsDivider();
+    isDividerDisplay = isShowItemsDivider(layout.getContext());
     if (isDividerDisplay) {
       this.recyclerView.addItemDecoration(dividerDecoration);
     }
   }
 
-  private boolean isShowItemsDivider() {
+  private boolean isShowItemsDivider(Context context) {
+    // Get the dividershown attribute value from theme
+    TypedValue typedValue = new TypedValue();
+    Theme theme = context.getTheme();
+    theme.resolveAttribute(R.attr.sudDividerShown, typedValue, true);
+    boolean isShownDivider = (typedValue.data != 0);
+
     // Skips to add item decoration if config flag is false.
     if (PartnerStyleHelper.shouldApplyPartnerResource(templateLayout)) {
       if (PartnerConfigHelper.get(recyclerView.getContext())
           .isPartnerConfigAvailable(PartnerConfig.CONFIG_ITEMS_DIVIDER_SHOWN)) {
         return PartnerConfigHelper.get(recyclerView.getContext())
-            .getBoolean(recyclerView.getContext(), PartnerConfig.CONFIG_ITEMS_DIVIDER_SHOWN, true);
+            .getBoolean(
+                recyclerView.getContext(),
+                PartnerConfig.CONFIG_ITEMS_DIVIDER_SHOWN,
+                isShownDivider);
       }
     }
-    return true;
+    return isShownDivider;
   }
 
   /**
@@ -300,6 +311,10 @@
     return divider;
   }
 
+  public boolean hasDivider() {
+    return isDividerDisplay;
+  }
+
   /**
    * Sets the divider item decoration directly. This is a low level method which should be used only
    * if custom divider behavior is needed, for example if the divider should be shown / hidden in
diff --git a/main/src/com/google/android/setupdesign/view/IntrinsicSizeFrameLayout.java b/main/src/com/google/android/setupdesign/view/IntrinsicSizeFrameLayout.java
index 4094f3a..ffb3d70 100644
--- a/main/src/com/google/android/setupdesign/view/IntrinsicSizeFrameLayout.java
+++ b/main/src/com/google/android/setupdesign/view/IntrinsicSizeFrameLayout.java
@@ -29,6 +29,8 @@
 import android.view.Display;
 import android.view.ViewGroup;
 import android.view.WindowInsets;
+import android.view.WindowManager;
+import android.view.WindowMetrics;
 import android.widget.FrameLayout;
 import androidx.annotation.VisibleForTesting;
 import com.google.android.setupcompat.partnerconfig.PartnerConfig;
@@ -138,8 +140,12 @@
   @VisibleForTesting
   boolean isWindowSizeSmallerThanDisplaySize() {
     boolean result = false;
-    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
-      getWindowVisibleDisplayFrame(windowVisibleDisplayRect);
+    /// NOMUTANTS--reason(b/221151816): Support setCurrentWindowMetrics from ShadowWindowManagerImpl
+    // to verify this case
+    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+      WindowManager windowManager = getContext().getSystemService(WindowManager.class);
+      WindowMetrics windowMetrics = windowManager.getCurrentWindowMetrics();
+      windowVisibleDisplayRect.set(windowMetrics.getBounds());
 
       Display display = getDisplay();
       if (display != null) {
diff --git a/strings/AndroidManifest.xml b/strings/AndroidManifest.xml
index c323fc7..7461fc6 100644
--- a/strings/AndroidManifest.xml
+++ b/strings/AndroidManifest.xml
@@ -20,6 +20,6 @@
 
     <uses-sdk
         android:minSdkVersion="14"
-        android:targetSdkVersion="31" />
+        android:targetSdkVersion="32" />
 
 </manifest>