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

@@ -26,10 +26,14 @@ import androidx.lifecycle.LifecycleOwner;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.homepage.contextualcards.conditional.ConditionContextualCardController;
import com.android.settings.homepage.contextualcards.conditional.ConditionContextualCardRenderer;
import com.android.settings.homepage.contextualcards.conditional
.ConditionHeaderContextualCardRenderer;
import com.android.settings.homepage.contextualcards.legacysuggestion
.LegacySuggestionContextualCardController;
import com.android.settings.homepage.contextualcards.legacysuggestion
.LegacySuggestionContextualCardRenderer;
import com.android.settings.homepage.contextualcards.conditional
.ConditionFooterContextualCardRenderer;
import com.android.settings.homepage.contextualcards.slices.SliceContextualCardController;
import com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer;
@@ -131,6 +135,12 @@ public class ControllerRendererPool {
} else if (LegacySuggestionContextualCardRenderer.class == clz) {
return new LegacySuggestionContextualCardRenderer(context,
this /* controllerRendererPool */);
} else if (ConditionFooterContextualCardRenderer.class == clz) {
return new ConditionFooterContextualCardRenderer(context,
this /*controllerRendererPool*/);
} else if (ConditionHeaderContextualCardRenderer.class == clz) {
return new ConditionHeaderContextualCardRenderer(context,
this /*controllerRendererPool*/);
}
return null;
}