summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/phonelookup
diff options
context:
space:
mode:
authorzachh <zachh@google.com>2017-12-06 18:06:06 -0800
committerCopybara-Service <copybara-piper@google.com>2017-12-07 18:29:07 -0800
commit0c0c0a318d72e4b6f24514c4c6b3a173e249297d (patch)
tree76408b119a13584de5845a147feab6c9f485746a /java/com/android/dialer/phonelookup
parent32632f8cbed8ec7651e7c831b4defdfd4d81e70d (diff)
Added bindings for ListeningExecutorServices.
Use them where appropriate. Bug: 34672501 Test: existing PiperOrigin-RevId: 178182298 Change-Id: If454225e0d636c7cb14b5af02d46780d7732abf0
Diffstat (limited to 'java/com/android/dialer/phonelookup')
-rw-r--r--java/com/android/dialer/phonelookup/PhoneLookupModule.java9
-rw-r--r--java/com/android/dialer/phonelookup/composite/CompositePhoneLookup.java17
-rw-r--r--java/com/android/dialer/phonelookup/cp2/Cp2PhoneLookup.java39
3 files changed, 40 insertions, 25 deletions
diff --git a/java/com/android/dialer/phonelookup/PhoneLookupModule.java b/java/com/android/dialer/phonelookup/PhoneLookupModule.java
index 400caff3a..39b0a5083 100644
--- a/java/com/android/dialer/phonelookup/PhoneLookupModule.java
+++ b/java/com/android/dialer/phonelookup/PhoneLookupModule.java
@@ -27,7 +27,12 @@ import dagger.Provides;
public abstract class PhoneLookupModule {
@Provides
- static PhoneLookup providePhoneLookup(Cp2PhoneLookup cp2PhoneLookup) {
- return new CompositePhoneLookup(ImmutableList.of(cp2PhoneLookup));
+ static ImmutableList<PhoneLookup> providePhoneLookupList(Cp2PhoneLookup cp2PhoneLookup) {
+ return ImmutableList.of(cp2PhoneLookup);
+ }
+
+ @Provides
+ static PhoneLookup providePhoneLookup(CompositePhoneLookup compositePhoneLookup) {
+ return compositePhoneLookup;
}
}
diff --git a/java/com/android/dialer/phonelookup/composite/CompositePhoneLookup.java b/java/com/android/dialer/phonelookup/composite/CompositePhoneLookup.java
index f432e27ae..abc0c74fd 100644
--- a/java/com/android/dialer/phonelookup/composite/CompositePhoneLookup.java
+++ b/java/com/android/dialer/phonelookup/composite/CompositePhoneLookup.java
@@ -20,6 +20,7 @@ import android.support.annotation.NonNull;
import android.telecom.Call;
import com.android.dialer.DialerPhoneNumber;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.Annotations.LightweightExecutor;
import com.android.dialer.common.concurrent.DialerFutures;
import com.android.dialer.phonelookup.PhoneLookup;
import com.android.dialer.phonelookup.PhoneLookupInfo;
@@ -29,9 +30,10 @@ 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.MoreExecutors;
+import com.google.common.util.concurrent.ListeningExecutorService;
import java.util.ArrayList;
import java.util.List;
+import javax.inject.Inject;
/**
* {@link PhoneLookup} which delegates to a configured set of {@link PhoneLookup PhoneLookups},
@@ -40,9 +42,14 @@ import java.util.List;
public final class CompositePhoneLookup implements PhoneLookup {
private final ImmutableList<PhoneLookup> phoneLookups;
+ private final ListeningExecutorService lightweightExecutorService;
- public CompositePhoneLookup(ImmutableList<PhoneLookup> phoneLookups) {
+ @Inject
+ CompositePhoneLookup(
+ ImmutableList<PhoneLookup> phoneLookups,
+ @LightweightExecutor ListeningExecutorService lightweightExecutorService) {
this.phoneLookups = phoneLookups;
+ this.lightweightExecutorService = lightweightExecutorService;
}
/**
@@ -68,7 +75,7 @@ public final class CompositePhoneLookup implements PhoneLookup {
}
return mergedInfo.build();
},
- MoreExecutors.directExecutor());
+ lightweightExecutorService);
}
@Override
@@ -117,7 +124,7 @@ public final class CompositePhoneLookup implements PhoneLookup {
}
return combinedMap.build();
},
- MoreExecutors.directExecutor());
+ lightweightExecutorService);
}
@Override
@@ -127,6 +134,6 @@ public final class CompositePhoneLookup implements PhoneLookup {
futures.add(phoneLookup.onSuccessfulBulkUpdate());
}
return Futures.transform(
- Futures.allAsList(futures), unused -> null, MoreExecutors.directExecutor());
+ Futures.allAsList(futures), unused -> null, lightweightExecutorService);
}
}
diff --git a/java/com/android/dialer/phonelookup/cp2/Cp2PhoneLookup.java b/java/com/android/dialer/phonelookup/cp2/Cp2PhoneLookup.java
index cfb8fb7b8..cd645a447 100644
--- a/java/com/android/dialer/phonelookup/cp2/Cp2PhoneLookup.java
+++ b/java/com/android/dialer/phonelookup/cp2/Cp2PhoneLookup.java
@@ -30,6 +30,7 @@ import android.telecom.Call;
import android.text.TextUtils;
import com.android.dialer.DialerPhoneNumber;
import com.android.dialer.common.Assert;
+import com.android.dialer.common.concurrent.Annotations.BackgroundExecutor;
import com.android.dialer.inject.ApplicationContext;
import com.android.dialer.phonelookup.PhoneLookup;
import com.android.dialer.phonelookup.PhoneLookupInfo;
@@ -39,7 +40,7 @@ import com.android.dialer.storage.Unencrypted;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.MoreExecutors;
+import com.google.common.util.concurrent.ListeningExecutorService;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
@@ -71,25 +72,29 @@ public final class Cp2PhoneLookup implements PhoneLookup {
private final Context appContext;
private final SharedPreferences sharedPreferences;
+ private final ListeningExecutorService backgroundExecutorService;
+
@Nullable private Long currentLastTimestampProcessed;
@Inject
Cp2PhoneLookup(
- @ApplicationContext Context appContext, @Unencrypted SharedPreferences sharedPreferences) {
+ @ApplicationContext Context appContext,
+ @Unencrypted SharedPreferences sharedPreferences,
+ @BackgroundExecutor ListeningExecutorService backgroundExecutorService) {
this.appContext = appContext;
this.sharedPreferences = sharedPreferences;
+ this.backgroundExecutorService = backgroundExecutorService;
}
@Override
public ListenableFuture<PhoneLookupInfo> lookup(@NonNull Call call) {
// TODO(zachh): Implementation.
- return MoreExecutors.newDirectExecutorService().submit(PhoneLookupInfo::getDefaultInstance);
+ return backgroundExecutorService.submit(PhoneLookupInfo::getDefaultInstance);
}
@Override
public ListenableFuture<Boolean> isDirty(ImmutableSet<DialerPhoneNumber> phoneNumbers) {
- // TODO(calderwoodra): consider a different thread pool
- return MoreExecutors.newDirectExecutorService().submit(() -> isDirtyInternal(phoneNumbers));
+ return backgroundExecutorService.submit(() -> isDirtyInternal(phoneNumbers));
}
private boolean isDirtyInternal(ImmutableSet<DialerPhoneNumber> phoneNumbers) {
@@ -185,8 +190,7 @@ public final class Cp2PhoneLookup implements PhoneLookup {
@Override
public ListenableFuture<ImmutableMap<DialerPhoneNumber, PhoneLookupInfo>> bulkUpdate(
ImmutableMap<DialerPhoneNumber, PhoneLookupInfo> existingInfoMap) {
- return MoreExecutors.newDirectExecutorService()
- .submit(() -> bulkUpdateInternal(existingInfoMap));
+ return backgroundExecutorService.submit(() -> bulkUpdateInternal(existingInfoMap));
}
private ImmutableMap<DialerPhoneNumber, PhoneLookupInfo> bulkUpdateInternal(
@@ -234,17 +238,16 @@ public final class Cp2PhoneLookup implements PhoneLookup {
@Override
public ListenableFuture<Void> onSuccessfulBulkUpdate() {
- return MoreExecutors.newDirectExecutorService()
- .submit(
- () -> {
- if (currentLastTimestampProcessed != null) {
- sharedPreferences
- .edit()
- .putLong(PREF_LAST_TIMESTAMP_PROCESSED, currentLastTimestampProcessed)
- .apply();
- }
- return null;
- });
+ return backgroundExecutorService.submit(
+ () -> {
+ if (currentLastTimestampProcessed != null) {
+ sharedPreferences
+ .edit()
+ .putLong(PREF_LAST_TIMESTAMP_PROCESSED, currentLastTimestampProcessed)
+ .apply();
+ }
+ return null;
+ });
}
/**