summaryrefslogtreecommitdiff
path: root/java/com/android/incallui/call
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/incallui/call')
-rw-r--r--java/com/android/incallui/call/CallList.java14
-rw-r--r--java/com/android/incallui/call/DialerCall.java15
-rw-r--r--java/com/android/incallui/call/DialerCallListener.java2
3 files changed, 30 insertions, 1 deletions
diff --git a/java/com/android/incallui/call/CallList.java b/java/com/android/incallui/call/CallList.java
index 0e89ac75d..13be252dd 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,
@@ -816,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);
@@ -894,6 +901,13 @@ public class CallList implements DialerCallDelegate {
}
@Override
+ public void onDialerCallSpeakEasyStateChange() {
+ for (Listener listener : listeners) {
+ listener.onSpeakEasyStateChange();
+ }
+ }
+
+ @Override
public void onDialerCallUpgradeToVideo() {
for (Listener listener : listeners) {
listener.onUpgradeToVideo(call);
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java
index 77e2ea30b..431634a0c 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;
}
@@ -1718,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();