summaryrefslogtreecommitdiff
path: root/InCallUI/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
commit9c98346835b8e902e0c2c11f14a35f4e91578e9f (patch)
tree83aefdcecd5d19d378f24b8dbd10c6896fdd2b27 /InCallUI/src/com/android/incallui/AnswerPresenter.java
parentc4abc8aee5ff3d92f1ca255ba271f6f46ecd6cc8 (diff)
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 'InCallUI/src/com/android/incallui/AnswerPresenter.java')
-rw-r--r--InCallUI/src/com/android/incallui/AnswerPresenter.java29
1 files changed, 25 insertions, 4 deletions
diff --git a/InCallUI/src/com/android/incallui/AnswerPresenter.java b/InCallUI/src/com/android/incallui/AnswerPresenter.java
index 52112de42..0616b7e0a 100644
--- a/InCallUI/src/com/android/incallui/AnswerPresenter.java
+++ b/InCallUI/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);
+ }
}
/**