summaryrefslogtreecommitdiffstats
path: root/src/com/android/incallui/CallButtonPresenter.java
diff options
context:
space:
mode:
authorSantos Cordon <santoscordon@google.com>2014-09-04 16:16:51 -0700
committerSantos Cordon <santoscordon@google.com>2014-09-05 16:18:30 -0700
commit52c30ebe11e132c5b00a15aabdf4a411355bf0f4 (patch)
tree11bd21ac930d208b6adcfad423767cf82cffd2fd /src/com/android/incallui/CallButtonPresenter.java
parent913ee5e915bbfd799f412dcad903dc773680aea4 (diff)
downloadpackages_apps_InCallUI-52c30ebe11e132c5b00a15aabdf4a411355bf0f4.tar.gz
packages_apps_InCallUI-52c30ebe11e132c5b00a15aabdf4a411355bf0f4.tar.bz2
packages_apps_InCallUI-52c30ebe11e132c5b00a15aabdf4a411355bf0f4.zip
Support CDMA conference calling.
Bug:17316859 Change from using GENERIC_CONFERENCE to a better MANAGE_CONFERENCE. Change-Id: I0306aaa5cf4d35bf095d85db63b3d08395394645
Diffstat (limited to 'src/com/android/incallui/CallButtonPresenter.java')
-rw-r--r--src/com/android/incallui/CallButtonPresenter.java31
1 files changed, 17 insertions, 14 deletions
diff --git a/src/com/android/incallui/CallButtonPresenter.java b/src/com/android/incallui/CallButtonPresenter.java
index 575df559..57c90be2 100644
--- a/src/com/android/incallui/CallButtonPresenter.java
+++ b/src/com/android/incallui/CallButtonPresenter.java
@@ -178,6 +178,15 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
}
}
+ public void swapClicked() {
+ if (mCall == null) {
+ return;
+ }
+
+ Log.i(this, "Swapping the call: " + mCall);
+ TelecommAdapter.getInstance().swap(mCall.getId());
+ }
+
public void mergeClicked() {
TelecommAdapter.getInstance().merge(mCall.getId());
}
@@ -330,30 +339,26 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
Log.v(this, "Show hold ", call.can(PhoneCapabilities.SUPPORT_HOLD));
Log.v(this, "Enable hold", call.can(PhoneCapabilities.HOLD));
- Log.v(this, "Show merge ", call.can(PhoneCapabilities.MERGE_CALLS));
- Log.v(this, "Show swap ", call.can(PhoneCapabilities.SWAP_CALLS));
+ Log.v(this, "Show merge ", call.can(PhoneCapabilities.MERGE_CONFERENCE));
+ Log.v(this, "Show swap ", call.can(PhoneCapabilities.SWAP_CONFERENCE));
Log.v(this, "Show add call ", call.can(PhoneCapabilities.ADD_CALL));
Log.v(this, "Show mute ", call.can(PhoneCapabilities.MUTE));
final boolean canAdd = call.can(PhoneCapabilities.ADD_CALL);
final boolean enableHoldOption = call.can(PhoneCapabilities.HOLD);
final boolean supportHold = call.can(PhoneCapabilities.SUPPORT_HOLD);
- final boolean isGenericConference = call.can(PhoneCapabilities.GENERIC_CONFERENCE);
boolean canVideoCall = call.can(PhoneCapabilities.SUPPORTS_VT_LOCAL)
&& call.can(PhoneCapabilities.SUPPORTS_VT_REMOTE);
ui.showChangeToVideoButton(canVideoCall);
- // Show either MERGE or ADD. Only show both if, for CDMA, we're in a generic conference.
- final boolean showMergeOption = call.can(PhoneCapabilities.MERGE_CALLS);
- final boolean showAddCallOption = canAdd && (isGenericConference || !showMergeOption);
- final boolean enableAddCallOption = showAddCallOption && canAdd;
+ final boolean showMergeOption = call.can(PhoneCapabilities.MERGE_CONFERENCE);
+ final boolean showAddCallOption = canAdd;
+
// Show either HOLD or SWAP, but not both. If neither HOLD or SWAP is available:
// (1) If the device normally can hold, show HOLD in a disabled state.
// (2) If the device doesn't have the concept of hold/swap, remove the button.
- final CallList callList = CallList.getInstance();
- final boolean showSwapOption = enableHoldOption && (callList.getActiveCall() != null)
- && (callList.getBackgroundCall() != null);
+ final boolean showSwapOption = call.can(PhoneCapabilities.SWAP_CONFERENCE);
final boolean showHoldOption = !showSwapOption && (enableHoldOption || supportHold);
ui.setHold(call.getState() == Call.State.ONHOLD);
@@ -373,7 +378,7 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
ui.showOverflowButton(true);
ui.configureOverflowMenu(
showMergeOption,
- showAddCallOption && enableAddCallOption /* showAddMenuOption */,
+ showAddCallOption /* showAddMenuOption */,
showHoldOption && enableHoldOption /* showHoldMenuOption */,
showSwapOption);
} else {
@@ -383,13 +388,12 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
ui.configureOverflowMenu(
showMergeOption,
- showAddCallOption && enableAddCallOption /* showAddMenuOption */,
+ showAddCallOption /* showAddMenuOption */,
false /* showHoldMenuOption */,
false /* showSwapMenuOption */);
} else {
ui.showMergeButton(showMergeOption);
ui.showAddCallButton(showAddCallOption);
- ui.enableAddCall(enableAddCallOption);
}
ui.showHoldButton(showHoldOption);
@@ -425,7 +429,6 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
void showSwitchCameraButton(boolean show);
void setSwitchCameraButton(boolean isBackFacingCamera);
void showAddCallButton(boolean show);
- void enableAddCall(boolean enabled);
void showMergeButton(boolean show);
void showPauseVideoButton(boolean show);
void setPauseVideoButton(boolean isPaused);