From 3887ab03fe22d9dba2ac43e4e667a60ef9b7aeb2 Mon Sep 17 00:00:00 2001 From: erfanian Date: Fri, 11 May 2018 11:02:53 -0700 Subject: Use listeners to drive fragment lifecycles. Test: tap PiperOrigin-RevId: 196278370 Change-Id: Ied6072caf4a6e87da5ba6395db8c0b0fa55b3f97 --- java/com/android/incallui/AnswerScreenPresenter.java | 3 --- java/com/android/incallui/InCallPresenter.java | 7 +++++++ java/com/android/incallui/call/CallList.java | 10 ++++++++++ java/com/android/incallui/call/DialerCall.java | 5 +++++ java/com/android/incallui/call/DialerCallListener.java | 2 ++ 5 files changed, 24 insertions(+), 3 deletions(-) (limited to 'java/com') diff --git a/java/com/android/incallui/AnswerScreenPresenter.java b/java/com/android/incallui/AnswerScreenPresenter.java index e41bac606..8b789f317 100644 --- a/java/com/android/incallui/AnswerScreenPresenter.java +++ b/java/com/android/incallui/AnswerScreenPresenter.java @@ -176,9 +176,6 @@ public class AnswerScreenPresenter return; } incomingCall.setIsSpeakEasyCall(true); - InCallActivity inCallActivity = - (InCallActivity) answerScreen.getAnswerScreenFragment().getActivity(); - inCallActivity.onPrimaryCallStateChanged(); } @Override diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java index ccc564806..da5d20fa3 100644 --- a/java/com/android/incallui/InCallPresenter.java +++ b/java/com/android/incallui/InCallPresenter.java @@ -989,6 +989,13 @@ public class InCallPresenter implements CallList.Listener, AudioModeProvider.Aud } } + @Override + public void onSpeakEasyStateChange() { + if (inCallActivity != null) { + inCallActivity.onPrimaryCallStateChanged(); + } + } + @Override public void onSessionModificationStateChange(DialerCall call) { int newState = call.getVideoTech().getSessionModificationState(); diff --git a/java/com/android/incallui/call/CallList.java b/java/com/android/incallui/call/CallList.java index 4d737e544..13be252dd 100644 --- a/java/com/android/incallui/call/CallList.java +++ b/java/com/android/incallui/call/CallList.java @@ -820,6 +820,9 @@ public class CallList implements DialerCallDelegate { */ default void onUpgradeToRtt(DialerCall call, int rttRequestId) {} + /** Called when the SpeakEasy state of a Dialer call is mutated. */ + default void onSpeakEasyStateChange() {} + /** Called when the session modification state of a call changes. */ void onSessionModificationStateChange(DialerCall call); @@ -897,6 +900,13 @@ public class CallList implements DialerCallDelegate { } } + @Override + public void onDialerCallSpeakEasyStateChange() { + for (Listener listener : listeners) { + listener.onSpeakEasyStateChange(); + } + } + @Override public void onDialerCallUpgradeToVideo() { for (Listener listener : listeners) { diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java index 4db55478f..431634a0c 100644 --- a/java/com/android/incallui/call/DialerCall.java +++ b/java/com/android/incallui/call/DialerCall.java @@ -1726,6 +1726,11 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa /** Sets the user preference for SpeakEasy */ public void setIsSpeakEasyCall(boolean isSpeakEasyCall) { this.isSpeakEasyCall = isSpeakEasyCall; + if (listeners != null) { + for (DialerCallListener listener : listeners) { + listener.onDialerCallSpeakEasyStateChange(); + } + } } /** diff --git a/java/com/android/incallui/call/DialerCallListener.java b/java/com/android/incallui/call/DialerCallListener.java index 37c30d30c..a42ccbd66 100644 --- a/java/com/android/incallui/call/DialerCallListener.java +++ b/java/com/android/incallui/call/DialerCallListener.java @@ -31,6 +31,8 @@ public interface DialerCallListener { default void onDialerCallUpgradeToRtt(int rttRequestId) {} + default void onDialerCallSpeakEasyStateChange() {} + void onDialerCallSessionModificationStateChange(); void onWiFiToLteHandover(); -- cgit v1.2.3