Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f10245d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents 1f5fab14 c0c55118
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -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);
        }
+9 −3
Original line number Diff line number Diff line
@@ -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);
    }
+6 −0
Original line number Diff line number Diff line
@@ -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);
    }