diff options
Diffstat (limited to 'java/com/android/incallui/CallButtonPresenter.java')
-rw-r--r-- | java/com/android/incallui/CallButtonPresenter.java | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/java/com/android/incallui/CallButtonPresenter.java b/java/com/android/incallui/CallButtonPresenter.java index 5c9a31e78..269d93e8c 100644 --- a/java/com/android/incallui/CallButtonPresenter.java +++ b/java/com/android/incallui/CallButtonPresenter.java @@ -47,6 +47,7 @@ import com.android.incallui.call.CallList; import com.android.incallui.call.CallRecorder; import com.android.incallui.call.DialerCall; import com.android.incallui.call.DialerCall.CameraDirection; +import com.android.incallui.call.DialerCallListener; import com.android.incallui.call.TelecomAdapter; import com.android.incallui.call.state.DialerCallState; import com.android.incallui.incall.protocol.InCallButtonIds; @@ -63,7 +64,8 @@ public class CallButtonPresenter InCallDetailsListener, CanAddCallListener, Listener, - InCallButtonUiDelegate { + InCallButtonUiDelegate, + DialerCallListener { private static final String KEY_AUTOMATICALLY_MUTED_BY_ADD_CALL = "incall_key_automatically_muted_by_add_call"; @@ -139,11 +141,18 @@ public class CallButtonPresenter recorder.removeRecordingProgressListener(recordingProgressListener); isInCallButtonUiReady = false; + + if (call != null) { + call.removeListener(this); + } } @Override public void onStateChange(InCallState oldState, InCallState newState, CallList callList) { Trace.beginSection("CallButtonPresenter.onStateChange"); + if (call != null) { + call.removeListener(this); + } if (newState == InCallState.OUTGOING) { call = callList.getOutgoingCall(); } else if (newState == InCallState.INCALL) { @@ -166,6 +175,10 @@ public class CallButtonPresenter } else { call = null; } + + if (call != null) { + call.addListener(this); + } updateUi(newState, call); Trace.endSection(); } @@ -472,7 +485,6 @@ public class CallButtonPresenter call.getTimeAddedMs()); if (pause) { - call.getVideoTech().setCamera(null); call.getVideoTech().stopTransmission(); } else { updateCamera( @@ -668,6 +680,41 @@ public class CallButtonPresenter } @Override + public void onDialerCallSessionModificationStateChange() { + if (inCallButtonUi != null && call != null) { + inCallButtonUi.enableButton(InCallButtonIds.BUTTON_PAUSE_VIDEO, true); + updateButtonsState(call); + } + } + + @Override + public void onDialerCallDisconnect() {} + + @Override + public void onDialerCallUpdate() {} + + @Override + public void onDialerCallChildNumberChange() {} + + @Override + public void onDialerCallLastForwardedNumberChange() {} + + @Override + public void onDialerCallUpgradeToVideo() {} + + @Override + public void onWiFiToLteHandover() {} + + @Override + public void onHandoverToWifiFailure() {} + + @Override + public void onInternationalCallOnWifi() {} + + @Override + public void onEnrichedCallSessionUpdate() {} + + @Override public Context getContext() { return context; } |