summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/com/android/dialer/common/concurrent/DialerExecutors.java6
-rw-r--r--java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java20
2 files changed, 22 insertions, 4 deletions
diff --git a/java/com/android/dialer/common/concurrent/DialerExecutors.java b/java/com/android/dialer/common/concurrent/DialerExecutors.java
index 81b3c5cb3..850c28cdd 100644
--- a/java/com/android/dialer/common/concurrent/DialerExecutors.java
+++ b/java/com/android/dialer/common/concurrent/DialerExecutors.java
@@ -21,7 +21,7 @@ import android.support.annotation.NonNull;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.DialerExecutor.Worker;
-import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
@@ -136,7 +136,7 @@ public final class DialerExecutors {
return new DefaultDialerExecutorFactory().createNonUiTaskBuilder(Assert.isNotNull(worker));
}
- private static final Executor lowPriorityThreadPool =
+ private static final ExecutorService lowPriorityThreadPool =
Executors.newFixedThreadPool(
5,
new ThreadFactory() {
@@ -155,7 +155,7 @@ public final class DialerExecutors {
* <p>This exists to prevent each individual dialer component from having to create its own
* threads/pools, which would result in the application having more threads than really necessary.
*/
- public static Executor getLowPriorityThreadPool() {
+ public static ExecutorService getLowPriorityThreadPool() {
return lowPriorityThreadPool;
}
}
diff --git a/java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java b/java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java
index cc509f41b..a00ee75bf 100644
--- a/java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java
+++ b/java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java
@@ -16,6 +16,7 @@
package com.android.dialer.phonenumberproto;
+import android.support.annotation.AnyThread;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.WorkerThread;
@@ -24,6 +25,8 @@ import com.android.dialer.DialerPhoneNumber;
import com.android.dialer.DialerPhoneNumber.RawInput;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.i18n.phonenumbers.NumberParseException;
import com.google.i18n.phonenumbers.PhoneNumberUtil;
import com.google.i18n.phonenumbers.PhoneNumberUtil.MatchType;
@@ -46,7 +49,7 @@ public class DialerPhoneNumberUtil {
/**
* Parses the provided raw phone number into a {@link DialerPhoneNumber}.
*
- * @see PhoneNumberUtil#parse(String, String)
+ * @see PhoneNumberUtil#parse(CharSequence, String)
*/
@WorkerThread
public DialerPhoneNumber parse(@Nullable String numberToParse, @Nullable String defaultRegion) {
@@ -73,6 +76,21 @@ public class DialerPhoneNumberUtil {
}
/**
+ * Parses the provided raw phone number into a Future result of {@link DialerPhoneNumber}.
+ *
+ * <p>Work is run on the provided {@link ListeningExecutorService}.
+ *
+ * @see PhoneNumberUtil#parse(CharSequence, String)
+ */
+ @AnyThread
+ public ListenableFuture<DialerPhoneNumber> parse(
+ @Nullable String numberToParse,
+ @Nullable String defaultRegion,
+ @NonNull ListeningExecutorService service) {
+ return service.submit(() -> parse(numberToParse, defaultRegion));
+ }
+
+ /**
* Returns true if the two numbers were parseable by libphonenumber and are an {@link
* MatchType#EXACT_MATCH} or if they have the same raw input.
*/