summaryrefslogtreecommitdiffstats
path: root/info_lookup
diff options
context:
space:
mode:
authorRohit Yengisetty <rohit@cyngn.com>2016-03-16 12:09:54 -0700
committerRichard MacGregor <rmacgregor@cyngn.com>2016-03-25 11:42:18 -0700
commit58ba3f3fa3b352af3db0b342dac0ecd7cb04b4cf (patch)
treeefbf63d9b7d622229d30ac2890125f4780d61e5e /info_lookup
parent8d3697c95e8ad5b224b754037adf64c494d1fd6c (diff)
downloadandroid_packages_apps_ContactsCommon-58ba3f3fa3b352af3db0b342dac0ecd7cb04b4cf.tar.gz
android_packages_apps_ContactsCommon-58ba3f3fa3b352af3db0b342dac0ecd7cb04b4cf.tar.bz2
android_packages_apps_ContactsCommon-58ba3f3fa3b352af3db0b342dac0ecd7cb04b4cf.zip
LookupProviderImpl : add synchronization around ProviderInfo
Change-Id: Ib02feae696a2aebd6d2e744b0214e95c5c90a6dc
Diffstat (limited to 'info_lookup')
-rw-r--r--info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java47
1 files changed, 27 insertions, 20 deletions
diff --git a/info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java b/info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java
index 9836d3f1..246097bc 100644
--- a/info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java
+++ b/info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java
@@ -83,7 +83,9 @@ public class LookupProviderImpl implements LookupProvider {
@Override
public void onChange(boolean selfChange, Uri uri) {
if (uri != null) {
- mProviderInfo = CallerInfoHelper.getActiveProviderInfo(mContext);
+ synchronized (LookupProviderImpl.this) {
+ mProviderInfo = CallerInfoHelper.getActiveProviderInfo(mContext);
+ }
}
}
};
@@ -133,27 +135,32 @@ public class LookupProviderImpl implements LookupProvider {
result.setResultCallback(new ResultCallback<LookupByNumberResult>() {
@Override
public void onResult(LookupByNumberResult lookupByNumberResult) {
+ synchronized (LookupProviderImpl.this) {
+ if (mProviderInfo == null) {
+ // lookup provider has been inactivated
+ return;
+ }
- if (!lookupByNumberResult.getStatus().isSuccess()) {
- return;
- }
- CallerInfo callerInfo = lookupByNumberResult.getCallerInfo();
+ if (!lookupByNumberResult.getStatus().isSuccess()) {
+ return;
+ }
- if (!hasUsableInfo(callerInfo)) {
- return;
- }
+ CallerInfo callerInfo = lookupByNumberResult.getCallerInfo();
+ if (!hasUsableInfo(callerInfo)) {
+ return;
+ }
- // map caller info to LookupResponse
- LookupResponse lookupResponse = new LookupResponse();
- lookupResponse.mProviderName = mProviderInfo.getTitle();
- lookupResponse.mName = callerInfo.getName();
- lookupResponse.mNumber = callerInfo.getNumber();
- lookupResponse.mAddress = callerInfo.getAddress();
- lookupResponse.mPhotoUrl = callerInfo.getPhotoUrl();
- lookupResponse.mAttributionLogo = mProviderInfo.getBadgeLogo();
- lookupResponse.mSpamCount = callerInfo.getSpamCount();
-
- request.mCallback.onNewInfo(request, lookupResponse);
+ // map caller info to LookupResponse
+ LookupResponse lookupResponse = new LookupResponse();
+ lookupResponse.mProviderName = mProviderInfo.getTitle();
+ lookupResponse.mName = callerInfo.getName();
+ lookupResponse.mNumber = callerInfo.getNumber();
+ lookupResponse.mAddress = callerInfo.getAddress();
+ lookupResponse.mPhotoUrl = callerInfo.getPhotoUrl();
+ lookupResponse.mAttributionLogo = mProviderInfo.getBadgeLogo();
+ lookupResponse.mSpamCount = callerInfo.getSpamCount();
+ request.mCallback.onNewInfo(request, lookupResponse);
+ }
}
});
}
@@ -245,7 +252,7 @@ public class LookupProviderImpl implements LookupProvider {
}
@Override
- public String getUniqueIdentifier() {
+ public synchronized String getUniqueIdentifier() {
if (mProviderInfo != null) {
return mProviderInfo.getPackageName();
}