summaryrefslogtreecommitdiffstats
path: root/java/com/android/incallui/incall/impl/ButtonChooser.java
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-08-20 07:37:09 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-08-20 07:37:09 +0000
commita2f7e5835c8ce84e54abb2fe44abbcd880990c03 (patch)
tree0a3d2fbba5bbf86a0b288a58fb1f96240fdfa5ff /java/com/android/incallui/incall/impl/ButtonChooser.java
parentef2675a77fc2309dc49c5da3fd03f63c823a979e (diff)
parent503f5a513add23b8daafaa3038328ac9cf05e0d6 (diff)
downloadandroid_packages_apps_Dialer-a2f7e5835c8ce84e54abb2fe44abbcd880990c03.tar.gz
android_packages_apps_Dialer-a2f7e5835c8ce84e54abb2fe44abbcd880990c03.tar.bz2
android_packages_apps_Dialer-a2f7e5835c8ce84e54abb2fe44abbcd880990c03.zip
release-request-369362fc-cc6c-4cb1-95c0-90b5ac7c52cb-for-git_oc-mr1-release-4288633 snap-temp-L81700000095141745
Change-Id: I605c3b28a5ac328edc2328d759e18ffb10035cda
Diffstat (limited to 'java/com/android/incallui/incall/impl/ButtonChooser.java')
-rw-r--r--java/com/android/incallui/incall/impl/ButtonChooser.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/java/com/android/incallui/incall/impl/ButtonChooser.java b/java/com/android/incallui/incall/impl/ButtonChooser.java
index 55b82f015..095a8beba 100644
--- a/java/com/android/incallui/incall/impl/ButtonChooser.java
+++ b/java/com/android/incallui/incall/impl/ButtonChooser.java
@@ -18,6 +18,7 @@ package com.android.incallui.incall.impl;
import android.support.annotation.NonNull;
import com.android.dialer.common.Assert;
+import com.android.incallui.incall.impl.MappedButtonConfig.MappingInfo;
import com.android.incallui.incall.protocol.InCallButtonIds;
import java.util.ArrayList;
import java.util.Collections;
@@ -103,12 +104,29 @@ final class ButtonChooser {
if (placedButtons.size() >= numUiButtons) {
return;
}
+
// If the conflict button is allowed but disabled, don't place it since it probably will
// move when it's enabled.
if (!allowedButtons.contains(conflict) || disabledButtons.contains(conflict)) {
continue;
}
+
+ if (isMutuallyExclusiveButtonAvailable(
+ config.lookupMappingInfo(conflict).getMutuallyExclusiveButton(), allowedButtons)) {
+ continue;
+ }
placedButtons.add(conflict);
}
}
+
+ private boolean isMutuallyExclusiveButtonAvailable(
+ int mutuallyExclusiveButton, @NonNull Set<Integer> allowedButtons) {
+ if (mutuallyExclusiveButton == MappingInfo.NO_MUTUALLY_EXCLUSIVE_BUTTON_SET) {
+ return false;
+ }
+ if (allowedButtons.contains(mutuallyExclusiveButton)) {
+ return true;
+ }
+ return false;
+ }
}