diff options
author | Setup Wizard Team <android-setup-team-eng@google.com> | 2021-11-25 00:54:33 +0000 |
---|---|---|
committer | Nicole Huang <nicolehuang@google.com> | 2021-11-25 14:51:10 +0000 |
commit | da45aaa7e67ffa6213c1b5e6e638b4b10ef258fe (patch) | |
tree | 9fe911dc4b1ffbf06751dc24f3ede4f79599d1bc /main/src/com | |
parent | 860cce2416fb7f1cd44256790c8ccc56ea9b4945 (diff) | |
download | setupdesign-da45aaa7e67ffa6213c1b5e6e638b4b10ef258fe.tar.gz |
Import updated Android Setupdesign Library 412158963
Copied from google3/third_party/java_src/android_libs/setupdesign
Test: mm
Included changes:
- 412158963 Hide item divider in google service when system property ...
- 412135443 Migrate compat classes to androidx
- 411941072 [SetupDesing] To add android:importantForAccessibility="n...
- 411938410 Support Item class config contentDescription for accessib...
- 411691396 Add the attribute accessibilityHeading in header title
- 411539431 [SetupDesing] Fix the keypad default focus issue in lands...
- 411518305 [Stencil] Adds BC transition for RTL style on S.
- 410938656 [Stencil] Makes HeaderMixin and DescriptionMixin supports...
- 410189919 Fix sample app truncated in sw800 when partner config off
PiperOrigin-RevId: 412158963
Bug: 207099076
Change-Id: I094efbeaceada9a3a5b94018cf8e8ed8909d8e30
Diffstat (limited to 'main/src/com')
7 files changed, 77 insertions, 48 deletions
diff --git a/main/src/com/google/android/setupdesign/DividerItemDecoration.java b/main/src/com/google/android/setupdesign/DividerItemDecoration.java index df86b23..dabe36f 100644 --- a/main/src/com/google/android/setupdesign/DividerItemDecoration.java +++ b/main/src/com/google/android/setupdesign/DividerItemDecoration.java @@ -21,10 +21,10 @@ import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.drawable.Drawable; -import androidx.core.view.ViewCompat; import androidx.recyclerview.widget.RecyclerView; import android.view.View; import androidx.annotation.IntDef; +import androidx.core.view.ViewCompat; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/main/src/com/google/android/setupdesign/GlifLayout.java b/main/src/com/google/android/setupdesign/GlifLayout.java index dcfc595..034509d 100644 --- a/main/src/com/google/android/setupdesign/GlifLayout.java +++ b/main/src/com/google/android/setupdesign/GlifLayout.java @@ -206,56 +206,66 @@ public class GlifLayout extends PartnerCustomizationLayout { View headerView = this.findManagedViewById(R.id.sud_landscape_header_area); if (headerView != null) { - if (PartnerConfigHelper.get(getContext()) - .isPartnerConfigAvailable(PartnerConfig.CONFIG_LAYOUT_MARGIN_END)) { - int layoutMarginEnd = + int layoutMarginEnd; + if (shouldApplyPartnerResource() + && PartnerConfigHelper.get(getContext()) + .isPartnerConfigAvailable(PartnerConfig.CONFIG_LAYOUT_MARGIN_END)) { + layoutMarginEnd = (int) PartnerConfigHelper.get(getContext()) .getDimension(getContext(), PartnerConfig.CONFIG_LAYOUT_MARGIN_END); - - int paddingEnd = (horizontalSpacing / 2) - layoutMarginEnd; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { - headerView.setPadding( - headerView.getPaddingStart(), - headerView.getPaddingTop(), - paddingEnd, - headerView.getPaddingBottom()); - } else { - headerView.setPadding( - headerView.getPaddingLeft(), - headerView.getPaddingTop(), - paddingEnd, - headerView.getPaddingBottom()); - } + } else { + TypedArray a = getContext().obtainStyledAttributes(new int[] {R.attr.sudMarginEnd}); + layoutMarginEnd = a.getDimensionPixelSize(0, 0); + a.recycle(); + } + int paddingEnd = (horizontalSpacing / 2) - layoutMarginEnd; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + headerView.setPadding( + headerView.getPaddingStart(), + headerView.getPaddingTop(), + paddingEnd, + headerView.getPaddingBottom()); + } else { + headerView.setPadding( + headerView.getPaddingLeft(), + headerView.getPaddingTop(), + paddingEnd, + headerView.getPaddingBottom()); } } View contentView = this.findManagedViewById(R.id.sud_landscape_content_area); if (contentView != null) { - if (PartnerConfigHelper.get(getContext()) - .isPartnerConfigAvailable(PartnerConfig.CONFIG_LAYOUT_MARGIN_START)) { - int layoutMarginStart = + int layoutMarginStart; + if (shouldApplyPartnerResource() + && PartnerConfigHelper.get(getContext()) + .isPartnerConfigAvailable(PartnerConfig.CONFIG_LAYOUT_MARGIN_START)) { + layoutMarginStart = (int) PartnerConfigHelper.get(getContext()) .getDimension(getContext(), PartnerConfig.CONFIG_LAYOUT_MARGIN_START); - - int paddingStart = 0; - if (headerView != null) { - paddingStart = (horizontalSpacing / 2) - layoutMarginStart; - } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { - contentView.setPadding( - paddingStart, - contentView.getPaddingTop(), - contentView.getPaddingEnd(), - contentView.getPaddingBottom()); - } else { - contentView.setPadding( - paddingStart, - contentView.getPaddingTop(), - contentView.getPaddingRight(), - contentView.getPaddingBottom()); - } + } else { + TypedArray a = getContext().obtainStyledAttributes(new int[] {R.attr.sudMarginStart}); + layoutMarginStart = a.getDimensionPixelSize(0, 0); + a.recycle(); + } + int paddingStart = 0; + if (headerView != null) { + paddingStart = (horizontalSpacing / 2) - layoutMarginStart; + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + contentView.setPadding( + paddingStart, + contentView.getPaddingTop(), + contentView.getPaddingEnd(), + contentView.getPaddingBottom()); + } else { + contentView.setPadding( + paddingStart, + contentView.getPaddingTop(), + contentView.getPaddingRight(), + contentView.getPaddingBottom()); } } } diff --git a/main/src/com/google/android/setupdesign/accessibility/LinkAccessibilityHelper.java b/main/src/com/google/android/setupdesign/accessibility/LinkAccessibilityHelper.java index 1a55b25..237cd83 100644 --- a/main/src/com/google/android/setupdesign/accessibility/LinkAccessibilityHelper.java +++ b/main/src/com/google/android/setupdesign/accessibility/LinkAccessibilityHelper.java @@ -19,9 +19,6 @@ package com.google.android.setupdesign.accessibility; import android.graphics.Rect; import android.os.Build; import android.os.Bundle; -import androidx.core.view.AccessibilityDelegateCompat; -import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; -import androidx.core.view.accessibility.AccessibilityNodeProviderCompat; import android.text.Layout; import android.text.Spanned; import android.text.style.ClickableSpan; @@ -33,6 +30,9 @@ import android.view.accessibility.AccessibilityEvent; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; +import androidx.core.view.AccessibilityDelegateCompat; +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; +import androidx.core.view.accessibility.AccessibilityNodeProviderCompat; import androidx.customview.widget.ExploreByTouchHelper; import java.util.List; diff --git a/main/src/com/google/android/setupdesign/items/ExpandableSwitchItem.java b/main/src/com/google/android/setupdesign/items/ExpandableSwitchItem.java index 29eaf23..c934612 100644 --- a/main/src/com/google/android/setupdesign/items/ExpandableSwitchItem.java +++ b/main/src/com/google/android/setupdesign/items/ExpandableSwitchItem.java @@ -24,16 +24,16 @@ import android.graphics.drawable.Drawable; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.os.Bundle; -import androidx.core.view.AccessibilityDelegateCompat; -import androidx.core.view.ViewCompat; -import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; -import androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat; import android.util.AttributeSet; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.TextView; +import androidx.core.view.AccessibilityDelegateCompat; +import androidx.core.view.ViewCompat; +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat; import com.google.android.setupdesign.R; import com.google.android.setupdesign.util.LayoutStyler; import com.google.android.setupdesign.view.CheckableLinearLayout; diff --git a/main/src/com/google/android/setupdesign/items/Item.java b/main/src/com/google/android/setupdesign/items/Item.java index 3947c62..ff2e3ce 100644 --- a/main/src/com/google/android/setupdesign/items/Item.java +++ b/main/src/com/google/android/setupdesign/items/Item.java @@ -44,6 +44,7 @@ public class Item extends AbstractItem { private int layoutRes; @Nullable private CharSequence summary; @Nullable private CharSequence title; + @Nullable private CharSequence contentDescription; private boolean visible = true; @ColorInt private int iconTint = Color.TRANSPARENT; private int iconGravity = Gravity.CENTER_VERTICAL; @@ -60,6 +61,7 @@ public class Item extends AbstractItem { icon = a.getDrawable(R.styleable.SudItem_android_icon); title = a.getText(R.styleable.SudItem_android_title); summary = a.getText(R.styleable.SudItem_android_summary); + contentDescription = a.getText(R.styleable.SudItem_android_contentDescription); layoutRes = a.getResourceId(R.styleable.SudItem_android_layout, getDefaultLayoutResource()); visible = a.getBoolean(R.styleable.SudItem_android_visible, true); iconTint = a.getColor(R.styleable.SudItem_sudIconTint, Color.TRANSPARENT); @@ -143,6 +145,16 @@ public class Item extends AbstractItem { return title; } + @Nullable + public CharSequence getContentDescription() { + return contentDescription; + } + + public void setContentDescription(@Nullable CharSequence contentDescription) { + this.contentDescription = contentDescription; + notifyItemChanged(); + } + public void setVisible(boolean visible) { if (this.visible == visible) { return; @@ -178,6 +190,8 @@ public class Item extends AbstractItem { summaryView.setVisibility(View.GONE); } + view.setContentDescription(getContentDescription()); + final View iconContainer = view.findViewById(R.id.sud_items_icon_container); final Drawable icon = getIcon(); if (icon != null) { diff --git a/main/src/com/google/android/setupdesign/template/RecyclerMixin.java b/main/src/com/google/android/setupdesign/template/RecyclerMixin.java index fb69a8d..c4e8f56 100644 --- a/main/src/com/google/android/setupdesign/template/RecyclerMixin.java +++ b/main/src/com/google/android/setupdesign/template/RecyclerMixin.java @@ -269,6 +269,11 @@ public class RecyclerMixin implements Mixin { return dividerInsetEnd; } + /** Remove the divider inset from this RecyclerView. */ + public void removeDividerInset() { + recyclerView.removeItemDecoration(dividerDecoration); + } + private void updateDivider() { boolean shouldUpdate = true; if (Build.VERSION.SDK_INT >= VERSION_CODES.KITKAT) { diff --git a/main/src/com/google/android/setupdesign/view/RichTextView.java b/main/src/com/google/android/setupdesign/view/RichTextView.java index b86082e..182981f 100644 --- a/main/src/com/google/android/setupdesign/view/RichTextView.java +++ b/main/src/com/google/android/setupdesign/view/RichTextView.java @@ -23,7 +23,6 @@ import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; -import androidx.core.view.ViewCompat; import androidx.appcompat.widget.AppCompatTextView; import android.text.Annotation; import android.text.SpannableString; @@ -36,6 +35,7 @@ import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import androidx.annotation.VisibleForTesting; +import androidx.core.view.ViewCompat; import com.google.android.setupdesign.accessibility.LinkAccessibilityHelper; import com.google.android.setupdesign.span.LinkSpan; import com.google.android.setupdesign.span.LinkSpan.OnLinkClickListener; |