summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/phonelookup
diff options
context:
space:
mode:
authorlinyuh <linyuh@google.com>2018-01-24 18:15:17 -0800
committerCopybara-Service <copybara-piper@google.com>2018-01-24 19:10:21 -0800
commit849f332ffa5fc9430c4bc38c5a0ee78da77f0a39 (patch)
treed7891f88dcd88c5f20625eb58b3f43dd1e8610ad /java/com/android/dialer/phonelookup
parent0874af841f7e23357ceb2bb8825180b111d613b4 (diff)
Add skeleton for SpamPhoneLookup
Bug: 70989534 Test: SpamPhoneLookupTest PiperOrigin-RevId: 183174131 Change-Id: I46e819a0710ccce293195594e2f249e91d74551a
Diffstat (limited to 'java/com/android/dialer/phonelookup')
-rw-r--r--java/com/android/dialer/phonelookup/PhoneLookupModule.java7
-rw-r--r--java/com/android/dialer/phonelookup/phone_lookup_info.proto1
-rw-r--r--java/com/android/dialer/phonelookup/spam/SpamPhoneLookup.java81
3 files changed, 87 insertions, 2 deletions
diff --git a/java/com/android/dialer/phonelookup/PhoneLookupModule.java b/java/com/android/dialer/phonelookup/PhoneLookupModule.java
index 8a78ba038..d4cd60a04 100644
--- a/java/com/android/dialer/phonelookup/PhoneLookupModule.java
+++ b/java/com/android/dialer/phonelookup/PhoneLookupModule.java
@@ -21,6 +21,7 @@ import com.android.dialer.phonelookup.blockednumber.SystemBlockedNumberPhoneLook
import com.android.dialer.phonelookup.composite.CompositePhoneLookup;
import com.android.dialer.phonelookup.cp2.Cp2LocalPhoneLookup;
import com.android.dialer.phonelookup.cp2.Cp2RemotePhoneLookup;
+import com.android.dialer.phonelookup.spam.SpamPhoneLookup;
import com.google.common.collect.ImmutableList;
import dagger.Module;
import dagger.Provides;
@@ -35,12 +36,14 @@ public abstract class PhoneLookupModule {
Cp2LocalPhoneLookup cp2LocalPhoneLookup,
Cp2RemotePhoneLookup cp2RemotePhoneLookup,
DialerBlockedNumberPhoneLookup dialerBlockedNumberPhoneLookup,
- SystemBlockedNumberPhoneLookup systemBlockedNumberPhoneLookup) {
+ SystemBlockedNumberPhoneLookup systemBlockedNumberPhoneLookup,
+ SpamPhoneLookup spamPhoneLookup) {
return ImmutableList.of(
cp2LocalPhoneLookup,
cp2RemotePhoneLookup,
dialerBlockedNumberPhoneLookup,
- systemBlockedNumberPhoneLookup);
+ systemBlockedNumberPhoneLookup,
+ spamPhoneLookup);
}
@Provides
diff --git a/java/com/android/dialer/phonelookup/phone_lookup_info.proto b/java/com/android/dialer/phonelookup/phone_lookup_info.proto
index 800af8c78..57a61ac50 100644
--- a/java/com/android/dialer/phonelookup/phone_lookup_info.proto
+++ b/java/com/android/dialer/phonelookup/phone_lookup_info.proto
@@ -82,6 +82,7 @@ message PhoneLookupInfo {
optional Cp2Info cp2_remote_info = 6;
// Message for spam info.
+ // SpamPhoneLookup is responsible for populating this message.
message SpamInfo {
optional bool is_spam = 1;
}
diff --git a/java/com/android/dialer/phonelookup/spam/SpamPhoneLookup.java b/java/com/android/dialer/phonelookup/spam/SpamPhoneLookup.java
new file mode 100644
index 000000000..0196ec5e1
--- /dev/null
+++ b/java/com/android/dialer/phonelookup/spam/SpamPhoneLookup.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.phonelookup.spam;
+
+import android.content.Context;
+import com.android.dialer.DialerPhoneNumber;
+import com.android.dialer.phonelookup.PhoneLookup;
+import com.android.dialer.phonelookup.PhoneLookupInfo;
+import com.android.dialer.phonelookup.PhoneLookupInfo.SpamInfo;
+import com.android.dialer.spam.Spam;
+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 javax.inject.Inject;
+
+/** PhoneLookup implementation for Spam info. */
+public final class SpamPhoneLookup implements PhoneLookup<SpamInfo> {
+
+ private final Spam spam;
+
+ @Inject
+ SpamPhoneLookup(Spam spam) {
+ this.spam = spam;
+ }
+
+ @Override
+ public ListenableFuture<SpamInfo> lookup(DialerPhoneNumber dialerPhoneNumber) {
+ // TODO(a bug): Use Spam to look up spam info.
+ return Futures.immediateFuture(SpamInfo.getDefaultInstance());
+ }
+
+ @Override
+ public ListenableFuture<Boolean> isDirty(ImmutableSet<DialerPhoneNumber> phoneNumbers) {
+ // TODO(a bug): Use Spam to check if its underlying data have been updated.
+ return Futures.immediateFuture(false);
+ }
+
+ @Override
+ public ListenableFuture<ImmutableMap<DialerPhoneNumber, SpamInfo>> getMostRecentInfo(
+ ImmutableMap<DialerPhoneNumber, SpamInfo> existingInfoMap) {
+ // TODO(a bug): Use Spam to retrieve the most recent spam info.
+ return Futures.immediateFuture(existingInfoMap);
+ }
+
+ @Override
+ public SpamInfo getSubMessage(PhoneLookupInfo phoneLookupInfo) {
+ return phoneLookupInfo.getSpamInfo();
+ }
+
+ @Override
+ public void setSubMessage(PhoneLookupInfo.Builder destination, SpamInfo subMessage) {
+ destination.setSpamInfo(subMessage);
+ }
+
+ @Override
+ public ListenableFuture<Void> onSuccessfulBulkUpdate() {
+ // TODO(a bug): Properly implement this method.
+ return Futures.immediateFuture(null);
+ }
+
+ @Override
+ public void registerContentObservers(
+ Context appContext, ContentObserverCallbacks contentObserverCallbacks) {
+ // No content observer needed for spam info
+ }
+}