summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/phonelookup/cp2
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/phonelookup/cp2')
-rw-r--r--java/com/android/dialer/phonelookup/cp2/Cp2LocalPhoneLookup.java47
-rw-r--r--java/com/android/dialer/phonelookup/cp2/Cp2RemotePhoneLookup.java19
2 files changed, 18 insertions, 48 deletions
diff --git a/java/com/android/dialer/phonelookup/cp2/Cp2LocalPhoneLookup.java b/java/com/android/dialer/phonelookup/cp2/Cp2LocalPhoneLookup.java
index 995950d0e..127569b9f 100644
--- a/java/com/android/dialer/phonelookup/cp2/Cp2LocalPhoneLookup.java
+++ b/java/com/android/dialer/phonelookup/cp2/Cp2LocalPhoneLookup.java
@@ -27,7 +27,6 @@ import android.provider.ContactsContract.DeletedContacts;
import android.support.annotation.Nullable;
import android.support.v4.util.ArrayMap;
import android.support.v4.util.ArraySet;
-import android.telecom.Call;
import android.text.TextUtils;
import com.android.dialer.DialerPhoneNumber;
import com.android.dialer.common.Assert;
@@ -43,7 +42,6 @@ import com.android.dialer.phonelookup.database.contract.PhoneLookupHistoryContra
import com.android.dialer.phonenumberproto.DialerPhoneNumberUtil;
import com.android.dialer.phonenumberproto.PartitionedNumbers;
import com.android.dialer.storage.Unencrypted;
-import com.android.dialer.telecom.TelecomCallUtil;
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
@@ -93,16 +91,18 @@ public final class Cp2LocalPhoneLookup implements PhoneLookup<Cp2Info> {
}
@Override
- public ListenableFuture<Cp2Info> lookup(Call call) {
- return backgroundExecutorService.submit(() -> lookupInternal(call));
+ public ListenableFuture<Cp2Info> lookup(DialerPhoneNumber dialerPhoneNumber) {
+ return backgroundExecutorService.submit(() -> lookupInternal(dialerPhoneNumber));
}
- private Cp2Info lookupInternal(Call call) {
- String rawNumber = TelecomCallUtil.getNumber(call);
- if (TextUtils.isEmpty(rawNumber)) {
+ private Cp2Info lookupInternal(DialerPhoneNumber dialerPhoneNumber) {
+ DialerPhoneNumberUtil dialerPhoneNumberUtil =
+ new DialerPhoneNumberUtil(PhoneNumberUtil.getInstance());
+ String number = dialerPhoneNumberUtil.normalizeNumber(dialerPhoneNumber);
+ if (TextUtils.isEmpty(number)) {
return Cp2Info.getDefaultInstance();
}
- Optional<String> validE164 = TelecomCallUtil.getValidE164Number(appContext, call);
+ Optional<String> validE164 = dialerPhoneNumberUtil.formatToValidE164(dialerPhoneNumber);
Set<Cp2ContactInfo> cp2ContactInfos = new ArraySet<>();
// Note: It would make sense to use PHONE_LOOKUP for E164 numbers as well, but we use PHONE to
// ensure consistency when the batch methods are used to update data.
@@ -110,7 +110,7 @@ public final class Cp2LocalPhoneLookup implements PhoneLookup<Cp2Info> {
validE164.isPresent()
? queryPhoneTableBasedOnE164(
Cp2Projections.getProjectionForPhoneTable(), ImmutableSet.of(validE164.get()))
- : queryPhoneLookup(Cp2Projections.getProjectionForPhoneLookupTable(), rawNumber)) {
+ : queryPhoneLookup(Cp2Projections.getProjectionForPhoneLookupTable(), number)) {
if (cursor == null) {
LogUtil.w("Cp2LocalPhoneLookup.lookupInternal", "null cursor");
return Cp2Info.getDefaultInstance();
@@ -122,35 +122,6 @@ public final class Cp2LocalPhoneLookup implements PhoneLookup<Cp2Info> {
return Cp2Info.newBuilder().addAllCp2ContactInfo(cp2ContactInfos).build();
}
- /**
- * Queries ContactsContract.PhoneLookup for the {@link Cp2Info} associated with the provided
- * {@link DialerPhoneNumber}. Returns {@link Cp2Info#getDefaultInstance()} if there is no
- * information.
- */
- public ListenableFuture<Cp2Info> lookupByNumber(DialerPhoneNumber dialerPhoneNumber) {
- return backgroundExecutorService.submit(
- () -> {
- DialerPhoneNumberUtil dialerPhoneNumberUtil =
- new DialerPhoneNumberUtil(PhoneNumberUtil.getInstance());
- String rawNumber = dialerPhoneNumberUtil.normalizeNumber(dialerPhoneNumber);
- if (rawNumber.isEmpty()) {
- return Cp2Info.getDefaultInstance();
- }
- Set<Cp2ContactInfo> cp2ContactInfos = new ArraySet<>();
- try (Cursor cursor =
- queryPhoneLookup(Cp2Projections.getProjectionForPhoneLookupTable(), rawNumber)) {
- if (cursor == null) {
- LogUtil.w("Cp2LocalPhoneLookup.lookupByNumber", "null cursor");
- return Cp2Info.getDefaultInstance();
- }
- while (cursor.moveToNext()) {
- cp2ContactInfos.add(Cp2Projections.buildCp2ContactInfoFromCursor(appContext, cursor));
- }
- }
- return Cp2Info.newBuilder().addAllCp2ContactInfo(cp2ContactInfos).build();
- });
- }
-
@Override
public ListenableFuture<Boolean> isDirty(ImmutableSet<DialerPhoneNumber> phoneNumbers) {
PartitionedNumbers partitionedNumbers = new PartitionedNumbers(phoneNumbers);
diff --git a/java/com/android/dialer/phonelookup/cp2/Cp2RemotePhoneLookup.java b/java/com/android/dialer/phonelookup/cp2/Cp2RemotePhoneLookup.java
index 6a4682958..9596f15f7 100644
--- a/java/com/android/dialer/phonelookup/cp2/Cp2RemotePhoneLookup.java
+++ b/java/com/android/dialer/phonelookup/cp2/Cp2RemotePhoneLookup.java
@@ -24,7 +24,6 @@ import android.os.Build.VERSION_CODES;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Directory;
import android.support.annotation.VisibleForTesting;
-import android.telecom.Call;
import com.android.dialer.DialerPhoneNumber;
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.Annotations.BackgroundExecutor;
@@ -33,13 +32,14 @@ import com.android.dialer.inject.ApplicationContext;
import com.android.dialer.phonelookup.PhoneLookup;
import com.android.dialer.phonelookup.PhoneLookupInfo;
import com.android.dialer.phonelookup.PhoneLookupInfo.Cp2Info;
+import com.android.dialer.phonenumberproto.DialerPhoneNumberUtil;
import com.android.dialer.phonenumberutil.PhoneNumberHelper;
-import com.android.dialer.telecom.TelecomCallUtil;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.i18n.phonenumbers.PhoneNumberUtil;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
@@ -62,15 +62,10 @@ public final class Cp2RemotePhoneLookup implements PhoneLookup<Cp2Info> {
}
@Override
- public ListenableFuture<Cp2Info> lookup(Call call) {
- String number = TelecomCallUtil.getNumber(call);
- if (number == null) {
- return Futures.immediateFuture(Cp2Info.getDefaultInstance());
- }
-
+ public ListenableFuture<Cp2Info> lookup(DialerPhoneNumber dialerPhoneNumber) {
return Futures.transformAsync(
queryCp2ForRemoteDirectoryIds(),
- remoteDirectoryIds -> queryCp2ForRemoteContact(number, remoteDirectoryIds),
+ remoteDirectoryIds -> queryCp2ForRemoteContact(dialerPhoneNumber, remoteDirectoryIds),
lightweightExecutorService);
}
@@ -114,11 +109,15 @@ public final class Cp2RemotePhoneLookup implements PhoneLookup<Cp2Info> {
}
private ListenableFuture<Cp2Info> queryCp2ForRemoteContact(
- String number, List<Long> remoteDirectoryIds) {
+ DialerPhoneNumber dialerPhoneNumber, List<Long> remoteDirectoryIds) {
if (remoteDirectoryIds.isEmpty()) {
return Futures.immediateFuture(Cp2Info.getDefaultInstance());
}
+ DialerPhoneNumberUtil dialerPhoneNumberUtil =
+ new DialerPhoneNumberUtil(PhoneNumberUtil.getInstance());
+ String number = dialerPhoneNumberUtil.normalizeNumber(dialerPhoneNumber);
+
List<ListenableFuture<Cp2Info>> cp2InfoFutures = new ArrayList<>();
for (long remoteDirectoryId : remoteDirectoryIds) {
cp2InfoFutures.add(queryCp2ForRemoteContact(number, remoteDirectoryId));