diff options
author | Anne Rong <annerong@google.com> | 2015-09-30 17:42:14 -0700 |
---|---|---|
committer | Anne Rong <annerong@google.com> | 2015-10-02 16:39:49 -0700 |
commit | 113346fccb1eefd1e97deaaaee7bb3f3763f2540 (patch) | |
tree | d3718acdc652f589a90a4713483838547761ec5f /src/com/android/dialer/filterednumber | |
parent | 64dffce08a6e63755a0863f9c7975421af572c24 (diff) |
Add blocked number indicator to search screen for adding a blocked number.
Bug: 24468656
Change-Id: I31091e2dde07dabc432247fd4e409907fada152b
Diffstat (limited to 'src/com/android/dialer/filterednumber')
-rw-r--r-- | src/com/android/dialer/filterednumber/BlockedNumberSearchActivity.java | 67 | ||||
-rw-r--r-- | src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java | 106 |
2 files changed, 78 insertions, 95 deletions
diff --git a/src/com/android/dialer/filterednumber/BlockedNumberSearchActivity.java b/src/com/android/dialer/filterednumber/BlockedNumberSearchActivity.java index a8cbfb3ca..11c0ac4bc 100644 --- a/src/com/android/dialer/filterednumber/BlockedNumberSearchActivity.java +++ b/src/com/android/dialer/filterednumber/BlockedNumberSearchActivity.java @@ -36,14 +36,14 @@ import com.android.contacts.common.dialog.IndeterminateProgressDialog; import com.android.contacts.common.list.OnPhoneNumberPickerActionListener; import com.android.dialer.R; import com.android.dialer.database.FilteredNumberAsyncQueryHandler; +import com.android.dialer.list.BlockedListSearchAdapter; import com.android.dialer.list.OnListFragmentScrolledListener; import com.android.dialer.list.BlockedListSearchFragment; import com.android.dialer.list.SearchFragment; import com.android.dialer.widget.SearchEditTextLayout; public class BlockedNumberSearchActivity extends AppCompatActivity - implements SearchFragment.HostInterface, OnPhoneNumberPickerActionListener { - private static final String TAG = "BlockedNumberSearch"; + implements SearchFragment.HostInterface { private static final String TAG_BLOCKED_SEARCH_FRAGMENT = "blocked_search"; private FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler; @@ -115,7 +115,7 @@ public class BlockedNumberSearchActivity extends AppCompatActivity return; } final FragmentTransaction transaction = getFragmentManager().beginTransaction(); - SearchFragment fragment = (SearchFragment) getFragmentManager() + BlockedListSearchFragment fragment = (BlockedListSearchFragment) getFragmentManager() .findFragmentByTag(TAG_BLOCKED_SEARCH_FRAGMENT); if (fragment == null) { fragment = new BlockedListSearchFragment(); @@ -125,6 +125,8 @@ public class BlockedNumberSearchActivity extends AppCompatActivity } fragment.setHasOptionsMenu(false); fragment.setShowEmptyListForNullQuery(true); + fragment.setDirectorySearchEnabled(false); + fragment.setFilteredNumberAsyncQueryHandler(mFilteredNumberAsyncQueryHandler); transaction.commit(); } @@ -132,65 +134,6 @@ public class BlockedNumberSearchActivity extends AppCompatActivity public void onAttachFragment(Fragment fragment) { if (fragment instanceof BlockedListSearchFragment) { mSearchFragment = (BlockedListSearchFragment) fragment; - mSearchFragment.setOnPhoneNumberPickerActionListener(this); - } - } - - @Override - public void onPickDataUri(Uri dataUri, int callInitiationType) { - Log.w(TAG, "onPickDataUri unsupported, ignoring."); - } - - @Override - public void onPickPhoneNumber(String phoneNumber, boolean isVideoCall, int callInitiationType) { - blockNumber(phoneNumber); - } - - @Override - public void onShortcutIntentCreated(Intent intent) { - Log.w(TAG, "Unsupported intent has come (" + intent + "). Ignoring."); - } - - @Override - public void onHomeInActionBarSelected() { - } - - private void blockNumber(final String number) { - final String countryIso = GeoUtil.getCurrentCountryIso(BlockedNumberSearchActivity.this); - final IndeterminateProgressDialog progressDialog = - IndeterminateProgressDialog.show(getFragmentManager(), - getString(R.string.checkingNumber, number), null, 500); - final String normalizedNumber = - FilteredNumberAsyncQueryHandler.getNormalizedNumber(number, countryIso); - if (normalizedNumber == null) { - progressDialog.dismiss(); - Toast.makeText( - BlockedNumberSearchActivity.this, getString(R.string.invalidNumber, number), - Toast.LENGTH_SHORT).show(); - } else { - final FilteredNumberAsyncQueryHandler.OnCheckBlockedListener onCheckListener = - new FilteredNumberAsyncQueryHandler.OnCheckBlockedListener() { - @Override - public void onCheckComplete(Integer id) { - progressDialog.dismiss(); - if (id == null) { - final FilterNumberDialogFragment newFragment = - FilterNumberDialogFragment.newInstance(id, normalizedNumber, - number, countryIso, number); - newFragment.setQueryHandler(mFilteredNumberAsyncQueryHandler); - newFragment.setParentView( - findViewById(R.id.search_activity_container)); - newFragment.show(getFragmentManager(), - FilterNumberDialogFragment.BLOCK_DIALOG_FRAGMENT); - } else { - Toast.makeText(BlockedNumberSearchActivity.this, - getString(R.string.alreadyBlocked, number), - Toast.LENGTH_SHORT).show(); - } - } - }; - mFilteredNumberAsyncQueryHandler.startBlockedQuery( - onCheckListener, normalizedNumber, number, countryIso); } } diff --git a/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java b/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java index e9a88c845..1b953875c 100644 --- a/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java +++ b/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java @@ -21,6 +21,7 @@ import android.app.Dialog; import android.app.DialogFragment; import android.content.ContentValues; import android.content.DialogInterface; +import android.content.res.Resources; import android.net.Uri; import android.os.Bundle; import android.support.design.widget.Snackbar; @@ -28,6 +29,8 @@ import android.view.View; import com.android.dialer.R; import com.android.dialer.database.FilteredNumberAsyncQueryHandler; +import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnBlockNumberListener; +import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnUnblockNumberListener; public class FilterNumberDialogFragment extends DialogFragment { public static final String BLOCK_DIALOG_FRAGMENT = "blockUnblockNumberDialog"; @@ -40,6 +43,23 @@ public class FilterNumberDialogFragment extends DialogFragment { private FilteredNumberAsyncQueryHandler mHandler; private View mParentView; + private OnBlockListener mOnBlockListener; + private OnUndoBlockListener mOnUndoBlockListener; + + public interface OnBlockListener { + /** + * Invoked after inserting a blocked number. + * @param uri The uri of the newly created row. + */ + public void onBlockComplete(Uri uri); + } + + public interface OnUndoBlockListener { + /** + * Invoked on undoing the blocking of a number. + */ + public void onUndoBlockComplete(); + } public void setQueryHandler (FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler) { mHandler = filteredNumberAsyncQueryHandler; @@ -49,6 +69,14 @@ public class FilterNumberDialogFragment extends DialogFragment { mParentView = view; } + public void setOnBlockListener(OnBlockListener listener) { + mOnBlockListener = listener; + } + + public void setOnUndoBlockListener(OnUndoBlockListener listener) { + mOnUndoBlockListener = listener; + } + public static FilterNumberDialogFragment newInstance(Integer blockId, String normalizedNumber, String number, String countryIso, String displayNumber) { final FilterNumberDialogFragment fragment = new FilterNumberDialogFragment(); @@ -95,50 +123,62 @@ public class FilterNumberDialogFragment extends DialogFragment { return builder.create(); } - public void blockNumber() { - final String displayNumber = getArguments().getString(ARG_DISPLAY_NUMBER); - final String message = getString(R.string.snackbar_number_blocked, displayNumber); - final String undoMessage = getString(R.string.snackbar_number_unblocked, displayNumber); - final FilteredNumberAsyncQueryHandler.OnUnblockNumberListener undoListener = - new FilteredNumberAsyncQueryHandler.OnUnblockNumberListener() { - @Override - public void onUnblockComplete(int rows, ContentValues values) { - Snackbar.make(mParentView, undoMessage, Snackbar.LENGTH_LONG).show(); - } - }; + private String getBlockedMessage(String displayNumber) { + return getString(R.string.snackbar_number_blocked, displayNumber); + } - mHandler.blockNumber( - new FilteredNumberAsyncQueryHandler.OnBlockNumberListener() { - @Override - public void onBlockComplete(final Uri uri) { - Snackbar.make(mParentView, message, Snackbar.LENGTH_LONG) - .setAction(R.string.block_number_undo, - // Delete the newly created row on 'undo'. - new View.OnClickListener() { - @Override - public void onClick(View view) { - mHandler.unblock(undoListener, uri); - } - }) - .show(); - } - }, getArguments().getString(ARG_NORMALIZED_NUMBER), + private String getUnblockedMessage(String displayNumber) { + return getString(R.string.snackbar_number_unblocked, displayNumber); + } + + private void blockNumber() { + final String displayNumber = getArguments().getString(ARG_DISPLAY_NUMBER); + final String message = getBlockedMessage(displayNumber); + final String undoMessage = getUnblockedMessage(displayNumber); + final OnUnblockNumberListener onUndoListener = new OnUnblockNumberListener() { + @Override + public void onUnblockComplete(int rows, ContentValues values) { + Snackbar.make(mParentView, undoMessage, Snackbar.LENGTH_LONG).show(); + if (mOnUndoBlockListener != null) { + mOnUndoBlockListener.onUndoBlockComplete(); + } + } + }; + final OnBlockNumberListener onBlockNumberListener = new OnBlockNumberListener() { + @Override + public void onBlockComplete(final Uri uri) { + Snackbar.make(mParentView, message, Snackbar.LENGTH_LONG) + .setAction(R.string.block_number_undo, + // Delete the newly created row on 'undo'. + new View.OnClickListener() { + @Override + public void onClick(View view) { + mHandler.unblock(onUndoListener, uri); + } + }) + .show(); + if (mOnBlockListener != null) { + mOnBlockListener.onBlockComplete(uri); + } + } + }; + mHandler.blockNumber(onBlockNumberListener, getArguments().getString(ARG_NORMALIZED_NUMBER), getArguments().getString(ARG_NUMBER), getArguments().getString(ARG_COUNTRY_ISO)); } - public void unblockNumber() { + private void unblockNumber() { final String displayNumber = getArguments().getString(ARG_DISPLAY_NUMBER); - final String message = getString(R.string.snackbar_number_unblocked, displayNumber); - final String undoMessage = getString(R.string.snackbar_number_blocked, displayNumber); - final FilteredNumberAsyncQueryHandler.OnBlockNumberListener undoListener = - new FilteredNumberAsyncQueryHandler.OnBlockNumberListener() { + final String message = getUnblockedMessage(displayNumber); + final String undoMessage = getBlockedMessage(displayNumber); + final OnBlockNumberListener undoListener = + new OnBlockNumberListener() { @Override public void onBlockComplete(final Uri uri) { Snackbar.make(mParentView, undoMessage, Snackbar.LENGTH_LONG).show(); } }; mHandler.unblock( - new FilteredNumberAsyncQueryHandler.OnUnblockNumberListener() { + new OnUnblockNumberListener() { @Override public void onUnblockComplete(int rows, final ContentValues values) { Snackbar.make(mParentView, message, Snackbar.LENGTH_LONG) |