summaryrefslogtreecommitdiff
path: root/java/com/android/contacts/common/compat
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2017-06-19 12:40:59 -0700
committerEric Erfanian <erfanian@google.com>2017-06-19 20:00:08 +0000
commitea7890cd5e829ed3f0b5f726561c569690af2030 (patch)
tree235ab5ab9f9215782c29ef350d275fe12e7b2f74 /java/com/android/contacts/common/compat
parent91ce7d2a476bd04fe525049a37a2f8b2824e9724 (diff)
Update AOSP Dialer source from internal google3 repository at
cl/159428781. Test: make, treehugger This CL updates the AOSP Dialer source with all the changes that have gone into the private google3 repository. This includes all the changes from cl/158012278 (6/05/2017) to cl/159428781 (6/19/2017). This goal of these drops is to keep the AOSP source in sync with the internal google3 repository. Currently these sync are done by hand with very minor modifications to the internal source code. See the Android.mk file for list of modifications. Our current goal is to do frequent drops (daily if possible) and eventually switched to an automated process. Merged-In: Ie60a84b3936efd0ea3d95d7c86bf96d2b1663030 Change-Id: If1fa394df2609f0d38b4f794c83f4db3f1006484
Diffstat (limited to 'java/com/android/contacts/common/compat')
-rw-r--r--java/com/android/contacts/common/compat/TelephonyManagerCompat.java9
-rw-r--r--java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java24
2 files changed, 33 insertions, 0 deletions
diff --git a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
index 4a16fb855..02113ca55 100644
--- a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
+++ b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
@@ -27,6 +27,7 @@ import android.telecom.PhoneAccountHandle;
import android.telephony.TelephonyManager;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.telecom.TelecomUtil;
import java.lang.reflect.InvocationTargetException;
public class TelephonyManagerCompat {
@@ -39,6 +40,8 @@ public class TelephonyManagerCompat {
public static final String EVENT_CALL_REMOTELY_HELD = "android.telecom.event.CALL_REMOTELY_HELD";
public static final String EVENT_CALL_REMOTELY_UNHELD =
"android.telecom.event.CALL_REMOTELY_UNHELD";
+ public static final String EVENT_MERGE_START = "android.telecom.event.MERGE_START";
+ public static final String EVENT_MERGE_COMPLETE = "android.telecom.event.MERGE_COMPLETE";
public static final String EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC =
"android.telephony.event.EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC";
@@ -163,6 +166,12 @@ public class TelephonyManagerCompat {
public static void handleSecretCode(Context context, String secretCode) {
// Must use system service on O+ to avoid using broadcasts, which are not allowed on O+.
if (BuildCompat.isAtLeastO()) {
+ if (!TelecomUtil.isDefaultDialer(context)) {
+ LogUtil.e(
+ "TelephonyManagerCompat.handleSecretCode",
+ "not default dialer, cannot send special code");
+ return;
+ }
context.getSystemService(TelephonyManager.class).sendDialerSpecialCode(secretCode);
} else {
// System service call is not supported pre-O, so must use a broadcast for N-.
diff --git a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
index 43eae589d..8393b2601 100644
--- a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
+++ b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
@@ -18,6 +18,7 @@ package com.android.contacts.common.compat.telecom;
import android.support.annotation.Nullable;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
+import java.lang.reflect.Field;
/** Compatibility class for {@link android.telecom.TelecomManager}. */
public class TelecomManagerCompat {
@@ -27,6 +28,13 @@ public class TelecomManagerCompat {
public static final String EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS =
"android.telecom.extra.LAST_EMERGENCY_CALLBACK_TIME_MILLIS";
+ // Constants from http://cs/android/frameworks/base/telecomm/java/android/telecom/Call.java.
+ public static final String EVENT_REQUEST_HANDOVER = "android.telecom.event.REQUEST_HANDOVER";
+ public static final String EXTRA_HANDOVER_PHONE_ACCOUNT_HANDLE =
+ "android.telecom.extra.HANDOVER_PHONE_ACCOUNT_HANDLE";
+ public static final String EXTRA_HANDOVER_VIDEO_STATE =
+ "android.telecom.extra.HANDOVER_VIDEO_STATE";
+
/**
* Returns the current SIM call manager. Apps must be prepared for this method to return null,
* indicating that there currently exists no registered SIM call manager.
@@ -41,4 +49,20 @@ public class TelecomManagerCompat {
}
return null;
}
+
+ /**
+ * Handovers are supported from Android O-DR onward. Since there is no API bump from O to O-DR, we
+ * need to use reflection to check the existence of TelecomManager.EXTRA_IS_HANDOVER in
+ * http://cs/android/frameworks/base/telecomm/java/android/telecom/TelecomManager.java.
+ */
+ public static boolean supportsHandover() {
+ //
+ try {
+ Field field = TelecomManager.class.getDeclaredField("EXTRA_IS_HANDOVER");
+ return "android.telecom.extra.IS_HANDOVER".equals(field.get(null /* obj (static field) */));
+ } catch (Exception e) {
+ // Do nothing
+ }
+ return false;
+ }
}