summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--InCallUI/res/values/qticonfig.xml2
-rw-r--r--InCallUI/src/com/android/incallui/CallButtonPresenter.java29
-rw-r--r--InCallUI/src/com/android/incallui/QtiCallUtils.java16
3 files changed, 38 insertions, 9 deletions
diff --git a/InCallUI/res/values/qticonfig.xml b/InCallUI/res/values/qticonfig.xml
index 67c50f343..7572fcd31 100644
--- a/InCallUI/res/values/qticonfig.xml
+++ b/InCallUI/res/values/qticonfig.xml
@@ -27,8 +27,6 @@
~ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<resources>
- <!-- Determines UI extensions for video calls should be used. -->
- <bool name="video_call_use_ext">true</bool>
<!-- Config to show/hide Video quality toast -->
<bool name="config_display_video_quality_toast">true</bool>
<!-- Config to show/hide call session event toast like player start/stop -->
diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
index 4fbce2a6c..1b6630e45 100644
--- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
@@ -316,6 +316,11 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
VideoProfile videoProfile = new VideoProfile(VideoProfile.STATE_AUDIO_ONLY);
videoCall.sendSessionModifyRequest(videoProfile);
+
+ if (QtiCallUtils.useCustomVideoUi(getUi().getContext())) {
+ InCallAudioManager.getInstance().onModifyCallClicked(mCall,
+ VideoProfile.STATE_AUDIO_ONLY);
+ }
}
public void showDialpadClicked(boolean checked) {
@@ -341,6 +346,11 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
VideoProfile videoProfile = new VideoProfile(currUnpausedVideoState);
videoCall.sendSessionModifyRequest(videoProfile);
mCall.setSessionModificationState(Call.SessionModificationState.WAITING_FOR_RESPONSE);
+
+ if (QtiCallUtils.useCustomVideoUi(context)) {
+ InCallAudioManager.getInstance().onModifyCallClicked(mCall,
+ currUnpausedVideoState);
+ }
}
public void changeToVideo(int videoState) {
@@ -481,11 +491,20 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
final boolean showMerge = call.can(
android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE);
final boolean useExt = QtiCallUtils.useExt(ui.getContext());
-
+ final boolean useCustomVideoUi =
+ QtiCallUtils.useCustomVideoUi(ui.getContext());
final boolean isCallActive = call.getState() == Call.State.ACTIVE;
- final boolean showUpgradeToVideo = (!isVideo && !useExt && hasVideoCallCapabilities(call))
- || (useExt && QtiCallUtils.hasVoiceOrVideoCapabilities(call)
- && (isCallActive || isCallOnHold));
+
+ final boolean showUpgradeToVideo =
+ /* When useExt is true, show upgrade button for an active/held
+ call if the call has either voice or video capabilities */
+ ((useExt && QtiCallUtils.hasVoiceOrVideoCapabilities(call)) ||
+ /* When useCustomVideoUi is true, show upgrade button for an active/held
+ voice call only if the current call has video capabilities */
+ (useCustomVideoUi && !isVideo && hasVideoCallCapabilities(call))
+ && (isCallActive || isCallOnHold)) ||
+ /* When useExt and custom UI are false, default to Google behaviour */
+ (!isVideo && !useExt && !useCustomVideoUi && hasVideoCallCapabilities(call));
final boolean showDowngradeToAudio = isVideo && isDowngradeToAudioSupported(call);
final int callState = call.getState();
@@ -524,7 +543,7 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
ui.showButton(BUTTON_UPGRADE_TO_VIDEO, showUpgradeToVideo && !mEnhanceEnable);
ui.showButton(BUTTON_DOWNGRADE_TO_AUDIO, showDowngradeToAudio && !useExt);
ui.showButton(BUTTON_SWITCH_CAMERA, isVideo);
- ui.showButton(BUTTON_PAUSE_VIDEO, isVideo && !useExt);
+ ui.showButton(BUTTON_PAUSE_VIDEO, isVideo && !useExt && !useCustomVideoUi);
ui.showButton(BUTTON_DIALPAD, true);
ui.showButton(BUTTON_MERGE, showMerge);
ui.showButton(BUTTON_ADD_PARTICIPANT, showAddParticipant && !mEnhanceEnable);
diff --git a/InCallUI/src/com/android/incallui/QtiCallUtils.java b/InCallUI/src/com/android/incallui/QtiCallUtils.java
index 234fa4d78..6a4383ad0 100644
--- a/InCallUI/src/com/android/incallui/QtiCallUtils.java
+++ b/InCallUI/src/com/android/incallui/QtiCallUtils.java
@@ -51,6 +51,7 @@ import java.util.ArrayList;
import org.codeaurora.internal.IExtTelephony;
import org.codeaurora.ims.QtiCallConstants;
+import org.codeaurora.ims.utils.QtiImsExtUtils;
/**
* This class contains Qti specific utiltity functions.
@@ -239,7 +240,18 @@ public class QtiCallUtils {
if (context == null) {
Log.w(context, "Context is null...");
}
- return context != null && context.getResources().getBoolean(R.bool.video_call_use_ext);
+ return context != null && QtiImsExtUtils.useExt(context);
+ }
+
+ /**
+ * Checks the boolean flag in config file to figure out if custom video ui is required or
+ * not
+ */
+ public static boolean useCustomVideoUi(Context context) {
+ if (context == null) {
+ Log.w(context, "Context is null...");
+ }
+ return context != null && QtiImsExtUtils.useCustomVideoUi(context);
}
/**
@@ -515,7 +527,7 @@ public class QtiCallUtils {
/**
* Returns true if local has the VT Receive and if remote capability has VT Transmit set i.e.
- * Local can transmit and remote can receive
+ * Remote can transmit and local can receive
*/
public static boolean hasReceiveVideoCapabilities(Call call) {
return call != null &&