diff options
author | Andrew Lee <anwlee@google.com> | 2014-08-11 14:44:18 -0700 |
---|---|---|
committer | Andrew Lee <anwlee@google.com> | 2014-08-12 10:19:05 -0700 |
commit | 9c98346835b8e902e0c2c11f14a35f4e91578e9f (patch) | |
tree | 83aefdcecd5d19d378f24b8dbd10c6896fdd2b27 /InCallUI/src/com/android/incallui/AnswerPresenter.java | |
parent | c4abc8aee5ff3d92f1ca255ba271f6f46ecd6cc8 (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.java | 29 |
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); + } } /** |