summaryrefslogtreecommitdiffstats
path: root/java/com/android/incallui/incall/impl/MappedButtonConfig.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/incallui/incall/impl/MappedButtonConfig.java')
-rw-r--r--java/com/android/incallui/incall/impl/MappedButtonConfig.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/java/com/android/incallui/incall/impl/MappedButtonConfig.java b/java/com/android/incallui/incall/impl/MappedButtonConfig.java
index 722983796..67c4137b9 100644
--- a/java/com/android/incallui/incall/impl/MappedButtonConfig.java
+++ b/java/com/android/incallui/incall/impl/MappedButtonConfig.java
@@ -141,7 +141,7 @@ final class MappedButtonConfig {
}
@NonNull
- private MappingInfo lookupMappingInfo(@InCallButtonIds int button) {
+ public MappingInfo lookupMappingInfo(@InCallButtonIds int button) {
MappingInfo info = mapping.get(button);
if (info == null) {
throw new IllegalArgumentException(
@@ -154,6 +154,8 @@ final class MappedButtonConfig {
@AutoValue
abstract static class MappingInfo {
+ public static final int NO_MUTUALLY_EXCLUSIVE_BUTTON_SET = -1;
+
/** The Ui slot into which a given button desires to be placed. */
public abstract int getSlot();
@@ -171,11 +173,20 @@ final class MappedButtonConfig {
*/
public abstract int getConflictOrder();
+ /**
+ * Returns an integer representing a button for which the given button conflicts. Defaults to
+ * {@link NO_MUTUALLY_EXCLUSIVE_BUTTON_SET}.
+ *
+ * <p>If the mutually exclusive button is chosen, the associated button should never be chosen.
+ */
+ public abstract @InCallButtonIds int getMutuallyExclusiveButton();
+
static Builder builder(int slot) {
return new AutoValue_MappedButtonConfig_MappingInfo.Builder()
.setSlot(slot)
.setSlotOrder(Integer.MAX_VALUE)
- .setConflictOrder(Integer.MAX_VALUE);
+ .setConflictOrder(Integer.MAX_VALUE)
+ .setMutuallyExclusiveButton(NO_MUTUALLY_EXCLUSIVE_BUTTON_SET);
}
/** Class used to build instances of {@link MappingInfo}. */
@@ -187,6 +198,8 @@ final class MappedButtonConfig {
public abstract Builder setConflictOrder(int conflictOrder);
+ public abstract Builder setMutuallyExclusiveButton(@InCallButtonIds int button);
+
public abstract MappingInfo build();
}
}