summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/commandline
diff options
context:
space:
mode:
authortwyen <twyen@google.com>2018-03-30 10:56:48 -0700
committerCopybara-Service <copybara-piper@google.com>2018-03-30 12:33:04 -0700
commit49c5dcd4e6f09f3931a7df808db5562eb92ed14d (patch)
treeea212777e1a8ddf935784339fc7a639f9997d254 /java/com/android/dialer/commandline
parent1d8aaa53ca6a0c404b32b999cff97a5f81bdd4ef (diff)
Implement new blocking
Old blocking is deprecated. Bug: 70989544 Test: TAP PiperOrigin-RevId: 191086875 Change-Id: Icde4963fce603fc4e16e486b78c070bd439e26e4
Diffstat (limited to 'java/com/android/dialer/commandline')
-rw-r--r--java/com/android/dialer/commandline/CommandLineModule.java14
-rw-r--r--java/com/android/dialer/commandline/impl/BlockingCommand.java (renamed from java/com/android/dialer/commandline/impl/Blocking.java)61
2 files changed, 47 insertions, 28 deletions
diff --git a/java/com/android/dialer/commandline/CommandLineModule.java b/java/com/android/dialer/commandline/CommandLineModule.java
index 612155662..915578722 100644
--- a/java/com/android/dialer/commandline/CommandLineModule.java
+++ b/java/com/android/dialer/commandline/CommandLineModule.java
@@ -16,7 +16,7 @@
package com.android.dialer.commandline;
-import com.android.dialer.commandline.impl.Blocking;
+import com.android.dialer.commandline.impl.BlockingCommand;
import com.android.dialer.commandline.impl.CallCommand;
import com.android.dialer.commandline.impl.Echo;
import com.android.dialer.commandline.impl.Help;
@@ -43,16 +43,20 @@ public abstract class CommandLineModule {
private final Help help;
private final Version version;
private final Echo echo;
- private final Blocking blocking;
+ private final BlockingCommand blockingCommand;
private final CallCommand callCommand;
@Inject
AospCommandInjector(
- Help help, Version version, Echo echo, Blocking blocking, CallCommand callCommand) {
+ Help help,
+ Version version,
+ Echo echo,
+ BlockingCommand blockingCommand,
+ CallCommand callCommand) {
this.help = help;
this.version = version;
this.echo = echo;
- this.blocking = blocking;
+ this.blockingCommand = blockingCommand;
this.callCommand = callCommand;
}
@@ -60,7 +64,7 @@ public abstract class CommandLineModule {
builder.addCommand("help", help);
builder.addCommand("version", version);
builder.addCommand("echo", echo);
- builder.addCommand("blocking", blocking);
+ builder.addCommand("blocking", blockingCommand);
builder.addCommand("call", callCommand);
return builder;
}
diff --git a/java/com/android/dialer/commandline/impl/Blocking.java b/java/com/android/dialer/commandline/impl/BlockingCommand.java
index 2afd16522..c8f893422 100644
--- a/java/com/android/dialer/commandline/impl/Blocking.java
+++ b/java/com/android/dialer/commandline/impl/BlockingCommand.java
@@ -18,17 +18,25 @@ package com.android.dialer.commandline.impl;
import android.content.Context;
import android.support.annotation.NonNull;
-import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.DialerPhoneNumber;
+import com.android.dialer.blocking.Blocking;
import com.android.dialer.commandline.Arguments;
import com.android.dialer.commandline.Command;
import com.android.dialer.common.concurrent.Annotations.BackgroundExecutor;
import com.android.dialer.inject.ApplicationContext;
+import com.android.dialer.phonelookup.PhoneLookupComponent;
+import com.android.dialer.phonelookup.PhoneLookupInfo;
+import com.android.dialer.phonelookup.consolidator.PhoneLookupInfoConsolidator;
+import com.android.dialer.phonenumberproto.DialerPhoneNumberUtil;
+import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.common.util.concurrent.MoreExecutors;
+import com.google.i18n.phonenumbers.PhoneNumberUtil;
import javax.inject.Inject;
/** Block or unblock a number. */
-public class Blocking implements Command {
+public class BlockingCommand implements Command {
@NonNull
@Override
@@ -46,7 +54,7 @@ public class Blocking implements Command {
private final ListeningExecutorService executorService;
@Inject
- Blocking(
+ BlockingCommand(
@ApplicationContext Context context,
@BackgroundExecutor ListeningExecutorService executorService) {
this.appContext = context;
@@ -55,42 +63,49 @@ public class Blocking implements Command {
@Override
public ListenableFuture<String> run(Arguments args) throws IllegalCommandLineArgumentException {
- // AsyncQueryHandler must be created on a thread with looper.
- // TODO(a bug): Use blocking version
- FilteredNumberAsyncQueryHandler asyncQueryHandler =
- new FilteredNumberAsyncQueryHandler(appContext);
- return executorService.submit(() -> doInBackground(args, asyncQueryHandler));
- }
-
- private String doInBackground(Arguments args, FilteredNumberAsyncQueryHandler asyncQueryHandler) {
if (args.getPositionals().isEmpty()) {
- return getUsage();
+ return Futures.immediateFuture(getUsage());
}
String command = args.getPositionals().get(0);
if ("block".equals(command)) {
String number = args.getPositionals().get(1);
- asyncQueryHandler.blockNumber((unused) -> {}, number, null);
- return "blocked " + number;
+ return Futures.transform(
+ Blocking.block(appContext, executorService, number, null),
+ (unused) -> "blocked " + number,
+ MoreExecutors.directExecutor());
}
if ("unblock".equals(command)) {
String number = args.getPositionals().get(1);
- Integer id = asyncQueryHandler.getBlockedIdSynchronous(number, null);
- if (id == null) {
- return number + " is not blocked";
- }
- asyncQueryHandler.unblock((unusedRows, unusedValues) -> {}, id);
- return "unblocked " + number;
+ return Futures.transform(
+ Blocking.unblock(appContext, executorService, number, null),
+ (unused) -> "unblocked " + number,
+ MoreExecutors.directExecutor());
}
if ("isblocked".equals(command)) {
String number = args.getPositionals().get(1);
- Integer id = asyncQueryHandler.getBlockedIdSynchronous(number, null);
- return id == null ? "false" : "true";
+ ListenableFuture<DialerPhoneNumber> dialerPhoneNumberFuture =
+ executorService.submit(
+ () -> new DialerPhoneNumberUtil(PhoneNumberUtil.getInstance()).parse(number, null));
+
+ ListenableFuture<PhoneLookupInfo> lookupFuture =
+ Futures.transformAsync(
+ dialerPhoneNumberFuture,
+ (dialerPhoneNumber) ->
+ PhoneLookupComponent.get(appContext)
+ .compositePhoneLookup()
+ .lookup(dialerPhoneNumber),
+ executorService);
+
+ return Futures.transform(
+ lookupFuture,
+ (info) -> new PhoneLookupInfoConsolidator(info).isBlocked() ? "true" : "false",
+ MoreExecutors.directExecutor());
}
- return getUsage();
+ return Futures.immediateFuture(getUsage());
}
}