Loading src/com/android/settings/homepage/contextualcards/ContextualCard.java +14 −0 Original line number Diff line number Diff line Loading @@ -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() { Loading Loading @@ -142,6 +143,10 @@ public class ContextualCard { return mIsHalfWidth; } public boolean isLargeCard() { return mIsLargeCard; } boolean isCustomCard() { return TextUtils.isEmpty(mSliceUri); } Loading Loading @@ -170,6 +175,7 @@ public class ContextualCard { mExpireTimeMS = builder.mExpireTimeMS; mIconDrawable = builder.mIconDrawable; mIsHalfWidth = builder.mIsHalfWidth; mIsLargeCard = builder.mIsLargeCard; } ContextualCard(Cursor c) { Loading Loading @@ -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); } Loading Loading @@ -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; Loading Loading @@ -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); } Loading src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java +9 −3 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading @@ -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); } Loading src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java +6 −0 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading
src/com/android/settings/homepage/contextualcards/ContextualCard.java +14 −0 Original line number Diff line number Diff line Loading @@ -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() { Loading Loading @@ -142,6 +143,10 @@ public class ContextualCard { return mIsHalfWidth; } public boolean isLargeCard() { return mIsLargeCard; } boolean isCustomCard() { return TextUtils.isEmpty(mSliceUri); } Loading Loading @@ -170,6 +175,7 @@ public class ContextualCard { mExpireTimeMS = builder.mExpireTimeMS; mIconDrawable = builder.mIconDrawable; mIsHalfWidth = builder.mIsHalfWidth; mIsLargeCard = builder.mIsLargeCard; } ContextualCard(Cursor c) { Loading Loading @@ -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); } Loading Loading @@ -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; Loading Loading @@ -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); } Loading
src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java +9 −3 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading @@ -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); } Loading
src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java +6 −0 Original line number Diff line number Diff line Loading @@ -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); } Loading