summaryrefslogtreecommitdiff
path: root/src/com/android/dialer/filterednumber
diff options
context:
space:
mode:
authorAnne Rong <annerong@google.com>2015-09-30 17:42:14 -0700
committerAnne Rong <annerong@google.com>2015-10-02 16:39:49 -0700
commit113346fccb1eefd1e97deaaaee7bb3f3763f2540 (patch)
treed3718acdc652f589a90a4713483838547761ec5f /src/com/android/dialer/filterednumber
parent64dffce08a6e63755a0863f9c7975421af572c24 (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.java67
-rw-r--r--src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java106
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)