From 810d43daa31bf481f09c9ed46ac020d6e7c685d3 Mon Sep 17 00:00:00 2001 From: wangqi Date: Wed, 9 May 2018 16:43:35 -0700 Subject: Add RTT after call promo bottomsheet. Bug: 67596257 Test: unit tests PiperOrigin-RevId: 196049621 Change-Id: I6f9c6292b1d56e3faf7808aa668b03d07230a70b --- java/com/android/incallui/call/CallList.java | 4 ++++ java/com/android/incallui/call/DialerCall.java | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'java/com/android/incallui') diff --git a/java/com/android/incallui/call/CallList.java b/java/com/android/incallui/call/CallList.java index 0e89ac75d..4d737e544 100644 --- a/java/com/android/incallui/call/CallList.java +++ b/java/com/android/incallui/call/CallList.java @@ -39,6 +39,7 @@ import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; import com.android.dialer.metrics.Metrics; import com.android.dialer.metrics.MetricsComponent; +import com.android.dialer.promotion.RttPromotion; import com.android.dialer.shortcuts.ShortcutUsageReporter; import com.android.dialer.spam.Spam; import com.android.dialer.spam.SpamComponent; @@ -226,6 +227,9 @@ public class CallList implements DialerCallDelegate { if (call.getState() == DialerCallState.INCOMING || call.getState() == DialerCallState.CALL_WAITING) { if (call.isActiveRttCall()) { + if (!call.isPhoneAccountRttCapable()) { + new RttPromotion(context).setShouldShow(true); + } Logger.get(context) .logCallImpression( DialerImpression.Type.INCOMING_RTT_CALL, diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java index 77e2ea30b..4db55478f 100644 --- a/java/com/android/incallui/call/DialerCall.java +++ b/java/com/android/incallui/call/DialerCall.java @@ -1067,7 +1067,7 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa } @TargetApi(28) - public boolean canUpgradeToRttCall() { + public boolean isPhoneAccountRttCapable() { PhoneAccount phoneAccount = getPhoneAccount(); if (phoneAccount == null) { return false; @@ -1075,6 +1075,14 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa if (!phoneAccount.hasCapabilities(PhoneAccount.CAPABILITY_RTT)) { return false; } + return true; + } + + @TargetApi(28) + public boolean canUpgradeToRttCall() { + if (!isPhoneAccountRttCapable()) { + return false; + } if (isActiveRttCall()) { return false; } -- cgit v1.2.3 From 95b2a789dd744d4b85976094e640a6a51cea057c Mon Sep 17 00:00:00 2001 From: weijiaxu Date: Thu, 10 May 2018 12:57:58 -0700 Subject: Add @InstallIn and @IncludeInDialerRoot to dagger modules in dialer codebase. Test: presubmit. PiperOrigin-RevId: 196158524 Change-Id: Iec1e457039e97be0236cd700d397b4095ee3c2c3 --- .../com/android/incallui/calllocation/stub/StubCallLocationModule.java | 3 +++ java/com/android/incallui/speakeasy/StubSpeakEasyModule.java | 3 +++ 2 files changed, 6 insertions(+) (limited to 'java/com/android/incallui') diff --git a/java/com/android/incallui/calllocation/stub/StubCallLocationModule.java b/java/com/android/incallui/calllocation/stub/StubCallLocationModule.java index 20460699a..c60663bff 100644 --- a/java/com/android/incallui/calllocation/stub/StubCallLocationModule.java +++ b/java/com/android/incallui/calllocation/stub/StubCallLocationModule.java @@ -20,12 +20,15 @@ import android.content.Context; import android.support.annotation.NonNull; import android.support.v4.app.Fragment; import com.android.dialer.common.Assert; +import com.android.dialer.inject.DialerVariant; +import com.android.dialer.inject.InstallIn; import com.android.incallui.calllocation.CallLocation; import dagger.Binds; import dagger.Module; import javax.inject.Inject; /** This module provides an instance of call location. */ +@InstallIn(variants = {DialerVariant.DIALER_TEST}) @Module public abstract class StubCallLocationModule { diff --git a/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java b/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java index 960692b20..d5f644372 100644 --- a/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java +++ b/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java @@ -17,12 +17,15 @@ package com.android.incallui.speakeasy; import android.support.v4.app.Fragment; +import com.android.dialer.inject.DialerVariant; +import com.android.dialer.inject.InstallIn; import com.google.common.base.Optional; import dagger.Binds; import dagger.Module; import dagger.Provides; /** Module which binds {@link SpeakEasyCallManagerStub}. */ +@InstallIn(variants = {DialerVariant.DIALER_TEST}) @Module public abstract class StubSpeakEasyModule { -- cgit v1.2.3 From 56a4cda95e3f204e2a533a1921e14d2615638021 Mon Sep 17 00:00:00 2001 From: uabdullah Date: Thu, 10 May 2018 16:38:35 -0700 Subject: Update logging in incallactivity. Bug: 194611503 Test: Unit Test PiperOrigin-RevId: 196190392 Change-Id: I11fc1a02bd89207bf1c2d12f2821ef4447529c6e --- java/com/android/incallui/InCallActivity.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'java/com/android/incallui') diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java index 98f001925..70ba71ba1 100644 --- a/java/com/android/incallui/InCallActivity.java +++ b/java/com/android/incallui/InCallActivity.java @@ -1247,13 +1247,13 @@ public class InCallActivity extends TransactionSafeFragmentActivity ShouldShowUiResult shouldShowSpeakEasyUi = getShouldShowSpeakEasyUi(); LogUtil.i( "InCallActivity.showMainInCallFragment", - "shouldShowAnswerUi: %b, shouldShowRttUi: %b, shouldShowVideoUi: %b " - + "didShowAnswerScreen: %b, didShowInCallScreen: %b, didShowRttCallScreen: %b, " - + "didShowVideoCallScreen: %b" - + "didShowSpeakEasyScreen: %b", + "shouldShowAnswerUi: %b, shouldShowRttUi: %b, shouldShowVideoUi: %b, " + + "shouldShowSpeakEasyUi: %b, didShowAnswerScreen: %b, didShowInCallScreen: %b, " + + "didShowRttCallScreen: %b, didShowVideoCallScreen: %b, didShowSpeakEasyScreen: %b", shouldShowAnswerUi.shouldShow, shouldShowRttUi.shouldShow, shouldShowVideoUi.shouldShow, + shouldShowSpeakEasyUi.shouldShow, didShowAnswerScreen, didShowInCallScreen, didShowRttCallScreen, -- cgit v1.2.3 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/android/incallui') 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