summaryrefslogtreecommitdiff
path: root/src/com/android/dialer/calllog/BlockReportSpamListener.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/dialer/calllog/BlockReportSpamListener.java')
-rw-r--r--src/com/android/dialer/calllog/BlockReportSpamListener.java186
1 files changed, 74 insertions, 112 deletions
diff --git a/src/com/android/dialer/calllog/BlockReportSpamListener.java b/src/com/android/dialer/calllog/BlockReportSpamListener.java
index bda4ee538..62b9b9311 100644
--- a/src/com/android/dialer/calllog/BlockReportSpamListener.java
+++ b/src/com/android/dialer/calllog/BlockReportSpamListener.java
@@ -1,32 +1,30 @@
package com.android.dialer.calllog;
-import android.app.AlertDialog;
+import android.app.Activity;
+import android.app.FragmentManager;
import android.content.ContentValues;
-import android.content.Context;
import android.content.DialogInterface;
import android.net.Uri;
import android.support.v7.widget.RecyclerView;
-import android.view.View;
-import android.widget.CheckBox;
+import com.android.dialer.util.BlockReportSpamDialogs;
import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
import com.android.dialer.service.ExtendedCallInfoService;
-import com.android.dialer.R;
/**
* Listener to show dialogs for block and report spam actions.
*/
public class BlockReportSpamListener implements CallLogListItemViewHolder.OnClickListener {
- private final Context mContext;
+ private final FragmentManager mFragmentManager;
private final RecyclerView.Adapter mAdapter;
private final ExtendedCallInfoService mExtendedCallInfoService;
private final FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
- public BlockReportSpamListener(Context context, RecyclerView.Adapter adapter,
+ public BlockReportSpamListener(FragmentManager fragmentManager, RecyclerView.Adapter adapter,
ExtendedCallInfoService extendedCallInfoService,
FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler) {
- mContext = context;
+ mFragmentManager = fragmentManager;
mAdapter = adapter;
mExtendedCallInfoService = extendedCallInfoService;
mFilteredNumberAsyncQueryHandler = filteredNumberAsyncQueryHandler;
@@ -35,124 +33,88 @@ public class BlockReportSpamListener implements CallLogListItemViewHolder.OnClic
@Override
public void onBlockReportSpam(String displayNumber, final String number,
final String countryIso, final int callType) {
- final View dialogView = View.inflate(mContext, R.layout.block_report_spam_dialog, null);
-
- AlertDialog.Builder alertDialogBuilder = createDialogBuilder();
- alertDialogBuilder
- .setView(dialogView)
- .setTitle(mContext.getString(
- R.string.block_report_number_alert_title, displayNumber))
- .setPositiveButton(mContext.getString(R.string.block_number_ok),
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- CheckBox isSpamCheckbox = (CheckBox) dialogView
- .findViewById(R.id.report_number_as_spam_action);
- if (isSpamCheckbox.isChecked()) {
- mExtendedCallInfoService.reportSpam(
- number, countryIso, callType);
- }
- mFilteredNumberAsyncQueryHandler.blockNumber(
- new FilteredNumberAsyncQueryHandler.OnBlockNumberListener() {
- @Override
- public void onBlockComplete(Uri uri) {
- mAdapter.notifyDataSetChanged();
- }
- },
- number,
- countryIso);
- }
- });
- alertDialogBuilder.show();
+ BlockReportSpamDialogs.BlockReportSpamDialogFragment.newInstance(
+ displayNumber,
+ false,
+ new BlockReportSpamDialogs.OnSpamDialogClickListener() {
+ @Override
+ public void onClick(boolean isSpamChecked) {
+ if (isSpamChecked) {
+ mExtendedCallInfoService.reportSpam(
+ number, countryIso, callType);
+ }
+ mFilteredNumberAsyncQueryHandler.blockNumber(
+ new FilteredNumberAsyncQueryHandler.OnBlockNumberListener() {
+ @Override
+ public void onBlockComplete(Uri uri) {
+ mAdapter.notifyDataSetChanged();
+ }
+ },
+ number,
+ countryIso);
+ }
+ }, null)
+ .show(mFragmentManager, BlockReportSpamDialogs.BLOCK_REPORT_SPAM_DIALOG_TAG);
}
@Override
public void onBlock(String displayNumber, final String number, final String countryIso,
final int callType) {
- AlertDialog.Builder alertDialogBuilder = createDialogBuilder();
- alertDialogBuilder
- .setTitle(mContext.getString(
- R.string.block_report_number_alert_title, displayNumber))
- .setMessage(R.string.block_number_alert_details)
- .setPositiveButton(mContext.getString(R.string.block_number_ok),
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- mExtendedCallInfoService.reportSpam(number, countryIso, callType);
- mFilteredNumberAsyncQueryHandler.blockNumber(
- new FilteredNumberAsyncQueryHandler.OnBlockNumberListener() {
- @Override
- public void onBlockComplete(Uri uri) {
- mAdapter.notifyDataSetChanged();
- }
- },
- number,
- countryIso);
- }
- });
- alertDialogBuilder.show();
+ BlockReportSpamDialogs.BlockDialogFragment.newInstance(displayNumber,
+ new BlockReportSpamDialogs.OnConfirmListener() {
+ @Override
+ public void onClick() {
+ mExtendedCallInfoService.reportSpam(number, countryIso, callType);
+ mFilteredNumberAsyncQueryHandler.blockNumber(
+ new FilteredNumberAsyncQueryHandler.OnBlockNumberListener() {
+ @Override
+ public void onBlockComplete(Uri uri) {
+ mAdapter.notifyDataSetChanged();
+ }
+ },
+ number,
+ countryIso);
+ }
+ }, null)
+ .show(mFragmentManager, BlockReportSpamDialogs.BLOCK_DIALOG_TAG);
}
@Override
public void onUnblock(String displayNumber, final String number, final String countryIso,
final Integer blockId, final boolean isSpam, final int callType) {
- AlertDialog.Builder alertDialogBuilder = createDialogBuilder();
- if (isSpam) {
- alertDialogBuilder.setMessage(R.string.unblock_number_alert_details);
- }
- alertDialogBuilder
- .setTitle(mContext.getString(
- R.string.unblock_report_number_alert_title, displayNumber))
- .setPositiveButton(R.string.unblock_number_ok,
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- if (isSpam) {
- mExtendedCallInfoService.reportNotSpam(
- number, countryIso, callType);
- }
- mFilteredNumberAsyncQueryHandler.unblock(
- new FilteredNumberAsyncQueryHandler.OnUnblockNumberListener() {
- @Override
- public void onUnblockComplete(int rows, ContentValues values) {
- mAdapter.notifyDataSetChanged();
- }
- },
- blockId);
- }
- });
- alertDialogBuilder.show();
+ BlockReportSpamDialogs.UnblockDialogFragment.newInstance(displayNumber, isSpam,
+ new BlockReportSpamDialogs.OnConfirmListener() {
+ @Override
+ public void onClick() {
+ if (isSpam) {
+ mExtendedCallInfoService.reportNotSpam(
+ number, countryIso, callType);
+ }
+ mFilteredNumberAsyncQueryHandler.unblock(
+ new FilteredNumberAsyncQueryHandler.OnUnblockNumberListener() {
+ @Override
+ public void onUnblockComplete(int rows, ContentValues values) {
+ mAdapter.notifyDataSetChanged();
+ }
+ },
+ blockId);
+ }
+ }, null)
+ .show(mFragmentManager, BlockReportSpamDialogs.UNBLOCK_DIALOG_TAG);
}
@Override
public void onReportNotSpam(String displayNumber, final String number, final String countryIso,
final int callType) {
- AlertDialog.Builder alertDialogBuilder = createDialogBuilder();
- alertDialogBuilder
- .setTitle(mContext.getString(
- R.string.report_not_spam_alert_title, displayNumber))
- .setMessage(R.string.report_not_spam_alert_details)
- .setPositiveButton(R.string.report_not_spam_alert_button,
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- mExtendedCallInfoService.reportNotSpam(
- number, countryIso, callType);
- mAdapter.notifyDataSetChanged();
- }
- });
- alertDialogBuilder.show();
- }
-
- private AlertDialog.Builder createDialogBuilder() {
- return new AlertDialog.Builder(mContext)
- .setCancelable(true)
- .setNegativeButton(mContext.getString(android.R.string.cancel),
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dialog.cancel();
- }
- });
+ BlockReportSpamDialogs.ReportNotSpamDialogFragment.newInstance(displayNumber,
+ new BlockReportSpamDialogs.OnConfirmListener() {
+ @Override
+ public void onClick() {
+ mExtendedCallInfoService.reportNotSpam(
+ number, countryIso, callType);
+ mAdapter.notifyDataSetChanged();
+ }
+ }, null)
+ .show(mFragmentManager, BlockReportSpamDialogs.NOT_SPAM_DIALOG_TAG);
}
}