summaryrefslogtreecommitdiffstats
path: root/java/com/android/incallui/InCallPresenter.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/incallui/InCallPresenter.java')
-rw-r--r--java/com/android/incallui/InCallPresenter.java25
1 files changed, 22 insertions, 3 deletions
diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java
index a1643d67c..9c8120c92 100644
--- a/java/com/android/incallui/InCallPresenter.java
+++ b/java/com/android/incallui/InCallPresenter.java
@@ -34,13 +34,13 @@ import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.view.Window;
import android.view.WindowManager;
-import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.compat.CallCompat;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener;
import com.android.dialer.blocking.FilteredNumbersUtil;
import com.android.dialer.common.LogUtil;
import com.android.dialer.enrichedcall.EnrichedCallComponent;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.logging.InteractionEvent;
import com.android.dialer.logging.Logger;
import com.android.dialer.postcall.PostCall;
@@ -249,7 +249,7 @@ public class InCallPresenter implements CallList.Listener {
private VideoSurfaceTexture mLocalVideoSurfaceTexture;
private VideoSurfaceTexture mRemoteVideoSurfaceTexture;
- /** Inaccessible constructor. Must use getInstance() to get this singleton. */
+ /** Inaccessible constructor. Must use getRunningInstance() to get this singleton. */
@VisibleForTesting
InCallPresenter() {}
@@ -260,6 +260,11 @@ public class InCallPresenter implements CallList.Listener {
return sInCallPresenter;
}
+ @VisibleForTesting
+ public static synchronized void setInstanceForTesting(InCallPresenter inCallPresenter) {
+ sInCallPresenter = inCallPresenter;
+ }
+
/**
* Determines whether or not a call has no valid phone accounts that can be used to make the call
* with. Emergency calls do not require a phone account.
@@ -636,6 +641,14 @@ public class InCallPresenter implements CallList.Listener {
}
}
+ @Override
+ public void onInternationalCallOnWifi(@NonNull DialerCall call) {
+ LogUtil.enterBlock("InCallPresenter.onInternationalCallOnWifi");
+ if (mInCallActivity != null) {
+ mInCallActivity.onInternationalCallOnWifi(call);
+ }
+ }
+
/**
* Called when there is a change to the call list. Sets the In-Call state for the entire in-call
* app based on the information it gets from CallList. Dispatches the in-call state to all
@@ -762,11 +775,17 @@ public class InCallPresenter implements CallList.Listener {
if (!mCallList.hasLiveCall()
&& !call.getLogState().isIncoming
+ && !isSecretCode(call.getNumber())
&& !CallerInfoUtils.isVoiceMailNumber(mContext, call)) {
- PostCall.onCallDisconnected(mContext, call.getNumber(), call.getTimeAddedMs());
+ PostCall.onCallDisconnected(mContext, call.getNumber(), call.getConnectTimeMillis());
}
}
+ private boolean isSecretCode(@Nullable String number) {
+ return number != null
+ && (number.length() <= 8 || number.startsWith("*#*#") || number.endsWith("#*#*"));
+ }
+
/** Given the call list, return the state in which the in-call screen should be. */
public InCallState getPotentialStateFromCallList(CallList callList) {