diff options
-rw-r--r-- | java/com/android/dialer/common/concurrent/DialerExecutors.java | 6 | ||||
-rw-r--r-- | java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java | 20 |
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. */ |