Implement the collapsible feature of conditional card

Add two control views for conditional card to achieve collapsibility.
One of these control views is a footer that is appended to the last
position when expanding all conditional cards. The other is a header
that is used in the collapsed state of conditional cards.

Bug: 119593268
Bug: 113451905
Test: visual, robotests
Change-Id: I39e79b8925a9e3e4ce80c422bcd0ba889aba5f6a
This commit is contained in:
Mill Chen
2018-11-07 22:55:21 +08:00
parent 7fb3461a59
commit da1ffe8807
5 changed files with 146 additions and 9 deletions

View File

@@ -16,9 +16,12 @@
package com.android.settings.homepage.contextualcards.conditional;
import android.text.TextUtils;
import com.android.settings.homepage.contextualcards.ContextualCard;
import java.util.List;
import java.util.Objects;
/**
* Data class representing a condition header {@link ContextualCard}.
@@ -44,6 +47,25 @@ public class ConditionHeaderContextualCard extends ContextualCard {
return mConditionalCards;
}
@Override
public int hashCode() {
return Objects.hash(getName(), mConditionalCards);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof ConditionHeaderContextualCard)) {
return false;
}
final ConditionHeaderContextualCard that = (ConditionHeaderContextualCard) obj;
return TextUtils.equals(getName(), that.getName()) && mConditionalCards.equals(
that.mConditionalCards);
}
public static class Builder extends ContextualCard.Builder {
private List<ContextualCard> mConditionalCards;