Merge "Add vertical and horizontal dividers for large cards of homepage"

This commit is contained in:
TreeHugger Robot
2018-12-13 03:55:34 +00:00
committed by Android (Google) Code Review
3 changed files with 29 additions and 3 deletions

View File

@@ -64,6 +64,7 @@ public class ContextualCard {
private final int mCardAction;
private final long mExpireTimeMS;
private final boolean mIsHalfWidth;
private final boolean mIsLargeCard;
private final Drawable mIconDrawable;
public String getName() {
@@ -142,6 +143,10 @@ public class ContextualCard {
return mIsHalfWidth;
}
public boolean isLargeCard() {
return mIsLargeCard;
}
boolean isCustomCard() {
return TextUtils.isEmpty(mSliceUri);
}
@@ -170,6 +175,7 @@ public class ContextualCard {
mExpireTimeMS = builder.mExpireTimeMS;
mIconDrawable = builder.mIconDrawable;
mIsHalfWidth = builder.mIsHalfWidth;
mIsLargeCard = builder.mIsLargeCard;
}
ContextualCard(Cursor c) {
@@ -212,6 +218,8 @@ public class ContextualCard {
mIsHalfWidth = (c.getInt(
c.getColumnIndex(CardDatabaseHelper.CardColumns.SUPPORT_HALF_WIDTH)) == 1);
mBuilder.setIsHalfWidth(mIsHalfWidth);
mIsLargeCard = false;
mBuilder.setIsLargeCard(mIsLargeCard);
mIconDrawable = null;
mBuilder.setIconDrawable(mIconDrawable);
}
@@ -256,6 +264,7 @@ public class ContextualCard {
private long mExpireTimeMS;
private Drawable mIconDrawable;
private boolean mIsHalfWidth;
private boolean mIsLargeCard;
public Builder setName(String name) {
mName = name;
@@ -347,6 +356,11 @@ public class ContextualCard {
return this;
}
public Builder setIsLargeCard(boolean isLargeCard) {
mIsLargeCard = isLargeCard;
return this;
}
public ContextualCard build() {
return new ContextualCard(this);
}

View File

@@ -97,6 +97,8 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
final ContextualCard card = new ContextualCard(cursor);
if (card.isCustomCard()) {
//TODO(b/114688391): Load and generate custom card,then add into list
} else if (isLargeCard(card)) {
result.add(card.mutate().setIsLargeCard(true).build());
} else {
result.add(card);
}
@@ -195,11 +197,15 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
private int getNumberOfLargeCard(List<ContextualCard> cards) {
return (int) cards.stream()
.filter(card -> card.getSliceUri().equals(WIFI_SLICE_URI)
|| card.getSliceUri().equals(BLUETOOTH_DEVICES_SLICE_URI))
.filter(card -> isLargeCard(card))
.count();
}
private boolean isLargeCard(ContextualCard card) {
return card.getSliceUri().equals(WIFI_SLICE_URI)
|| card.getSliceUri().equals(BLUETOOTH_DEVICES_SLICE_URI);
}
public interface CardContentLoaderListener {
void onFinishCardLoading(List<ContextualCard> contextualCards);
}

View File

@@ -131,6 +131,12 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer,
// Set this listener so we can log the interaction users make on the slice
cardHolder.sliceView.setOnSliceActionListener(this);
// Customize slice view for Settings
if (card.isLargeCard()) {
cardHolder.sliceView.showHeaderDivider(true);
cardHolder.sliceView.showActionDividers(true);
}
initDismissalActions(cardHolder, card);
}