summaryrefslogtreecommitdiff
path: root/InCallUI
diff options
context:
space:
mode:
authorChiao Cheng <chiaocheng@google.com>2013-08-30 00:21:08 -0700
committerChiao Cheng <chiaocheng@google.com>2013-08-30 00:21:08 -0700
commitb337954280f46b63c67021e791043d18d0208cfb (patch)
treec77a577f1c577c44a58785f12c8746da82610384 /InCallUI
parente6b3841bb81e14d3ae433521b9df8638c7c0f09e (diff)
Fix errors during reverse number lookup.
- GoogleAuthUtil.getToken() is not multi-thread safe and causes bind errors when called at the same time by multiple threads. Switched to process getToken() serially. Also save token to be re-used instead of fetching new token for each request. - Safe guard json parsing by adding explicit JSONException check when looking for json arrays by name. - Added thread pool instead of starting a new async task for each people and image lookup. Bug: 10462306 Bug: 10492891 Change-Id: I832a9f6657d1b5747d75cd93ea49a6df73c889db
Diffstat (limited to 'InCallUI')
-rw-r--r--InCallUI/src/com/android/incallui/CallCardPresenter.java22
-rw-r--r--InCallUI/src/com/android/incallui/service/PhoneNumberService.java33
2 files changed, 34 insertions, 21 deletions
diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java
index 3e1a2ef93..d26e6fb18 100644
--- a/InCallUI/src/com/android/incallui/CallCardPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java
@@ -21,7 +21,6 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.graphics.Bitmap;
-import android.os.AsyncTask;
import android.text.TextUtils;
import android.text.format.DateUtils;
@@ -359,7 +358,7 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
public void lookupPhoneNumber(String phoneNumber) {
if (mPhoneNumberService != null) {
mPhoneNumberService.getPhoneNumberInfo(phoneNumber,
- new PhoneNumberService.PhoneNumberServiceListener() {
+ new PhoneNumberService.NumberLookupListener() {
@Override
public void onPhoneNumberInfoComplete(
final PhoneNumberService.PhoneNumberInfo info) {
@@ -368,8 +367,8 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
}
// TODO(klp): Ui is sometimes null due to something being shutdown.
if (getUi() != null) {
- if (info.getName() != null) {
- getUi().setPrimaryName(info.getName(), false);
+ if (info.getDisplayName() != null) {
+ getUi().setPrimaryName(info.getDisplayName(), false);
}
if (info.getImageUrl() != null) {
@@ -424,23 +423,14 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
private void fetchImage(final String url) {
if (url != null) {
- new AsyncTask<Void, Void, Bitmap>() {
-
- @Override
- protected Bitmap doInBackground(Void... params) {
- // Fetch the image
- return mPhoneNumberService.fetchImage(url);
- }
-
+ mPhoneNumberService.fetchImage(url, new PhoneNumberService.ImageLookupListener() {
@Override
- protected void onPostExecute(Bitmap bitmap) {
- // TODO(klp): same as above, figure out why it's null.
+ public void onImageFetchComplete(Bitmap bitmap) {
if (getUi() != null) {
getUi().setPrimaryImage(bitmap);
}
}
-
- }.execute();
+ });
}
}
diff --git a/InCallUI/src/com/android/incallui/service/PhoneNumberService.java b/InCallUI/src/com/android/incallui/service/PhoneNumberService.java
index 456638809..1fc28584e 100644
--- a/InCallUI/src/com/android/incallui/service/PhoneNumberService.java
+++ b/InCallUI/src/com/android/incallui/service/PhoneNumberService.java
@@ -19,14 +19,27 @@ package com.android.incallui.service;
import android.graphics.Bitmap;
/**
- *
+ * Provides phone number lookup services.
*/
public interface PhoneNumberService {
- public void getPhoneNumberInfo(String phoneNumber, PhoneNumberServiceListener listener);
- public Bitmap fetchImage(String url);
+ /**
+ * Get a phone number number asynchronously.
+ *
+ * @param phoneNumber The phone number to lookup.
+ * @param listener The listener to notify when the phone number lookup is complete.
+ */
+ public void getPhoneNumberInfo(String phoneNumber, NumberLookupListener listener);
+
+ /**
+ * Get an image asynchronously.
+ *
+ * @param url The url to fetch the image from.
+ * @param listener The listener to notify when the image lookup is complete.
+ */
+ public void fetchImage(String url, ImageLookupListener listener);
- public interface PhoneNumberServiceListener {
+ public interface NumberLookupListener {
/**
* Callback when a phone number has been looked up.
@@ -36,8 +49,18 @@ public interface PhoneNumberService {
public void onPhoneNumberInfoComplete(PhoneNumberInfo info);
}
+ public interface ImageLookupListener {
+
+ /**
+ * Callback when a image has been fetched.
+ *
+ * @param bitmap The fetched image.
+ */
+ public void onImageFetchComplete(Bitmap bitmap);
+ }
+
public interface PhoneNumberInfo {
- public String getName();
+ public String getDisplayName();
public String getPhoneNumber();
public String getImageUrl();
}