diff options
Diffstat (limited to 'java/com/android/dialer/phonelookup/cp2')
-rw-r--r-- | java/com/android/dialer/phonelookup/cp2/Cp2LocalPhoneLookup.java | 47 | ||||
-rw-r--r-- | java/com/android/dialer/phonelookup/cp2/Cp2RemotePhoneLookup.java | 19 |
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)); |