Allow setting DividerInsetEnd
- Added XML attribute suwDividerInsetEnd, and replaced suwDividerInset with suwDividerInsetStart. - Modified the themes so that the divider insets are set automatically. If the activity uses GLIF (v1) or material, and the list does not have icons, it should set app:suwDividerInsetStart="?attr/suwDividerInsetStartNoIcon" in the Glif[Recycler/List]Layout Test: ./gradlew connectedAndroidTest test Bug: 37677772 Change-Id: Ia4cb9954dd7e3c59cbc72db8937989557689061b
This commit is contained in:
parent
c9abaa5461
commit
6011b35dea
|
@ -38,6 +38,9 @@
|
|||
<item name="listPreferredItemPaddingLeft">?attr/suwMarginSides</item>
|
||||
<item name="listPreferredItemPaddingRight">?attr/suwMarginSides</item>
|
||||
<item name="suwCardBackground">@drawable/suw_card_bg_dark</item>
|
||||
<item name="suwDividerInsetEnd">0dp</item>
|
||||
<item name="suwDividerInsetStart">@dimen/suw_items_icon_divider_inset</item>
|
||||
<item name="suwDividerInsetStartNoIcon">@dimen/suw_items_text_divider_inset</item>
|
||||
<item name="suwItemDescriptionStyle">@style/SuwItemContainer.Description</item>
|
||||
<item name="suwItemDescriptionTitleStyle">@style/SuwItemTitle</item>
|
||||
<item name="suwListItemIconColor">@color/suw_list_item_icon_color_dark</item>
|
||||
|
@ -65,6 +68,9 @@
|
|||
<item name="listPreferredItemPaddingLeft">?attr/suwMarginSides</item>
|
||||
<item name="listPreferredItemPaddingRight">?attr/suwMarginSides</item>
|
||||
<item name="suwCardBackground">@drawable/suw_card_bg_light</item>
|
||||
<item name="suwDividerInsetEnd">0dp</item>
|
||||
<item name="suwDividerInsetStart">@dimen/suw_items_icon_divider_inset</item>
|
||||
<item name="suwDividerInsetStartNoIcon">@dimen/suw_items_text_divider_inset</item>
|
||||
<item name="suwItemDescriptionStyle">@style/SuwItemContainer.Description</item>
|
||||
<item name="suwItemDescriptionTitleStyle">@style/SuwItemTitle</item>
|
||||
<item name="suwListItemIconColor">@color/suw_list_item_icon_color_light</item>
|
||||
|
@ -93,7 +99,9 @@
|
|||
<item name="listPreferredItemPaddingLeft">?attr/suwMarginSides</item>
|
||||
<item name="listPreferredItemPaddingRight">?attr/suwMarginSides</item>
|
||||
<item name="suwColorPrimary">?attr/colorPrimary</item>
|
||||
<item name="suwDividerInset">@dimen/suw_items_glif_icon_divider_inset</item>
|
||||
<item name="suwDividerInsetEnd">0dp</item>
|
||||
<item name="suwDividerInsetStart">@dimen/suw_items_glif_icon_divider_inset</item>
|
||||
<item name="suwDividerInsetStartNoIcon">@dimen/suw_items_glif_text_divider_inset</item>
|
||||
<item name="suwGlifHeaderGravity">start</item>
|
||||
<item name="suwItemDescriptionStyle">@style/SuwItemContainer.Description.Glif</item>
|
||||
<item name="suwItemDescriptionTitleStyle">@style/SuwItemTitle.GlifDescription</item>
|
||||
|
@ -124,7 +132,9 @@
|
|||
<item name="listPreferredItemPaddingLeft">?attr/suwMarginSides</item>
|
||||
<item name="listPreferredItemPaddingRight">?attr/suwMarginSides</item>
|
||||
<item name="suwColorPrimary">?attr/colorPrimary</item>
|
||||
<item name="suwDividerInset">@dimen/suw_items_glif_icon_divider_inset</item>
|
||||
<item name="suwDividerInsetEnd">0dp</item>
|
||||
<item name="suwDividerInsetStart">@dimen/suw_items_glif_icon_divider_inset</item>
|
||||
<item name="suwDividerInsetStartNoIcon">@dimen/suw_items_glif_text_divider_inset</item>
|
||||
<item name="suwGlifHeaderGravity">start</item>
|
||||
<item name="suwItemDescriptionStyle">@style/SuwItemContainer.Description.Glif</item>
|
||||
<item name="suwItemDescriptionTitleStyle">@style/SuwItemTitle.GlifDescription</item>
|
||||
|
|
|
@ -32,6 +32,8 @@
|
|||
<dimen name="suw_header_title_size">34sp</dimen>
|
||||
|
||||
<!-- Items -->
|
||||
<dimen name="suw_items_icon_divider_inset">88dp</dimen>
|
||||
<dimen name="suw_items_text_divider_inset">40dp</dimen>
|
||||
<dimen name="suw_items_glif_icon_divider_inset">88dp</dimen>
|
||||
<dimen name="suw_items_glif_text_divider_inset">40dp</dimen>
|
||||
|
||||
|
|
|
@ -72,7 +72,11 @@
|
|||
<!-- Custom view attributes -->
|
||||
<attr name="suwColorPrimary" format="color" />
|
||||
<attr name="suwHeader" format="reference" />
|
||||
<!-- Deprecated. Use suwDividerInsetStart and suwDividerInsetEnd instead -->
|
||||
<attr name="suwDividerInset" format="dimension|reference" />
|
||||
<attr name="suwDividerInsetEnd" format="dimension|reference" />
|
||||
<attr name="suwDividerInsetStart" format="dimension|reference" />
|
||||
<attr name="suwDividerInsetStartNoIcon" format="dimension|reference" />
|
||||
<attr name="suwItemDescriptionStyle" format="reference" />
|
||||
<attr name="suwItemDescriptionTitleStyle" format="reference" />
|
||||
|
||||
|
@ -160,6 +164,8 @@
|
|||
<declare-styleable name="SuwListMixin">
|
||||
<attr name="android:entries" />
|
||||
<attr name="suwDividerInset" />
|
||||
<attr name="suwDividerInsetEnd" />
|
||||
<attr name="suwDividerInsetStart" />
|
||||
</declare-styleable>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
|
||||
<item name="suwBackgroundBaseColor">?android:attr/colorBackground</item>
|
||||
<item name="suwBackgroundPatterned">false</item>
|
||||
<item name="suwDividerInsetEnd">?attr/suwMarginSides</item>
|
||||
<item name="suwDividerInsetStart">?attr/suwMarginSides</item>
|
||||
<item name="suwDividerInsetStartNoIcon">?attr/suwMarginSides</item>
|
||||
<item name="suwGlifHeaderGravity">center_horizontal</item>
|
||||
<item name="suwScrollIndicators">top|bottom</item>
|
||||
</style>
|
||||
|
@ -36,6 +39,9 @@
|
|||
|
||||
<item name="suwBackgroundBaseColor">?android:attr/colorBackground</item>
|
||||
<item name="suwBackgroundPatterned">false</item>
|
||||
<item name="suwDividerInsetEnd">?attr/suwMarginSides</item>
|
||||
<item name="suwDividerInsetStart">?attr/suwMarginSides</item>
|
||||
<item name="suwDividerInsetStartNoIcon">?attr/suwMarginSides</item>
|
||||
<item name="suwGlifHeaderGravity">center_horizontal</item>
|
||||
<item name="suwScrollIndicators">top|bottom</item>
|
||||
</style>
|
||||
|
|
|
@ -113,26 +113,50 @@ public class GlifListLayout extends GlifLayout {
|
|||
}
|
||||
|
||||
/**
|
||||
* Sets the start inset of the divider. This will use the default divider drawable set in the
|
||||
* theme and inset it {@code inset} pixels to the right (or left in RTL layouts).
|
||||
*
|
||||
* @param inset The number of pixels to inset on the "start" side of the list divider. Typically
|
||||
* this will be either {@code @dimen/suw_items_glif_icon_divider_inset} or
|
||||
* {@code @dimen/suw_items_glif_text_divider_inset}.
|
||||
*
|
||||
* @see ListMixin#setDividerInset(int)
|
||||
* @deprecated Use {@link #setDividerInsets(int, int)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public void setDividerInset(int inset) {
|
||||
mListMixin.setDividerInset(inset);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ListMixin#getDividerInset()
|
||||
* Sets the start inset of the divider. This will use the default divider drawable set in the
|
||||
* theme and apply insets to it.
|
||||
*
|
||||
* @param start The number of pixels to inset on the "start" side of the list divider. Typically
|
||||
* this will be either {@code @dimen/suw_items_glif_icon_divider_inset} or
|
||||
* {@code @dimen/suw_items_glif_text_divider_inset}.
|
||||
* @param end The number of pixels to inset on the "end" side of the list divider.
|
||||
*
|
||||
* @see ListMixin#setDividerInsets(int, int)
|
||||
*/
|
||||
public void setDividerInsets(int start, int end) {
|
||||
mListMixin.setDividerInsets(start, end);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #getDividerInsetStart()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public int getDividerInset() {
|
||||
return mListMixin.getDividerInset();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ListMixin#getDividerInsetStart()
|
||||
*/
|
||||
public int getDividerInsetStart() {
|
||||
return mListMixin.getDividerInsetStart();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ListMixin#getDividerInsetEnd()
|
||||
*/
|
||||
public int getDividerInsetEnd() {
|
||||
return mListMixin.getDividerInsetEnd();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ListMixin#getDivider()
|
||||
*/
|
||||
|
|
|
@ -113,18 +113,50 @@ public class SetupWizardListLayout extends SetupWizardLayout {
|
|||
* {@code @dimen/suw_items_text_divider_inset}.
|
||||
*
|
||||
* @see ListMixin#setDividerInset(int)
|
||||
* @deprecated Use {@link #setDividerInsets(int, int)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public void setDividerInset(int inset) {
|
||||
mListMixin.setDividerInset(inset);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ListMixin#getDividerInset()
|
||||
* Sets the start inset of the divider. This will use the default divider drawable set in the
|
||||
* theme and apply insets to it.
|
||||
*
|
||||
* @param start The number of pixels to inset on the "start" side of the list divider. Typically
|
||||
* this will be either {@code @dimen/suw_items_icon_divider_inset} or
|
||||
* {@code @dimen/suw_items_text_divider_inset}.
|
||||
* @param end The number of pixels to inset on the "end" side of the list divider.
|
||||
*
|
||||
* @see ListMixin#setDividerInsets(int, int)
|
||||
*/
|
||||
public void setDividerInsets(int start, int end) {
|
||||
mListMixin.setDividerInsets(start, end);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #getDividerInsetStart()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public int getDividerInset() {
|
||||
return mListMixin.getDividerInset();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ListMixin#getDividerInsetStart()
|
||||
*/
|
||||
public int getDividerInsetStart() {
|
||||
return mListMixin.getDividerInsetStart();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ListMixin#getDividerInsetEnd()
|
||||
*/
|
||||
public int getDividerInsetEnd() {
|
||||
return mListMixin.getDividerInsetEnd();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ListMixin#getDivider()
|
||||
*/
|
||||
|
|
|
@ -49,7 +49,9 @@ public class ListMixin implements Mixin {
|
|||
|
||||
private Drawable mDivider;
|
||||
private Drawable mDefaultDivider;
|
||||
private int mDividerInset;
|
||||
|
||||
private int mDividerInsetStart;
|
||||
private int mDividerInsetEnd;
|
||||
|
||||
/**
|
||||
* @param layout The layout this mixin belongs to.
|
||||
|
@ -69,8 +71,16 @@ public class ListMixin implements Mixin {
|
|||
setAdapter(new ItemAdapter(inflated));
|
||||
}
|
||||
int dividerInset =
|
||||
a.getDimensionPixelSize(R.styleable.SuwListMixin_suwDividerInset, 0);
|
||||
setDividerInset(dividerInset);
|
||||
a.getDimensionPixelSize(R.styleable.SuwListMixin_suwDividerInset, -1);
|
||||
if (dividerInset != -1) {
|
||||
setDividerInset(dividerInset);
|
||||
} else {
|
||||
int dividerInsetStart =
|
||||
a.getDimensionPixelSize(R.styleable.SuwListMixin_suwDividerInsetStart, 0);
|
||||
int dividerInsetEnd =
|
||||
a.getDimensionPixelSize(R.styleable.SuwListMixin_suwDividerInsetEnd, 0);
|
||||
setDividerInsets(dividerInsetStart, dividerInsetEnd);
|
||||
}
|
||||
a.recycle();
|
||||
}
|
||||
|
||||
|
@ -135,24 +145,50 @@ public class ListMixin implements Mixin {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #setDividerInsets(int, int)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public void setDividerInset(int inset) {
|
||||
setDividerInsets(inset, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the start inset of the divider. This will use the default divider drawable set in the
|
||||
* theme and inset it {@code inset} pixels to the right (or left in RTL layouts).
|
||||
* theme and apply insets to it.
|
||||
*
|
||||
* @param inset The number of pixels to inset on the "start" side of the list divider. Typically
|
||||
* @param start The number of pixels to inset on the "start" side of the list divider. Typically
|
||||
* this will be either {@code @dimen/suw_items_glif_icon_divider_inset} or
|
||||
* {@code @dimen/suw_items_glif_text_divider_inset}.
|
||||
* @param end The number of pixels to inset on the "end" side of the list divider.
|
||||
*/
|
||||
public void setDividerInset(int inset) {
|
||||
mDividerInset = inset;
|
||||
public void setDividerInsets(int start, int end) {
|
||||
mDividerInsetStart = start;
|
||||
mDividerInsetEnd = end;
|
||||
updateDivider();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The number of pixels inset on the start side of the divider.
|
||||
* @deprecated This is the same as {@link #getDividerInsetStart()}. Use that instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public int getDividerInset() {
|
||||
return mDividerInset;
|
||||
return getDividerInsetStart();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The number of pixels inset on the start side of the divider.
|
||||
*/
|
||||
public int getDividerInsetStart() {
|
||||
return mDividerInsetStart;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The number of pixels inset on the end side of the divider.
|
||||
*/
|
||||
public int getDividerInsetEnd() {
|
||||
return mDividerInsetEnd;
|
||||
}
|
||||
|
||||
private void updateDivider() {
|
||||
|
@ -170,9 +206,9 @@ public class ListMixin implements Mixin {
|
|||
}
|
||||
mDivider = DrawableLayoutDirectionHelper.createRelativeInsetDrawable(
|
||||
mDefaultDivider,
|
||||
mDividerInset /* start */,
|
||||
mDividerInsetStart /* start */,
|
||||
0 /* top */,
|
||||
0 /* end */,
|
||||
mDividerInsetEnd /* end */,
|
||||
0 /* bottom */,
|
||||
mTemplateLayout);
|
||||
listView.setDivider(mDivider);
|
||||
|
|
|
@ -41,6 +41,9 @@
|
|||
<item name="android:windowSoftInputMode">adjustResize</item>
|
||||
|
||||
<item name="suwCardBackground">@drawable/suw_card_bg</item>
|
||||
<item name="suwDividerInsetEnd">0dp</item>
|
||||
<item name="suwDividerInsetStart">@dimen/suw_items_icon_divider_inset</item>
|
||||
<item name="suwDividerInsetStartNoIcon">@dimen/suw_items_text_divider_inset</item>
|
||||
<item name="suwItemDescriptionStyle">@style/SuwItemContainer.Description</item>
|
||||
<item name="suwItemDescriptionTitleStyle">@style/SuwItemTitle</item>
|
||||
<item name="suwListItemIconColor">@color/suw_list_item_icon_color_dark</item>
|
||||
|
@ -65,6 +68,9 @@
|
|||
<item name="android:windowSoftInputMode">adjustResize</item>
|
||||
|
||||
<item name="suwCardBackground">@drawable/suw_card_bg</item>
|
||||
<item name="suwDividerInsetEnd">0dp</item>
|
||||
<item name="suwDividerInsetStart">@dimen/suw_items_icon_divider_inset</item>
|
||||
<item name="suwDividerInsetStartNoIcon">@dimen/suw_items_text_divider_inset</item>
|
||||
<item name="suwItemDescriptionStyle">@style/SuwItemContainer.Description</item>
|
||||
<item name="suwItemDescriptionTitleStyle">@style/SuwItemTitle</item>
|
||||
<item name="suwListItemIconColor">@color/suw_list_item_icon_color_light</item>
|
||||
|
@ -92,7 +98,9 @@
|
|||
<item name="android:windowSoftInputMode">adjustResize</item>
|
||||
|
||||
<item name="suwColorPrimary">?android:attr/colorPrimary</item>
|
||||
<item name="suwDividerInset">@dimen/suw_items_glif_icon_divider_inset</item>
|
||||
<item name="suwDividerInsetEnd">0dp</item>
|
||||
<item name="suwDividerInsetStart">@dimen/suw_items_glif_icon_divider_inset</item>
|
||||
<item name="suwDividerInsetStartNoIcon">@dimen/suw_items_glif_text_divider_inset</item>
|
||||
<item name="suwGlifHeaderGravity">start</item>
|
||||
<item name="suwItemDescriptionStyle">@style/SuwItemContainer.Description.Glif</item>
|
||||
<item name="suwItemDescriptionTitleStyle">@style/SuwItemTitle.GlifDescription</item>
|
||||
|
@ -120,7 +128,9 @@
|
|||
<item name="android:windowSoftInputMode">adjustResize</item>
|
||||
|
||||
<item name="suwColorPrimary">?android:attr/colorPrimary</item>
|
||||
<item name="suwDividerInset">@dimen/suw_items_glif_icon_divider_inset</item>
|
||||
<item name="suwDividerInsetEnd">0dp</item>
|
||||
<item name="suwDividerInsetStart">@dimen/suw_items_glif_icon_divider_inset</item>
|
||||
<item name="suwDividerInsetStartNoIcon">@dimen/suw_items_glif_text_divider_inset</item>
|
||||
<item name="suwGlifHeaderGravity">start</item>
|
||||
<item name="suwItemDescriptionStyle">@style/SuwItemContainer.Description.Glif</item>
|
||||
<item name="suwItemDescriptionTitleStyle">@style/SuwItemTitle.GlifDescription</item>
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
<declare-styleable name="SuwRecyclerMixin">
|
||||
<attr name="android:entries" />
|
||||
<attr name="suwDividerInset" />
|
||||
<attr name="suwDividerInsetEnd" />
|
||||
<attr name="suwDividerInsetStart" />
|
||||
<attr name="suwHasStableIds" />
|
||||
</declare-styleable>
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ import java.lang.annotation.RetentionPolicy;
|
|||
* default, and the behavior of whether the divider is shown can be customized by subclassing
|
||||
* {@link com.android.setupwizardlib.DividerItemDecoration.DividedViewHolder}.
|
||||
*
|
||||
* <p>Modified from v14 PreferenceFragment.DividerDecoration, added with inset capabilities.
|
||||
* <p>Modified from v14 PreferenceFragment.DividerDecoration.
|
||||
*/
|
||||
public class DividerItemDecoration extends RecyclerView.ItemDecoration {
|
||||
|
||||
|
|
|
@ -147,19 +147,41 @@ public class GlifRecyclerLayout extends GlifLayout {
|
|||
}
|
||||
|
||||
/**
|
||||
* @see RecyclerMixin#setDividerInset(int)
|
||||
* @deprecated Use {@link #setDividerInsets(int, int)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public void setDividerInset(int inset) {
|
||||
mRecyclerMixin.setDividerInset(inset);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see RecyclerMixin#getDividerInset()
|
||||
* @see RecyclerMixin#setDividerInset(int)
|
||||
*/
|
||||
public void setDividerInsets(int start, int end) {
|
||||
mRecyclerMixin.setDividerInsets(start, end);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #getDividerInsetStart()} instead.
|
||||
*/
|
||||
public int getDividerInset() {
|
||||
return mRecyclerMixin.getDividerInset();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see RecyclerMixin#getDividerInsetStart()
|
||||
*/
|
||||
public int getDividerInsetStart() {
|
||||
return mRecyclerMixin.getDividerInsetStart();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see RecyclerMixin#getDividerInsetEnd()
|
||||
*/
|
||||
public int getDividerInsetEnd() {
|
||||
return mRecyclerMixin.getDividerInsetEnd();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see RecyclerMixin#getDivider()
|
||||
*/
|
||||
|
|
|
@ -139,26 +139,50 @@ public class SetupWizardRecyclerLayout extends SetupWizardLayout {
|
|||
}
|
||||
|
||||
/**
|
||||
* Sets the start inset of the divider. This will use the default divider drawable set in the
|
||||
* theme and inset it {@code inset} pixels to the right (or left in RTL layouts).
|
||||
*
|
||||
* @param inset The number of pixels to inset on the "start" side of the list divider. Typically
|
||||
* this will be either {@code @dimen/suw_items_icon_divider_inset} or
|
||||
* {@code @dimen/suw_items_text_divider_inset}.
|
||||
*
|
||||
* @see RecyclerMixin#setDividerInset(int)
|
||||
* @deprecated Use {@link #setDividerInsets(int, int)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public void setDividerInset(int inset) {
|
||||
mRecyclerMixin.setDividerInset(inset);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see RecyclerMixin#getDividerInset()
|
||||
* Sets the start inset of the divider. This will use the default divider drawable set in the
|
||||
* theme and apply insets to it.
|
||||
*
|
||||
* @param start The number of pixels to inset on the "start" side of the list divider. Typically
|
||||
* this will be either {@code @dimen/suw_items_icon_divider_inset} or
|
||||
* {@code @dimen/suw_items_text_divider_inset}.
|
||||
* @param end The number of pixels to inset on the "end" side of the list divider.
|
||||
*
|
||||
* @see RecyclerMixin#setDividerInsets(int, int)
|
||||
*/
|
||||
public void setDividerInsets(int start, int end) {
|
||||
mRecyclerMixin.setDividerInsets(start, end);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #getDividerInsetStart()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public int getDividerInset() {
|
||||
return mRecyclerMixin.getDividerInset();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see RecyclerMixin#getDividerInsetStart()
|
||||
*/
|
||||
public int getDividerInsetStart() {
|
||||
return mRecyclerMixin.getDividerInsetStart();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see RecyclerMixin#getDividerInsetEnd()
|
||||
*/
|
||||
public int getDividerInsetEnd() {
|
||||
return mRecyclerMixin.getDividerInsetEnd();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see RecyclerMixin#getDivider()
|
||||
*/
|
||||
|
|
|
@ -63,7 +63,9 @@ public class RecyclerMixin implements Mixin {
|
|||
|
||||
private Drawable mDefaultDivider;
|
||||
private Drawable mDivider;
|
||||
private int mDividerInset;
|
||||
|
||||
private int mDividerInsetStart;
|
||||
private int mDividerInsetEnd;
|
||||
|
||||
/**
|
||||
* Creates the RecyclerMixin. Unlike typical mixins which are created in the constructor, this
|
||||
|
@ -112,8 +114,17 @@ public class RecyclerMixin implements Mixin {
|
|||
setAdapter(adapter);
|
||||
}
|
||||
int dividerInset =
|
||||
a.getDimensionPixelSize(R.styleable.SuwRecyclerMixin_suwDividerInset, 0);
|
||||
setDividerInset(dividerInset);
|
||||
a.getDimensionPixelSize(R.styleable.SuwRecyclerMixin_suwDividerInset, -1);
|
||||
if (dividerInset != -1) {
|
||||
setDividerInset(dividerInset);
|
||||
} else {
|
||||
int dividerInsetStart =
|
||||
a.getDimensionPixelSize(R.styleable.SuwRecyclerMixin_suwDividerInsetStart, 0);
|
||||
int dividerInsetEnd =
|
||||
a.getDimensionPixelSize(R.styleable.SuwRecyclerMixin_suwDividerInsetEnd, 0);
|
||||
setDividerInsets(dividerInsetStart, dividerInsetEnd);
|
||||
}
|
||||
|
||||
a.recycle();
|
||||
}
|
||||
|
||||
|
@ -173,24 +184,50 @@ public class RecyclerMixin implements Mixin {
|
|||
mRecyclerView.setAdapter(adapter);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #setDividerInsets(int, int)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public void setDividerInset(int inset) {
|
||||
setDividerInsets(inset, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the start inset of the divider. This will use the default divider drawable set in the
|
||||
* theme and inset it {@code inset} pixels to the right (or left in RTL layouts).
|
||||
* theme and apply insets to it.
|
||||
*
|
||||
* @param inset The number of pixels to inset on the "start" side of the list divider. Typically
|
||||
* @param start The number of pixels to inset on the "start" side of the list divider. Typically
|
||||
* this will be either {@code @dimen/suw_items_glif_icon_divider_inset} or
|
||||
* {@code @dimen/suw_items_glif_text_divider_inset}.
|
||||
* @param end The number of pixels to inset on the "end" side of the list divider.
|
||||
*/
|
||||
public void setDividerInset(int inset) {
|
||||
mDividerInset = inset;
|
||||
public void setDividerInsets(int start, int end) {
|
||||
mDividerInsetStart = start;
|
||||
mDividerInsetEnd = end;
|
||||
updateDivider();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The number of pixels inset on the start side of the divider.
|
||||
* @deprecated This is the same as {@link #getDividerInsetStart()}. Use that instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public int getDividerInset() {
|
||||
return mDividerInset;
|
||||
return getDividerInsetStart();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The number of pixels inset on the start side of the divider.
|
||||
*/
|
||||
public int getDividerInsetStart() {
|
||||
return mDividerInsetStart;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The number of pixels inset on the end side of the divider.
|
||||
*/
|
||||
public int getDividerInsetEnd() {
|
||||
return mDividerInsetEnd;
|
||||
}
|
||||
|
||||
private void updateDivider() {
|
||||
|
@ -204,9 +241,9 @@ public class RecyclerMixin implements Mixin {
|
|||
}
|
||||
mDivider = DrawableLayoutDirectionHelper.createRelativeInsetDrawable(
|
||||
mDefaultDivider,
|
||||
mDividerInset /* start */,
|
||||
mDividerInsetStart /* start */,
|
||||
0 /* top */,
|
||||
0 /* end */,
|
||||
mDividerInsetEnd /* end */,
|
||||
0 /* bottom */,
|
||||
mTemplateLayout);
|
||||
mDividerDecoration.setDivider(mDivider);
|
||||
|
|
|
@ -96,7 +96,7 @@ public class RecyclerMixinTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInset() {
|
||||
public void testDividerLegacyInset() {
|
||||
RecyclerMixin mixin = new RecyclerMixin(mTemplateLayout, mRecyclerView);
|
||||
mixin.setDividerInset(123);
|
||||
|
||||
|
@ -111,7 +111,23 @@ public class RecyclerMixinTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInsetRtl() {
|
||||
public void testDividerInsets() {
|
||||
RecyclerMixin mixin = new RecyclerMixin(mTemplateLayout, mRecyclerView);
|
||||
mixin.setDividerInsets(123, 456);
|
||||
|
||||
assertEquals(123, mixin.getDividerInsetStart());
|
||||
assertEquals(456, mixin.getDividerInsetEnd());
|
||||
|
||||
final Drawable divider = mixin.getDivider();
|
||||
InsetDrawable insetDrawable = (InsetDrawable) divider;
|
||||
Rect rect = new Rect();
|
||||
insetDrawable.getPadding(rect);
|
||||
|
||||
assertEquals(new Rect(123, 0, 456, 0), rect);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInsetLegacyRtl() {
|
||||
if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
doReturn(View.LAYOUT_DIRECTION_RTL).when(mTemplateLayout).getLayoutDirection();
|
||||
|
||||
|
@ -129,4 +145,25 @@ public class RecyclerMixinTest {
|
|||
}
|
||||
// else the test passes
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInsetsRtl() {
|
||||
if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
doReturn(View.LAYOUT_DIRECTION_RTL).when(mTemplateLayout).getLayoutDirection();
|
||||
|
||||
RecyclerMixin mixin = new RecyclerMixin(mTemplateLayout, mRecyclerView);
|
||||
mixin.setDividerInsets(123, 456);
|
||||
|
||||
assertEquals(123, mixin.getDividerInsetStart());
|
||||
assertEquals(456, mixin.getDividerInsetEnd());
|
||||
|
||||
final Drawable divider = mixin.getDivider();
|
||||
InsetDrawable insetDrawable = (InsetDrawable) divider;
|
||||
Rect rect = new Rect();
|
||||
insetDrawable.getPadding(rect);
|
||||
|
||||
assertEquals(new Rect(456, 0, 123, 0), rect);
|
||||
}
|
||||
// else the test passes
|
||||
}
|
||||
}
|
||||
|
|
|
@ -105,7 +105,7 @@ public class GlifRecyclerLayoutTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInset() {
|
||||
public void testDividerInsetLegacy() {
|
||||
GlifRecyclerLayout layout = new GlifRecyclerLayout(mContext);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
layout.setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
|
||||
|
@ -119,6 +119,22 @@ public class GlifRecyclerLayoutTest {
|
|||
assertTrue("Divider should be instance of InsetDrawable", divider instanceof InsetDrawable);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInsets() {
|
||||
GlifRecyclerLayout layout = new GlifRecyclerLayout(mContext);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
layout.setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
|
||||
}
|
||||
assertRecyclerTemplateInflated(layout);
|
||||
|
||||
layout.setDividerInsets(10, 15);
|
||||
assertEquals("Divider inset start should be 10", 10, layout.getDividerInsetStart());
|
||||
assertEquals("Divider inset end should be 15", 15, layout.getDividerInsetEnd());
|
||||
|
||||
final Drawable divider = layout.getDivider();
|
||||
assertTrue("Divider should be instance of InsetDrawable", divider instanceof InsetDrawable);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTemplateWithNoRecyclerView() {
|
||||
try {
|
||||
|
|
|
@ -106,7 +106,7 @@ public class SetupWizardRecyclerLayoutTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInset() {
|
||||
public void testDividerInsetLegacy() {
|
||||
SetupWizardRecyclerLayout layout = new SetupWizardRecyclerLayout(mContext);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
layout.setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
|
||||
|
@ -120,6 +120,22 @@ public class SetupWizardRecyclerLayoutTest {
|
|||
assertTrue("Divider should be instance of InsetDrawable", divider instanceof InsetDrawable);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInsets() {
|
||||
SetupWizardRecyclerLayout layout = new SetupWizardRecyclerLayout(mContext);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
layout.setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
|
||||
}
|
||||
assertRecyclerTemplateInflated(layout);
|
||||
|
||||
layout.setDividerInsets(10, 15);
|
||||
assertEquals("Divider inset start should be 10", 10, layout.getDividerInsetStart());
|
||||
assertEquals("Divider inset end should be 15", 15, layout.getDividerInsetEnd());
|
||||
|
||||
final Drawable divider = layout.getDivider();
|
||||
assertTrue("Divider should be instance of InsetDrawable", divider instanceof InsetDrawable);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTemplateWithNoRecyclerView() {
|
||||
try {
|
||||
|
|
|
@ -101,7 +101,7 @@ public class ListMixinTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInset() {
|
||||
public void testDividerInsetLegacy() {
|
||||
ListMixin mixin = new ListMixin(mTemplateLayout, null, 0);
|
||||
mixin.setDividerInset(123);
|
||||
|
||||
|
@ -116,7 +116,23 @@ public class ListMixinTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInsetRtl() {
|
||||
public void testDividerInsets() {
|
||||
ListMixin mixin = new ListMixin(mTemplateLayout, null, 0);
|
||||
mixin.setDividerInsets(123, 456);
|
||||
|
||||
assertEquals(123, mixin.getDividerInsetStart());
|
||||
assertEquals(456, mixin.getDividerInsetEnd());
|
||||
|
||||
final Drawable divider = mListView.getDivider();
|
||||
InsetDrawable insetDrawable = (InsetDrawable) divider;
|
||||
Rect rect = new Rect();
|
||||
insetDrawable.getPadding(rect);
|
||||
|
||||
assertEquals(new Rect(123, 0, 456, 0), rect);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInsetLegacyRtl() {
|
||||
if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
doReturn(View.LAYOUT_DIRECTION_RTL).when(mTemplateLayout).getLayoutDirection();
|
||||
|
||||
|
@ -135,6 +151,27 @@ public class ListMixinTest {
|
|||
// else the test passes
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInsetsRtl() {
|
||||
if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
doReturn(View.LAYOUT_DIRECTION_RTL).when(mTemplateLayout).getLayoutDirection();
|
||||
|
||||
ListMixin mixin = new ListMixin(mTemplateLayout, null, 0);
|
||||
mixin.setDividerInsets(123, 456);
|
||||
|
||||
assertEquals(123, mixin.getDividerInsetStart());
|
||||
assertEquals(456, mixin.getDividerInsetEnd());
|
||||
|
||||
final Drawable divider = mListView.getDivider();
|
||||
InsetDrawable insetDrawable = (InsetDrawable) divider;
|
||||
Rect rect = new Rect();
|
||||
insetDrawable.getPadding(rect);
|
||||
|
||||
assertEquals(new Rect(456, 0, 123, 0), rect);
|
||||
}
|
||||
// else the test passes
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNoList() {
|
||||
doReturn(null).when(mTemplateLayout).findManagedViewById(eq(android.R.id.list));
|
||||
|
|
|
@ -105,7 +105,7 @@ public class GlifListLayoutTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInset() {
|
||||
public void testDividerInsetLegacy() {
|
||||
GlifListLayout layout = new GlifListLayout(mContext);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
layout.setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
|
||||
|
@ -119,6 +119,22 @@ public class GlifListLayoutTest {
|
|||
assertTrue("Divider should be instance of InsetDrawable", divider instanceof InsetDrawable);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInsets() {
|
||||
GlifListLayout layout = new GlifListLayout(mContext);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
layout.setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
|
||||
}
|
||||
assertListTemplateInflated(layout);
|
||||
|
||||
layout.setDividerInsets(10, 15);
|
||||
assertEquals("Divider inset should be 10", 10, layout.getDividerInsetStart());
|
||||
assertEquals("Divider inset should be 15", 15, layout.getDividerInsetEnd());
|
||||
|
||||
final Drawable divider = layout.getDivider();
|
||||
assertTrue("Divider should be instance of InsetDrawable", divider instanceof InsetDrawable);
|
||||
}
|
||||
|
||||
private void assertListTemplateInflated(GlifListLayout layout) {
|
||||
View title = layout.findViewById(R.id.suw_layout_title);
|
||||
assertNotNull("@id/suw_layout_title should not be null", title);
|
||||
|
|
|
@ -16,11 +16,15 @@
|
|||
|
||||
package com.android.setupwizardlib.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.InsetDrawable;
|
||||
import android.os.Build;
|
||||
import android.support.test.InstrumentationRegistry;
|
||||
import android.support.test.filters.SmallTest;
|
||||
import android.support.test.runner.AndroidJUnit4;
|
||||
|
@ -87,6 +91,37 @@ public class SetupWizardListLayoutTest {
|
|||
progressBar instanceof ProgressBar && progressBar.getVisibility() == View.VISIBLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInsetLegacy() {
|
||||
SetupWizardListLayout layout = new SetupWizardListLayout(mContext);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
layout.setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
|
||||
}
|
||||
assertListTemplateInflated(layout);
|
||||
|
||||
layout.setDividerInset(10);
|
||||
assertEquals("Divider inset should be 10", 10, layout.getDividerInset());
|
||||
|
||||
final Drawable divider = layout.getDivider();
|
||||
assertTrue("Divider should be instance of InsetDrawable", divider instanceof InsetDrawable);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDividerInsets() {
|
||||
SetupWizardListLayout layout = new SetupWizardListLayout(mContext);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
layout.setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
|
||||
}
|
||||
assertListTemplateInflated(layout);
|
||||
|
||||
layout.setDividerInsets(10, 15);
|
||||
assertEquals("Divider inset start should be 10", 10, layout.getDividerInsetStart());
|
||||
assertEquals("Divider inset end should be 15", 15, layout.getDividerInsetEnd());
|
||||
|
||||
final Drawable divider = layout.getDivider();
|
||||
assertTrue("Divider should be instance of InsetDrawable", divider instanceof InsetDrawable);
|
||||
}
|
||||
|
||||
private void assertListTemplateInflated(SetupWizardLayout layout) {
|
||||
View decorView = layout.findViewById(R.id.suw_layout_decor);
|
||||
View navbar = layout.findViewById(R.id.suw_layout_navigation_bar);
|
||||
|
|
Loading…
Reference in a new issue