diff options
Diffstat (limited to 'src/com/android/dialer/calllog/BlockReportSpamListener.java')
-rw-r--r-- | src/com/android/dialer/calllog/BlockReportSpamListener.java | 186 |
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); } } |