Add vertical and horizontal dividers for large cards of homepage

- Add a new field in ContextualCard to store whether this card is a large one
- Set dividers for large cards in renderer

Fixes: 119528161
Fixes: 119641839
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.homepage
Change-Id: I5cb95214789f44ccfd8d9ce2177ca2b84835b7a4
This commit is contained in:
Jason Chiu
2018-12-12 12:08:26 +08:00
parent 2602e42b65
commit c0c5511862
3 changed files with 29 additions and 3 deletions

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,12 +197,16 @@ 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);
}
}
}