From cded3beaf28a703e1ef8f71bbc6836e6806c3736 Mon Sep 17 00:00:00 2001 From: Tobias Thierer Date: Fri, 9 Jun 2017 14:16:05 +0000 Subject: Revert "Update AOSP Dialer source from internal google3 repository at cl/158012278. am: 91ce7d2a47" This reverts commit c67d658e7daa453fe9ad9fd1a37f81eaf2048c44. Reason for revert: This CL broke the sailfish-userdebug_javac-all target on master. Change-Id: I9b54333a654c00154ca84f4ece84bea4f07cc19b --- .../android/dialer/oem/CequintCallerIdManager.java | 98 ++++++++++++++++------ .../dialer/oem/MotorolaHiddenMenuKeySequence.java | 4 +- java/com/android/dialer/oem/MotorolaUtils.java | 25 ------ .../res/values-mcc310-mnc000/motorola_config.xml | 17 +--- .../res/values-mcc310-mnc120/motorola_config.xml | 17 +--- .../res/values-mcc311-mnc490/motorola_config.xml | 17 +--- .../res/values-mcc311-mnc870/motorola_config.xml | 17 +--- .../res/values-mcc312-mnc530/motorola_config.xml | 17 +--- .../res/values-mcc316-mnc010/motorola_config.xml | 17 +--- .../dialer/oem/res/values/motorola_config.xml | 19 +---- 10 files changed, 83 insertions(+), 165 deletions(-) (limited to 'java/com/android/dialer/oem') diff --git a/java/com/android/dialer/oem/CequintCallerIdManager.java b/java/com/android/dialer/oem/CequintCallerIdManager.java index 806d553eb..095ee4e66 100644 --- a/java/com/android/dialer/oem/CequintCallerIdManager.java +++ b/java/com/android/dialer/oem/CequintCallerIdManager.java @@ -18,6 +18,7 @@ package com.android.dialer.oem; import android.annotation.TargetApi; import android.content.Context; import android.content.pm.PackageManager; +import android.database.ContentObserver; import android.database.Cursor; import android.net.Uri; import android.os.Build.VERSION_CODES; @@ -30,6 +31,7 @@ import android.text.TextUtils; import com.android.dialer.common.Assert; import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; +import com.android.dialer.util.PermissionsUtil; import java.util.concurrent.ConcurrentHashMap; /** @@ -71,12 +73,17 @@ public class CequintCallerIdManager { private static final String IMAGE = "cid_pLogo"; private static final String DISPLAY_NAME = "cid_pDisplayName"; + // TODO: Revisit it and maybe remove it if it's not necessary. + private static final ConcurrentHashMap callLogCache = + new ConcurrentHashMap<>(); + private static final ConcurrentHashMap incallIncomingCallCache = + new ConcurrentHashMap<>(); + private static final ConcurrentHashMap incallOutgoingCallCache = + new ConcurrentHashMap<>(); + private static boolean hasRegisteredContentObserver; private static boolean hasAlreadyCheckedCequintCallerIdPackage; private static boolean isCequintCallerIdEnabled; - // TODO: Revisit it and maybe remove it if it's not necessary. - private final ConcurrentHashMap callLogCache; - /** Cequint caller id contact information. */ public static class CequintCallerIdContact { public final String name; @@ -110,8 +117,27 @@ public class CequintCallerIdManager { return isCequintCallerIdEnabled; } - public static CequintCallerIdManager createInstanceForCallLog() { - return new CequintCallerIdManager(); + @WorkerThread + @Nullable + public static CequintCallerIdContact getCequintCallerIdContact(Context context, String number) { + Assert.isWorkerThread(); + LogUtil.d( + "CequintCallerIdManager.getCequintCallerIdContact", + "number: %s", + LogUtil.sanitizePhoneNumber(number)); + if (callLogCache.containsKey(number)) { + return callLogCache.get(number); + } + CequintCallerIdContact cequintCallerIdContact = + lookup( + context, + CONTENT_URI, + PhoneNumberUtils.stripSeparators(number), + new String[] {"system"}); + if (cequintCallerIdContact != null) { + callLogCache.put(number, cequintCallerIdContact); + } + return cequintCallerIdContact; } @WorkerThread @@ -125,6 +151,12 @@ public class CequintCallerIdManager { LogUtil.sanitizePhoneNumber(number), LogUtil.sanitizePii(cnapName), isIncoming); + registerContentObserver(context); + if (isIncoming && incallIncomingCallCache.containsKey(number)) { + return incallIncomingCallCache.get(number); + } else if (!isIncoming && incallOutgoingCallCache.containsKey(number)) { + return incallOutgoingCallCache.get(number); + } int flag = 0; if (isIncoming) { flag |= CALLER_ID_LOOKUP_INCOMING_CALL; @@ -133,28 +165,14 @@ public class CequintCallerIdManager { flag |= CALLER_ID_LOOKUP_USER_PROVIDED_CID; } String[] flags = {cnapName, String.valueOf(flag)}; - return lookup(context, CONTENT_URI_FOR_INCALL, number, flags); - } - - @WorkerThread - @Nullable - public CequintCallerIdContact getCequintCallerIdContact(Context context, String number) { - Assert.isWorkerThread(); - LogUtil.d( - "CequintCallerIdManager.getCequintCallerIdContact", - "number: %s", - LogUtil.sanitizePhoneNumber(number)); - if (callLogCache.containsKey(number)) { - return callLogCache.get(number); - } CequintCallerIdContact cequintCallerIdContact = - lookup( - context, - CONTENT_URI, - PhoneNumberUtils.stripSeparators(number), - new String[] {"system"}); + lookup(context, CONTENT_URI_FOR_INCALL, number, flags); if (cequintCallerIdContact != null) { - callLogCache.put(number, cequintCallerIdContact); + if (isIncoming) { + incallIncomingCallCache.put(number, cequintCallerIdContact); + } else { + incallOutgoingCallCache.put(number, cequintCallerIdContact); + } } return cequintCallerIdContact; } @@ -267,7 +285,33 @@ public class CequintCallerIdManager { return geoDescription; } - private CequintCallerIdManager() { - callLogCache = new ConcurrentHashMap<>(); + private static synchronized void registerContentObserver(Context context) { + if (!PermissionsUtil.hasCequintPermissions(context)) { + LogUtil.i("CequintCallerIdManager.registerContentObserver", "no cequint permissions"); + return; + } + + if (hasRegisteredContentObserver) { + return; + } + ContentObserver contentObserver = + new ContentObserver(null) { + @Override + public void onChange(boolean selfChange) { + invalidateCache(); + } + }; + + context + .getContentResolver() + .registerContentObserver(CONTENT_URI_FOR_INCALL, true, contentObserver); + hasRegisteredContentObserver = true; + } + + private static void invalidateCache() { + incallIncomingCallCache.clear(); + incallOutgoingCallCache.clear(); } + + private CequintCallerIdManager() {} } diff --git a/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java b/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java index 79abff08e..9cf145b7a 100644 --- a/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java +++ b/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java @@ -67,7 +67,9 @@ public class MotorolaHiddenMenuKeySequence { } private MotorolaHiddenMenuKeySequence(Context context) { - featureHiddenMenuEnabled = MotorolaUtils.isSupportingHiddenMenu(context); + featureHiddenMenuEnabled = + MotorolaUtils.isSpnMatched(context) + && context.getResources().getBoolean(R.bool.motorola_feature_hidden_menu); // In case we do have a SPN from resource we need to match from service; otherwise we are // free to go if (featureHiddenMenuEnabled) { diff --git a/java/com/android/dialer/oem/MotorolaUtils.java b/java/com/android/dialer/oem/MotorolaUtils.java index 2c91e60ab..db2b8909a 100644 --- a/java/com/android/dialer/oem/MotorolaUtils.java +++ b/java/com/android/dialer/oem/MotorolaUtils.java @@ -19,10 +19,7 @@ import android.content.Context; import android.content.res.Resources; import android.telephony.TelephonyManager; import com.android.dialer.common.ConfigProviderBindings; -import com.android.dialer.common.LogUtil; import com.android.dialer.common.PackageUtils; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; /** Util class for Motorola OEM devices. */ public class MotorolaUtils { @@ -42,8 +39,6 @@ public class MotorolaUtils { // This is used to check if a Motorola device supports WiFi call feature, by checking if a certain // package is enabled. private static final String WIFI_CALL_PACKAGE_NAME = "com.motorola.sprintwfc"; - // Thi is used to check if a Motorola device supports hidden menu feature. - private static final String HIDDEN_MENU_FEATURE = "com.motorola.software.sprint.hidden_menu"; // Feature flag indicates it's a HD call, currently this is only used by Motorola system build. // TODO(b/35359461): Use reference to android.provider.CallLog once it's in new SDK. @@ -69,10 +64,6 @@ public class MotorolaUtils { } } - static boolean isSupportingHiddenMenu(Context context) { - return context.getPackageManager().hasSystemFeature(HIDDEN_MENU_FEATURE); - } - public static boolean shouldBlinkHdIconWhenConnectingCall(Context context) { return ConfigProviderBindings.get(context) .getBoolean(CONFIG_HD_CODEC_BLINKING_ICON_WHEN_CONNECTING_CALL_ENABLED, true) @@ -111,22 +102,6 @@ public class MotorolaUtils { return MotorolaHiddenMenuKeySequence.handleCharSequence(context, input); } - public static boolean isWifiCallingAvailable(Context context) { - if (!isSupportingSprintWifiCall(context)) { - return false; - } - TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class); - try { - Method method = TelephonyManager.class.getMethod("isWifiCallingAvailable"); - boolean isWifiCallingAvailable = (boolean) method.invoke(telephonyManager); - LogUtil.d("MotorolaUtils.isWifiCallingAvailable", "%b", isWifiCallingAvailable); - return isWifiCallingAvailable; - } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { - LogUtil.e("MotorolaUtils.isWifiCallingAvailable", "", e); - } - return false; - } - private static boolean isSupportingSprintHdCodec(Context context) { return isSpnMatched(context) && context.getResources().getBoolean(R.bool.motorola_sprint_hd_codec) diff --git a/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml index ac3397520..7f63bee75 100644 --- a/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml @@ -1,21 +1,6 @@ - - true + true Sprint \ No newline at end of file diff --git a/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml index c5cb0d1f7..39b72cdd1 100644 --- a/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml @@ -1,20 +1,5 @@ - - true + true \ No newline at end of file diff --git a/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml index c5cb0d1f7..39b72cdd1 100644 --- a/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml @@ -1,20 +1,5 @@ - - true + true \ No newline at end of file diff --git a/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml index c5cb0d1f7..39b72cdd1 100644 --- a/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml @@ -1,20 +1,5 @@ - - true + true \ No newline at end of file diff --git a/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml index c5cb0d1f7..39b72cdd1 100644 --- a/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml @@ -1,20 +1,5 @@ - - true + true \ No newline at end of file diff --git a/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml index c5cb0d1f7..39b72cdd1 100644 --- a/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml @@ -1,20 +1,5 @@ - - true + true \ No newline at end of file diff --git a/java/com/android/dialer/oem/res/values/motorola_config.xml b/java/com/android/dialer/oem/res/values/motorola_config.xml index 46e7a16b6..f875d573d 100644 --- a/java/com/android/dialer/oem/res/values/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values/motorola_config.xml @@ -1,25 +1,12 @@ - - false + + false + -- cgit v1.2.3