summaryrefslogtreecommitdiffstats
path: root/java/com/android/dialer/oem/CequintCallerIdManager.java
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2017-06-08 00:59:55 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-06-08 00:59:55 +0000
commitc67d658e7daa453fe9ad9fd1a37f81eaf2048c44 (patch)
treeb9bbc285430ffb5363a70eb27e382c38f5a85b7a /java/com/android/dialer/oem/CequintCallerIdManager.java
parent75233ff03785f24789b32039ac2c208805b7e506 (diff)
parent274b6d320edb3c33e7b3a95c43a811829486a777 (diff)
downloadandroid_packages_apps_Dialer-c67d658e7daa453fe9ad9fd1a37f81eaf2048c44.tar.gz
android_packages_apps_Dialer-c67d658e7daa453fe9ad9fd1a37f81eaf2048c44.tar.bz2
android_packages_apps_Dialer-c67d658e7daa453fe9ad9fd1a37f81eaf2048c44.zip
Update AOSP Dialer source from internal google3 repository at cl/158012278. am: 91ce7d2a47
am: 274b6d320e Change-Id: Iecf4325f314bf6c3324187e6406c8aae4675dd63
Diffstat (limited to 'java/com/android/dialer/oem/CequintCallerIdManager.java')
-rw-r--r--java/com/android/dialer/oem/CequintCallerIdManager.java98
1 files changed, 27 insertions, 71 deletions
diff --git a/java/com/android/dialer/oem/CequintCallerIdManager.java b/java/com/android/dialer/oem/CequintCallerIdManager.java
index 095ee4e66..806d553eb 100644
--- a/java/com/android/dialer/oem/CequintCallerIdManager.java
+++ b/java/com/android/dialer/oem/CequintCallerIdManager.java
@@ -18,7 +18,6 @@ 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;
@@ -31,7 +30,6 @@ 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;
/**
@@ -73,17 +71,12 @@ 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<String, CequintCallerIdContact> callLogCache =
- new ConcurrentHashMap<>();
- private static final ConcurrentHashMap<String, CequintCallerIdContact> incallIncomingCallCache =
- new ConcurrentHashMap<>();
- private static final ConcurrentHashMap<String, CequintCallerIdContact> 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<String, CequintCallerIdContact> callLogCache;
+
/** Cequint caller id contact information. */
public static class CequintCallerIdContact {
public final String name;
@@ -117,27 +110,8 @@ public class CequintCallerIdManager {
return isCequintCallerIdEnabled;
}
- @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;
+ public static CequintCallerIdManager createInstanceForCallLog() {
+ return new CequintCallerIdManager();
}
@WorkerThread
@@ -151,12 +125,6 @@ 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;
@@ -165,14 +133,28 @@ 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_FOR_INCALL, number, flags);
+ lookup(
+ context,
+ CONTENT_URI,
+ PhoneNumberUtils.stripSeparators(number),
+ new String[] {"system"});
if (cequintCallerIdContact != null) {
- if (isIncoming) {
- incallIncomingCallCache.put(number, cequintCallerIdContact);
- } else {
- incallOutgoingCallCache.put(number, cequintCallerIdContact);
- }
+ callLogCache.put(number, cequintCallerIdContact);
}
return cequintCallerIdContact;
}
@@ -285,33 +267,7 @@ public class CequintCallerIdManager {
return geoDescription;
}
- 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() {
+ callLogCache = new ConcurrentHashMap<>();
}
-
- private CequintCallerIdManager() {}
}