Merge "Add vertical and horizontal dividers for large cards of homepage"
This commit is contained in:
committed by
Android (Google) Code Review
commit
5f10245da9
@@ -64,6 +64,7 @@ public class ContextualCard {
|
|||||||
private final int mCardAction;
|
private final int mCardAction;
|
||||||
private final long mExpireTimeMS;
|
private final long mExpireTimeMS;
|
||||||
private final boolean mIsHalfWidth;
|
private final boolean mIsHalfWidth;
|
||||||
|
private final boolean mIsLargeCard;
|
||||||
private final Drawable mIconDrawable;
|
private final Drawable mIconDrawable;
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
@@ -142,6 +143,10 @@ public class ContextualCard {
|
|||||||
return mIsHalfWidth;
|
return mIsHalfWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isLargeCard() {
|
||||||
|
return mIsLargeCard;
|
||||||
|
}
|
||||||
|
|
||||||
boolean isCustomCard() {
|
boolean isCustomCard() {
|
||||||
return TextUtils.isEmpty(mSliceUri);
|
return TextUtils.isEmpty(mSliceUri);
|
||||||
}
|
}
|
||||||
@@ -170,6 +175,7 @@ public class ContextualCard {
|
|||||||
mExpireTimeMS = builder.mExpireTimeMS;
|
mExpireTimeMS = builder.mExpireTimeMS;
|
||||||
mIconDrawable = builder.mIconDrawable;
|
mIconDrawable = builder.mIconDrawable;
|
||||||
mIsHalfWidth = builder.mIsHalfWidth;
|
mIsHalfWidth = builder.mIsHalfWidth;
|
||||||
|
mIsLargeCard = builder.mIsLargeCard;
|
||||||
}
|
}
|
||||||
|
|
||||||
ContextualCard(Cursor c) {
|
ContextualCard(Cursor c) {
|
||||||
@@ -212,6 +218,8 @@ public class ContextualCard {
|
|||||||
mIsHalfWidth = (c.getInt(
|
mIsHalfWidth = (c.getInt(
|
||||||
c.getColumnIndex(CardDatabaseHelper.CardColumns.SUPPORT_HALF_WIDTH)) == 1);
|
c.getColumnIndex(CardDatabaseHelper.CardColumns.SUPPORT_HALF_WIDTH)) == 1);
|
||||||
mBuilder.setIsHalfWidth(mIsHalfWidth);
|
mBuilder.setIsHalfWidth(mIsHalfWidth);
|
||||||
|
mIsLargeCard = false;
|
||||||
|
mBuilder.setIsLargeCard(mIsLargeCard);
|
||||||
mIconDrawable = null;
|
mIconDrawable = null;
|
||||||
mBuilder.setIconDrawable(mIconDrawable);
|
mBuilder.setIconDrawable(mIconDrawable);
|
||||||
}
|
}
|
||||||
@@ -256,6 +264,7 @@ public class ContextualCard {
|
|||||||
private long mExpireTimeMS;
|
private long mExpireTimeMS;
|
||||||
private Drawable mIconDrawable;
|
private Drawable mIconDrawable;
|
||||||
private boolean mIsHalfWidth;
|
private boolean mIsHalfWidth;
|
||||||
|
private boolean mIsLargeCard;
|
||||||
|
|
||||||
public Builder setName(String name) {
|
public Builder setName(String name) {
|
||||||
mName = name;
|
mName = name;
|
||||||
@@ -347,6 +356,11 @@ public class ContextualCard {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Builder setIsLargeCard(boolean isLargeCard) {
|
||||||
|
mIsLargeCard = isLargeCard;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public ContextualCard build() {
|
public ContextualCard build() {
|
||||||
return new ContextualCard(this);
|
return new ContextualCard(this);
|
||||||
}
|
}
|
||||||
|
@@ -97,6 +97,8 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
|
|||||||
final ContextualCard card = new ContextualCard(cursor);
|
final ContextualCard card = new ContextualCard(cursor);
|
||||||
if (card.isCustomCard()) {
|
if (card.isCustomCard()) {
|
||||||
//TODO(b/114688391): Load and generate custom card,then add into list
|
//TODO(b/114688391): Load and generate custom card,then add into list
|
||||||
|
} else if (isLargeCard(card)) {
|
||||||
|
result.add(card.mutate().setIsLargeCard(true).build());
|
||||||
} else {
|
} else {
|
||||||
result.add(card);
|
result.add(card);
|
||||||
}
|
}
|
||||||
@@ -195,11 +197,15 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
|
|||||||
|
|
||||||
private int getNumberOfLargeCard(List<ContextualCard> cards) {
|
private int getNumberOfLargeCard(List<ContextualCard> cards) {
|
||||||
return (int) cards.stream()
|
return (int) cards.stream()
|
||||||
.filter(card -> card.getSliceUri().equals(WIFI_SLICE_URI)
|
.filter(card -> isLargeCard(card))
|
||||||
|| card.getSliceUri().equals(BLUETOOTH_DEVICES_SLICE_URI))
|
|
||||||
.count();
|
.count();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isLargeCard(ContextualCard card) {
|
||||||
|
return card.getSliceUri().equals(WIFI_SLICE_URI)
|
||||||
|
|| card.getSliceUri().equals(BLUETOOTH_DEVICES_SLICE_URI);
|
||||||
|
}
|
||||||
|
|
||||||
public interface CardContentLoaderListener {
|
public interface CardContentLoaderListener {
|
||||||
void onFinishCardLoading(List<ContextualCard> contextualCards);
|
void onFinishCardLoading(List<ContextualCard> contextualCards);
|
||||||
}
|
}
|
||||||
|
@@ -131,6 +131,12 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer,
|
|||||||
// Set this listener so we can log the interaction users make on the slice
|
// Set this listener so we can log the interaction users make on the slice
|
||||||
cardHolder.sliceView.setOnSliceActionListener(this);
|
cardHolder.sliceView.setOnSliceActionListener(this);
|
||||||
|
|
||||||
|
// Customize slice view for Settings
|
||||||
|
if (card.isLargeCard()) {
|
||||||
|
cardHolder.sliceView.showHeaderDivider(true);
|
||||||
|
cardHolder.sliceView.showActionDividers(true);
|
||||||
|
}
|
||||||
|
|
||||||
initDismissalActions(cardHolder, card);
|
initDismissalActions(cardHolder, card);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user