diff options
Diffstat (limited to 'src/com/android/dialer/util/BlockReportSpamDialogs.java')
-rw-r--r-- | src/com/android/dialer/util/BlockReportSpamDialogs.java | 293 |
1 files changed, 0 insertions, 293 deletions
diff --git a/src/com/android/dialer/util/BlockReportSpamDialogs.java b/src/com/android/dialer/util/BlockReportSpamDialogs.java deleted file mode 100644 index 45b2f4228..000000000 --- a/src/com/android/dialer/util/BlockReportSpamDialogs.java +++ /dev/null @@ -1,293 +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.util; - -import android.app.Activity; -import android.app.AlertDialog; -import android.app.Dialog; -import android.app.DialogFragment; -import android.content.DialogInterface; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.view.View; -import android.widget.CheckBox; -import android.widget.CompoundButton; - -import com.android.dialer.R; - -/** - * Helper class for creating block/report dialog fragments. - */ -public class BlockReportSpamDialogs { - public static final String BLOCK_REPORT_SPAM_DIALOG_TAG = "BlockReportSpamDialog"; - public static final String BLOCK_DIALOG_TAG = "BlockDialog"; - public static final String UNBLOCK_DIALOG_TAG = "UnblockDialog"; - public static final String NOT_SPAM_DIALOG_TAG = "NotSpamDialog"; - - /** - * Listener passed to block/report spam dialog for positive click in - * {@link BlockReportSpamDialogFragment}. - */ - public interface OnSpamDialogClickListener { - /** - * Called when user clicks on positive button in block/report spam dialog. - * @param isSpamChecked Whether the spam checkbox is checked. - */ - void onClick(boolean isSpamChecked); - } - - /** - * Listener passed to all dialogs except the block/report spam dialog for positive click. - */ - public interface OnConfirmListener { - /** - * Called when user clicks on positive button in the dialog. - */ - void onClick(); - } - - /** - * Contains the common attributes between all block/unblock/report dialog fragments. - */ - private static class CommonDialogsFragment extends DialogFragment { - /** - * The number to display in the dialog title. - */ - protected String mDisplayNumber; - - /** - * Called when dialog positive button is pressed. - */ - protected OnConfirmListener mPositiveListener; - - /** - * Called when dialog is dismissed. - */ - @Nullable - protected DialogInterface.OnDismissListener mDismissListener; - - @Override - public void onDismiss(DialogInterface dialog) { - if (mDismissListener != null) { - mDismissListener.onDismiss(dialog); - } - super.onDismiss(dialog); - } - - @Override - public void onPause() { - // The dialog is dismissed onPause, i.e. rotation. - dismiss(); - mDismissListener = null; - mPositiveListener = null; - mDisplayNumber = null; - super.onPause(); - } - } - - /** - * Dialog for block/report spam with the mark as spam checkbox. - */ - public static class BlockReportSpamDialogFragment extends CommonDialogsFragment { - /** - * Called when dialog positive button is pressed. - */ - private OnSpamDialogClickListener mPositiveListener; - - /** - * Whether the mark as spam checkbox is checked before displaying the dialog. - */ - private boolean mSpamChecked; - - public static DialogFragment newInstance(String displayNumber, - boolean spamChecked, - OnSpamDialogClickListener positiveListener, - @Nullable DialogInterface.OnDismissListener - dismissListener) { - BlockReportSpamDialogFragment fragment = new BlockReportSpamDialogFragment(); - fragment.mSpamChecked = spamChecked; - fragment.mDisplayNumber = displayNumber; - fragment.mPositiveListener = positiveListener; - fragment.mDismissListener = dismissListener; - return fragment; - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - super.onCreateDialog(savedInstanceState); - View dialogView = View.inflate(getActivity(), R.layout.block_report_spam_dialog, null); - final CheckBox isSpamCheckbox = - (CheckBox) dialogView.findViewById(R.id.report_number_as_spam_action); - // Listen for changes on the checkbox and update if orientation changes - isSpamCheckbox.setChecked(mSpamChecked); - isSpamCheckbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - mSpamChecked = isChecked; - } - }); - - AlertDialog.Builder alertDialogBuilder = createDialogBuilder(getActivity(), this); - Dialog dialog = alertDialogBuilder - .setView(dialogView) - .setTitle(getString(R.string.block_report_number_alert_title, mDisplayNumber)) - .setPositiveButton(R.string.block_number_ok, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dismiss(); - mPositiveListener.onClick(isSpamCheckbox.isChecked()); - } - }).create(); - dialog.setCanceledOnTouchOutside(true); - return dialog; - } - } - - /** - * Dialog for blocking a number. - */ - public static class BlockDialogFragment extends CommonDialogsFragment { - public static DialogFragment newInstance(String displayNumber, - OnConfirmListener positiveListener, - @Nullable DialogInterface.OnDismissListener - dismissListener) { - BlockDialogFragment fragment = new BlockDialogFragment(); - fragment.mDisplayNumber = displayNumber; - fragment.mPositiveListener = positiveListener; - fragment.mDismissListener = dismissListener; - return fragment; - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - super.onCreateDialog(savedInstanceState); - // Return the newly created dialog - AlertDialog.Builder alertDialogBuilder = createDialogBuilder(getActivity(), this); - Dialog dialog = alertDialogBuilder - .setTitle(getString(R.string.block_report_number_alert_title, mDisplayNumber)) - .setPositiveButton(R.string.block_number_ok, - createGenericOnClickListener(this, mPositiveListener)) - .create(); - dialog.setCanceledOnTouchOutside(true); - return dialog; - } - } - - /** - * Dialog for unblocking a number. - */ - public static class UnblockDialogFragment extends CommonDialogsFragment { - /** - * Whether or not the number is spam. - */ - private boolean mIsSpam; - - public static DialogFragment newInstance(String displayNumber, - boolean isSpam, - OnConfirmListener positiveListener, - @Nullable DialogInterface.OnDismissListener - dismissListener) { - UnblockDialogFragment fragment = new UnblockDialogFragment(); - fragment.mDisplayNumber = displayNumber; - fragment.mIsSpam = isSpam; - fragment.mPositiveListener = positiveListener; - fragment.mDismissListener = dismissListener; - return fragment; - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - super.onCreateDialog(savedInstanceState); - // Return the newly created dialog - AlertDialog.Builder alertDialogBuilder = createDialogBuilder(getActivity(), this); - if (mIsSpam) { - alertDialogBuilder.setMessage(R.string.unblock_number_alert_details); - } - Dialog dialog = alertDialogBuilder - .setTitle(getString(R.string.unblock_report_number_alert_title, mDisplayNumber)) - .setPositiveButton(R.string.unblock_number_ok, - createGenericOnClickListener(this, mPositiveListener)) - .create(); - dialog.setCanceledOnTouchOutside(true); - return dialog; - } - } - - /** - * Dialog for reporting a number as not spam. - */ - public static class ReportNotSpamDialogFragment extends CommonDialogsFragment { - public static DialogFragment newInstance(String displayNumber, - OnConfirmListener positiveListener, - @Nullable DialogInterface.OnDismissListener - dismissListener) { - ReportNotSpamDialogFragment fragment = new ReportNotSpamDialogFragment(); - fragment.mDisplayNumber = displayNumber; - fragment.mPositiveListener = positiveListener; - fragment.mDismissListener = dismissListener; - return fragment; - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - super.onCreateDialog(savedInstanceState); - // Return the newly created dialog - AlertDialog.Builder alertDialogBuilder = createDialogBuilder(getActivity(), this); - Dialog dialog = alertDialogBuilder - .setTitle(getString(R.string.report_not_spam_alert_title, mDisplayNumber)) - .setMessage(R.string.report_not_spam_alert_details) - .setPositiveButton(R.string.report_not_spam_alert_button, - createGenericOnClickListener(this, mPositiveListener)) - .create(); - dialog.setCanceledOnTouchOutside(true); - return dialog; - } - } - - /** - * Creates a dialog with the default cancel button listener (dismisses dialog). - */ - private static AlertDialog.Builder createDialogBuilder(Activity activity, - final DialogFragment fragment) { - return new AlertDialog.Builder(activity) - .setCancelable(true) - .setNegativeButton(android.R.string.cancel, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - fragment.dismiss(); - } - }); - } - - /** - * Creates a generic click listener which dismisses the fragment and then calls the actual - * listener. - */ - private static DialogInterface.OnClickListener createGenericOnClickListener( - final DialogFragment fragment, - final OnConfirmListener listener) { - return new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - fragment.dismiss(); - listener.onClick(); - } - }; - } -} |