summaryrefslogtreecommitdiffstats
path: root/src/com/android/incallui/AnswerPresenter.java
diff options
context:
space:
mode:
authorAndrew Lee <anwlee@google.com>2014-08-11 14:44:18 -0700
committerAndrew Lee <anwlee@google.com>2014-08-12 10:19:05 -0700
commitfe4982c221c8ee734afedc4d005661d9c6c1ac31 (patch)
tree5afd183511121acafc0a7a9acddc82519b1bfd6b /src/com/android/incallui/AnswerPresenter.java
parent9ff410b616d3cfeda55b8e0ca157f44ed482cb1c (diff)
downloadpackages_apps_InCallUI-fe4982c221c8ee734afedc4d005661d9c6c1ac31.tar.gz
packages_apps_InCallUI-fe4982c221c8ee734afedc4d005661d9c6c1ac31.tar.bz2
packages_apps_InCallUI-fe4982c221c8ee734afedc4d005661d9c6c1ac31.zip
Add UI/functions to handle a video upgrade request.
+ Move session modification listener into the video call presenter. + Add new video accept/reject notification and full-screen UI. + Added "handling" which sends session modification response. Bug: 16657915 Change-Id: I35ff04e383d4938cbfb4e76677730f82557fd918
Diffstat (limited to 'src/com/android/incallui/AnswerPresenter.java')
-rw-r--r--src/com/android/incallui/AnswerPresenter.java29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/com/android/incallui/AnswerPresenter.java b/src/com/android/incallui/AnswerPresenter.java
index 52112de4..0616b7e0 100644
--- a/src/com/android/incallui/AnswerPresenter.java
+++ b/src/com/android/incallui/AnswerPresenter.java
@@ -16,6 +16,7 @@
package com.android.incallui;
+import android.content.Context;
import android.telecomm.CallCapabilities;
import java.util.List;
@@ -36,11 +37,15 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi>
super.onUiReady(ui);
final CallList calls = CallList.getInstance();
- final Call call = calls.getIncomingCall();
- // TODO: change so that answer presenter never starts up if it's not incoming.
+ Call call;
+ call = calls.getIncomingCall();
if (call != null) {
processIncomingCall(call);
}
+ call = calls.getVideoUpgradeRequestCall();
+ if (call != null) {
+ processVideoUpgradeRequestCall(call);
+ }
// Listen for incoming calls.
calls.addListener(this);
@@ -111,6 +116,17 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi>
}
}
+ private void processVideoUpgradeRequestCall(Call call) {
+ mCallId = call.getId();
+ mCall = call;
+
+ // Listen for call updates for the current call.
+ CallList.getInstance().addCallUpdateListener(mCallId, this);
+ getUi().showAnswerUi(true);
+
+ getUi().showTargets(AnswerFragment.TARGET_SET_FOR_VIDEO_UPGRADE_REQUEST);
+ }
+
@Override
public void onCallChanged(Call call) {
Log.d(this, "onCallStateChange() " + call + " " + this);
@@ -126,13 +142,18 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi>
}
}
- public void onAnswer(int videoState) {
+ public void onAnswer(int videoState, Context context) {
if (mCallId == null) {
return;
}
Log.d(this, "onAnswer " + mCallId);
- TelecommAdapter.getInstance().answerCall(mCall.getId(), videoState);
+ if (mCall.getSessionModificationState()
+ == Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
+ InCallPresenter.getInstance().acceptUpgradeRequest(context);
+ } else {
+ TelecommAdapter.getInstance().answerCall(mCall.getId(), videoState);
+ }
}
/**