Fixes: 119493779 Bug: 111822376 Test: robotests Change-Id: I254cba3c92ca1b58633f2ea6b2fa381607549e0c
95 lines
2.7 KiB
Java
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);
|
|
}
|
|
}
|
|
} |