summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/app/voicemail/error/VoicemailErrorAlert.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/app/voicemail/error/VoicemailErrorAlert.java')
-rw-r--r--java/com/android/dialer/app/voicemail/error/VoicemailErrorAlert.java175
1 files changed, 0 insertions, 175 deletions
diff --git a/java/com/android/dialer/app/voicemail/error/VoicemailErrorAlert.java b/java/com/android/dialer/app/voicemail/error/VoicemailErrorAlert.java
deleted file mode 100644
index 7d6665de6..000000000
--- a/java/com/android/dialer/app/voicemail/error/VoicemailErrorAlert.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (C) 2016 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.app.voicemail.error;
-
-import android.content.Context;
-import android.support.annotation.VisibleForTesting;
-import android.text.method.LinkMovementMethod;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-import com.android.dialer.app.alert.AlertManager;
-import com.android.dialer.app.voicemail.error.VoicemailErrorMessage.Action;
-import com.android.dialer.common.Assert;
-import com.android.dialer.common.LogUtil;
-import java.util.List;
-
-/**
- * UI for the voicemail error message, which will be inserted to the top of the voicemail tab if any
- * occurred.
- */
-public class VoicemailErrorAlert {
-
- private final Context context;
- private final AlertManager alertManager;
- private final VoicemailErrorMessageCreator messageCreator;
-
- private final View view;
- private final TextView header;
- private final TextView details;
- private final TextView primaryAction;
- private final TextView secondaryAction;
- private final TextView primaryActionRaised;
- private final TextView secondaryActionRaised;
- private final AlertManager modalAlertManager;
- private View modalView;
-
- public VoicemailErrorAlert(
- Context context,
- AlertManager alertManager,
- AlertManager modalAlertManager,
- VoicemailErrorMessageCreator messageCreator) {
- this.context = context;
- this.alertManager = alertManager;
- this.modalAlertManager = modalAlertManager;
- this.messageCreator = messageCreator;
-
- view = alertManager.inflate(R.layout.voicemail_error_message_fragment);
- header = (TextView) view.findViewById(R.id.error_card_header);
- details = (TextView) view.findViewById(R.id.error_card_details);
- primaryAction = (TextView) view.findViewById(R.id.primary_action);
- secondaryAction = (TextView) view.findViewById(R.id.secondary_action);
- primaryActionRaised = (TextView) view.findViewById(R.id.primary_action_raised);
- secondaryActionRaised = (TextView) view.findViewById(R.id.secondary_action_raised);
- }
-
- public void updateStatus(List<VoicemailStatus> statuses, VoicemailStatusReader statusReader) {
- LogUtil.i("VoicemailErrorAlert.updateStatus", "%d status", statuses.size());
- VoicemailErrorMessage message = null;
- view.setVisibility(View.VISIBLE);
- for (VoicemailStatus status : statuses) {
- message = messageCreator.create(context, status, statusReader);
- if (message != null) {
- break;
- }
- }
-
- alertManager.clear();
- modalAlertManager.clear();
- if (message != null) {
- LogUtil.i(
- "VoicemailErrorAlert.updateStatus",
- "isModal: %b, %s",
- message.isModal(),
- message.getTitle());
- if (message.isModal()) {
- if (message instanceof VoicemailTosMessage) {
- modalView = getTosView(modalAlertManager, (VoicemailTosMessage) message);
- } else {
- throw new IllegalArgumentException("Modal message type is undefined!");
- }
- modalAlertManager.add(modalView);
- } else {
- loadMessage(message);
- alertManager.add(view);
- }
- }
- }
-
- @VisibleForTesting
- public View getView() {
- return view;
- }
-
- @VisibleForTesting
- public View getModalView() {
- return modalView;
- }
-
- void loadMessage(VoicemailErrorMessage message) {
- header.setText(message.getTitle());
- details.setText(message.getDescription());
- bindActions(message);
- }
-
- private View getTosView(AlertManager alertManager, VoicemailTosMessage message) {
- View view = alertManager.inflate(R.layout.voicemail_tos_fragment);
- TextView tosTitle = (TextView) view.findViewById(R.id.tos_message_title);
- tosTitle.setText(message.getTitle());
- TextView tosDetails = (TextView) view.findViewById(R.id.tos_message_details);
- tosDetails.setText(message.getDescription());
- tosDetails.setMovementMethod(LinkMovementMethod.getInstance());
-
- Assert.checkArgument(message.getActions().size() == 2);
- Action primaryAction = message.getActions().get(0);
- TextView primaryButton = (TextView) view.findViewById(R.id.voicemail_tos_button_decline);
- primaryButton.setText(primaryAction.getText());
- primaryButton.setOnClickListener(primaryAction.getListener());
- Action secondaryAction = message.getActions().get(1);
- TextView secondaryButton = (TextView) view.findViewById(R.id.voicemail_tos_button_accept);
- secondaryButton.setText(secondaryAction.getText());
- secondaryButton.setOnClickListener(secondaryAction.getListener());
-
- if (message.getImageResourceId() != null) {
- ImageView voicemailTosImage = (ImageView) view.findViewById(R.id.voicemail_image);
- voicemailTosImage.setImageResource(message.getImageResourceId());
- voicemailTosImage.setVisibility(View.VISIBLE);
- }
-
- return view;
- }
-
- /**
- * Attach actions to buttons until all buttons are assigned. If there are not enough actions the
- * rest of the buttons will be removed. If there are more actions then buttons the extra actions
- * will be dropped. {@link VoicemailErrorMessage#getActions()} will specify what actions should be
- * shown and in what order.
- */
- private void bindActions(VoicemailErrorMessage message) {
- TextView[] buttons = new TextView[] {primaryAction, secondaryAction};
- TextView[] raisedButtons = new TextView[] {primaryActionRaised, secondaryActionRaised};
- for (int i = 0; i < buttons.length; i++) {
- if (message.getActions() != null && i < message.getActions().size()) {
- VoicemailErrorMessage.Action action = message.getActions().get(i);
- TextView button;
- if (action.isRaised()) {
- button = raisedButtons[i];
- buttons[i].setVisibility(View.GONE);
- } else {
- button = buttons[i];
- raisedButtons[i].setVisibility(View.GONE);
- }
- button.setText(action.getText());
- button.setOnClickListener(action.getListener());
- button.setVisibility(View.VISIBLE);
- } else {
- buttons[i].setVisibility(View.GONE);
- raisedButtons[i].setVisibility(View.GONE);
- }
- }
- }
-}