summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/voicemail
diff options
context:
space:
mode:
authorlinyuh <linyuh@google.com>2018-05-03 12:42:04 -0700
committerCopybara-Service <copybara-piper@google.com>2018-05-04 15:57:07 -0700
commit253b4407c125acbb7add26592ba782144c4d0366 (patch)
treedcf7f25e939d8beb80464cdddcf6ec87b604b982 /java/com/android/dialer/voicemail
parent49f90b332c6e716196276dab0f3d7e21b56b696e (diff)
Simplify how we build bottom sheet options (a.k.a. modules).
Test: HistoryItemActionModulesBuilderTest, ModulesTest PiperOrigin-RevId: 195294876 Change-Id: Iac44f965a585975389da7dee758a94a8ad8311d3
Diffstat (limited to 'java/com/android/dialer/voicemail')
-rw-r--r--java/com/android/dialer/voicemail/listui/menu/Modules.java96
1 files changed, 36 insertions, 60 deletions
diff --git a/java/com/android/dialer/voicemail/listui/menu/Modules.java b/java/com/android/dialer/voicemail/listui/menu/Modules.java
index 226063c1b..dcd9116e9 100644
--- a/java/com/android/dialer/voicemail/listui/menu/Modules.java
+++ b/java/com/android/dialer/voicemail/listui/menu/Modules.java
@@ -17,77 +17,53 @@
package com.android.dialer.voicemail.listui.menu;
import android.content.Context;
-import com.android.dialer.blockreportspam.BlockReportSpamDialogInfo;
-import com.android.dialer.historyitemactions.DividerModule;
+import android.text.TextUtils;
import com.android.dialer.historyitemactions.HistoryItemActionModule;
-import com.android.dialer.historyitemactions.SharedModules;
-import com.android.dialer.logging.ReportingLocation;
+import com.android.dialer.historyitemactions.HistoryItemActionModuleInfo;
+import com.android.dialer.historyitemactions.HistoryItemActionModulesBuilder;
import com.android.dialer.voicemail.model.VoicemailEntry;
-import com.google.common.base.Optional;
-import java.util.ArrayList;
import java.util.List;
/**
* Configures the modules for the voicemail bottom sheet; these are the rows below the top row
- * (primary action) in the bottom sheet.
+ * (contact info) in the bottom sheet.
*/
-@SuppressWarnings("Guava")
final class Modules {
static List<HistoryItemActionModule> fromVoicemailEntry(
Context context, VoicemailEntry voicemailEntry) {
- // Conditionally add each module, which are items in the bottom sheet's menu.
- List<HistoryItemActionModule> modules = new ArrayList<>();
-
- // TODO(uabdullah): Handle maybeAddModuleForVideoOrAudioCall(context, modules, row);
- Optional<HistoryItemActionModule> moduleForAddingContacts =
- SharedModules.createModuleForAddingToContacts(
- context,
- voicemailEntry.getNumber(),
- voicemailEntry.getNumberAttributes().getName(),
- voicemailEntry.getNumberAttributes().getLookupUri(),
- voicemailEntry.getNumberAttributes().getIsBlocked(),
- voicemailEntry.getNumberAttributes().getIsSpam());
- if (moduleForAddingContacts.isPresent()) {
- modules.add(moduleForAddingContacts.get());
- }
-
- Optional<HistoryItemActionModule> moduleForSendingTextMessage =
- SharedModules.createModuleForSendingTextMessage(
- context,
- voicemailEntry.getNumber().getNormalizedNumber(),
- voicemailEntry.getNumberAttributes().getIsBlocked());
- if (moduleForSendingTextMessage.isPresent()) {
- modules.add(moduleForSendingTextMessage.get());
- }
-
- if (!modules.isEmpty()) {
- modules.add(new DividerModule());
- }
-
- BlockReportSpamDialogInfo blockReportSpamDialogInfo =
- BlockReportSpamDialogInfo.newBuilder()
- .setNormalizedNumber(voicemailEntry.getNumber().getNormalizedNumber())
- .setCountryIso(voicemailEntry.getNumber().getCountryIso())
- .setCallType(voicemailEntry.getCallType())
- .setReportingLocation(ReportingLocation.Type.VOICEMAIL_HISTORY)
- .setContactSource(voicemailEntry.getNumberAttributes().getContactSource())
- .build();
- modules.addAll(
- SharedModules.createModulesHandlingBlockedOrSpamNumber(
- context,
- blockReportSpamDialogInfo,
- voicemailEntry.getNumberAttributes().getIsBlocked(),
- voicemailEntry.getNumberAttributes().getIsSpam()));
-
- // TODO(zachh): Module for CallComposer.
- Optional<HistoryItemActionModule> moduleForCopyingNumber =
- SharedModules.createModuleForCopyingNumber(
- context, voicemailEntry.getNumber().getNormalizedNumber());
- if (moduleForCopyingNumber.isPresent()) {
- modules.add(moduleForCopyingNumber.get());
- }
+ return new HistoryItemActionModulesBuilder(context, buildModuleInfo(voicemailEntry))
+ // TODO(uabdullah): add module for calls.
+ .addModuleForAddingToContacts()
+ .addModuleForSendingTextMessage()
+ .addModuleForDivider()
+ .addModuleForBlockedOrSpamNumber()
+ .addModuleForCopyingNumber()
+ // TODO(zachh): Module for CallComposer.
+ .build();
+ }
- return modules;
+ private static HistoryItemActionModuleInfo buildModuleInfo(VoicemailEntry voicemailEntry) {
+ return HistoryItemActionModuleInfo.newBuilder()
+ .setNormalizedNumber(voicemailEntry.getNumber().getNormalizedNumber())
+ .setCountryIso(voicemailEntry.getNumber().getCountryIso())
+ .setName(voicemailEntry.getNumberAttributes().getName())
+ .setCallType(voicemailEntry.getCallType())
+ .setLookupUri(voicemailEntry.getNumberAttributes().getLookupUri())
+ .setPhoneAccountComponentName(voicemailEntry.getPhoneAccountComponentName())
+ .setCanReportAsInvalidNumber(
+ voicemailEntry.getNumberAttributes().getCanReportAsInvalidNumber())
+ .setCanSupportAssistedDialing(
+ !TextUtils.isEmpty(voicemailEntry.getNumberAttributes().getLookupUri()))
+ .setCanSupportCarrierVideoCall(
+ voicemailEntry.getNumberAttributes().getCanSupportCarrierVideoCall())
+ .setIsBlocked(voicemailEntry.getNumberAttributes().getIsBlocked())
+ .setIsSpam(voicemailEntry.getNumberAttributes().getIsSpam())
+ // A voicemail call is an outgoing call to the voicemail box.
+ // Voicemail entries are not voicemail calls.
+ .setIsVoicemailCall(false)
+ .setContactSource(voicemailEntry.getNumberAttributes().getContactSource())
+ .setHost(HistoryItemActionModuleInfo.Host.VOICEMAIL)
+ .build();
}
}