Files
app_Settings/src/com/android/settings/homepage/contextualcards/conditional/ConditionalContextualCard.java
Emily Chuang f7f1b9b233 Sort contextual cards based on their score.
Fixes: 119493779
Bug: 111822376
Test: robotests
Change-Id: I254cba3c92ca1b58633f2ea6b2fa381607549e0c
2018-11-14 10:37:25 +08:00

95 lines
2.7 KiB
Java

/*
* Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.homepage.contextualcards.conditional;
import androidx.annotation.VisibleForTesting;
import com.android.settings.homepage.contextualcards.ContextualCard;
/**
* Data class representing a conditional {@link ContextualCard}.
*
* Use this class to store additional attributes on top of {@link ContextualCard} for
* {@link ConditionalCardController}.
*/
public class ConditionalContextualCard extends ContextualCard {
@VisibleForTesting
static final double UNSUPPORTED_RANKING_SCORE = -100.0;
private final long mConditionId;
private final int mMetricsConstant;
private final CharSequence mActionText;
private ConditionalContextualCard(Builder builder) {
super(builder);
mConditionId = builder.mConditionId;
mMetricsConstant = builder.mMetricsConstant;
mActionText = builder.mActionText;
}
@Override
public int getCardType() {
return CardType.CONDITIONAL;
}
public long getConditionId() {
return mConditionId;
}
public int getMetricsConstant() {
return mMetricsConstant;
}
public CharSequence getActionText() {
return mActionText;
}
public static class Builder extends ContextualCard.Builder {
private long mConditionId;
private int mMetricsConstant;
private CharSequence mActionText;
public Builder setConditionId(long id) {
mConditionId = id;
return this;
}
public Builder setMetricsConstant(int metricsConstant) {
mMetricsConstant = metricsConstant;
return this;
}
public Builder setActionText(CharSequence actionText) {
mActionText = actionText;
return this;
}
@Override
public Builder setCardType(int cardType) {
throw new IllegalArgumentException(
"Cannot change card type for " + getClass().getName());
}
public ConditionalContextualCard build() {
setRankingScore(UNSUPPORTED_RANKING_SCORE);
return new ConditionalContextualCard(this);
}
}
}