diff options
author | Andrew Lee <anwlee@google.com> | 2015-10-15 17:54:47 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-10-15 17:54:47 +0000 |
commit | cb71c33b082e9f64d13a472fbd7541b64bea6442 (patch) | |
tree | 929cf9f8cb29f37b502eee6577ab66c2dcc4bb76 /src | |
parent | e7d612f4f55f7de89ffcde58dbfa3082a2b913c4 (diff) | |
parent | 8d0847ca13ca46730756e1d3a3dff3d7d27fd18b (diff) |
am 8d0847ca: Polish call blocking rotation/undo behaviors.
* commit '8d0847ca13ca46730756e1d3a3dff3d7d27fd18b':
Polish call blocking rotation/undo behaviors.
Diffstat (limited to 'src')
7 files changed, 219 insertions, 138 deletions
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java index 696168a8f..654a96fcf 100644 --- a/src/com/android/dialer/CallDetailActivity.java +++ b/src/com/android/dialer/CallDetailActivity.java @@ -71,8 +71,7 @@ import com.android.incallui.Call.LogState; */ public class CallDetailActivity extends AppCompatActivity implements MenuItem.OnMenuItemClickListener, View.OnClickListener, - FilterNumberDialogFragment.OnBlockListener, - FilterNumberDialogFragment.OnUndoBlockListener { + FilterNumberDialogFragment.Callback { private static final String TAG = CallDetailActivity.class.getSimpleName(); /** A long array extra containing ids of call log entries to display. */ @@ -305,16 +304,6 @@ public class CallDetailActivity extends AppCompatActivity } @Override - public void onBlockComplete(Uri uri) { - updateBlockActionItem(); - } - - @Override - public void onUndoBlockComplete() { - updateBlockActionItem(); - } - - @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { TouchPointManager.getInstance().setPoint((int) ev.getRawX(), (int) ev.getRawY()); @@ -406,17 +395,15 @@ public class CallDetailActivity extends AppCompatActivity public void onClick(View view) { switch(view.getId()) { case R.id.call_detail_action_block: - // TODO: Use helper, this code is repeated in several places. - FilterNumberDialogFragment newFragment = - FilterNumberDialogFragment.newInstance( - mBlockedNumberId, null, mNumber, null, mDisplayNumber); - // TODO: Cleanup this listener pattern. This only works correctly for undoing - // blocking, not undoing unblocking. - newFragment.setOnBlockListener(this); - newFragment.setOnUndoBlockListener(this); - newFragment.setParentView(findViewById(R.id.call_detail)); - newFragment.show( - getFragmentManager(), FilterNumberDialogFragment.BLOCK_DIALOG_FRAGMENT); + FilterNumberDialogFragment.show( + mBlockedNumberId, + null /* normalizedNumber */, + mNumber, + null /* countryIso */, + mDisplayNumber, + R.id.call_detail, + getFragmentManager(), + this); break; case R.id.call_detail_action_copy: ClipboardUtils.copyText(mContext, null, mNumber, true); @@ -431,6 +418,16 @@ public class CallDetailActivity extends AppCompatActivity } } + @Override + public void onChangeFilteredNumberSuccess() { + updateBlockActionItem(); + } + + @Override + public void onChangeFilteredNumberUndo() { + updateBlockActionItem(); + } + private void updateBlockActionItem() { if (mDetails == null) { return; diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java index 035317010..7f3a779ea 100644 --- a/src/com/android/dialer/calllog/CallLogAdapter.java +++ b/src/com/android/dialer/calllog/CallLogAdapter.java @@ -47,6 +47,7 @@ import com.android.dialer.contactinfo.ContactInfoCache.OnContactInfoChangedListe import com.android.dialer.contactinfo.NumberWithCountryIso; import com.android.dialer.database.FilteredNumberAsyncQueryHandler; import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener; +import com.android.dialer.filterednumber.FilterNumberDialogFragment; import com.android.dialer.util.PhoneNumberUtil; import com.android.dialer.voicemail.VoicemailPlaybackPresenter; @@ -60,7 +61,8 @@ import java.util.Map; */ public class CallLogAdapter extends GroupingListAdapter implements CallLogGroupBuilder.GroupCreator, - VoicemailPlaybackPresenter.OnVoicemailDeletedListener { + VoicemailPlaybackPresenter.OnVoicemailDeletedListener, + FilterNumberDialogFragment.Callback { /** Interface used to initiate a refresh of the content. */ public interface CallFetcher { @@ -352,7 +354,8 @@ public class CallLogAdapter extends GroupingListAdapter mTelecomCallLogCache, mCallLogListItemHelper, mVoicemailPlaybackPresenter, - mFilteredNumberAsyncQueryHandler); + mFilteredNumberAsyncQueryHandler, + this); viewHolder.callLogEntryView.setTag(viewHolder); viewHolder.callLogEntryView.setAccessibilityDelegate(mAccessibilityDelegate); @@ -627,6 +630,18 @@ public class CallLogAdapter extends GroupingListAdapter } } + @Override + public void onChangeFilteredNumberSuccess() { + mBlockedIdCache.clear(); + notifyDataSetChanged(); + } + + @Override + public void onChangeFilteredNumberUndo() { + mBlockedIdCache.clear(); + notifyDataSetChanged(); + } + /** * Retrieves the day group of the previous call in the call log. Used to determine if the day * group has changed and to trigger display of the day group text. diff --git a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java index b70ea0751..8f2f4ba45 100644 --- a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java +++ b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java @@ -61,7 +61,7 @@ import com.android.dialer.voicemail.VoicemailPlaybackLayout; */ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, MenuItem.OnMenuItemClickListener, - View.OnCreateContextMenuListener { + View.OnCreateContextMenuListener { /** The root view of the call log list item */ public final View rootView; @@ -182,6 +182,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder private final CallLogListItemHelper mCallLogListItemHelper; private final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter; private final FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler; + private final FilterNumberDialogFragment.Callback mFilteredNumberDialogCallback; private final int mPhotoSize; @@ -195,6 +196,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder CallLogListItemHelper callLogListItemHelper, VoicemailPlaybackPresenter voicemailPlaybackPresenter, FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler, + FilterNumberDialogFragment.Callback filteredNumberDialogCallback, View rootView, QuickContactBadge quickContactView, View primaryActionView, @@ -210,6 +212,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder mCallLogListItemHelper = callLogListItemHelper; mVoicemailPlaybackPresenter = voicemailPlaybackPresenter; mFilteredNumberAsyncQueryHandler = filteredNumberAsyncQueryHandler; + mFilteredNumberDialogCallback = filteredNumberDialogCallback; this.rootView = rootView; this.quickContactView = quickContactView; @@ -226,6 +229,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder phoneCallDetailsViews.nameView.setElegantTextHeight(false); phoneCallDetailsViews.callLocationAndDate.setElegantTextHeight(false); + quickContactView.setOverlay(null); quickContactView.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE); primaryActionButtonView.setOnClickListener(this); @@ -240,7 +244,8 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder TelecomCallLogCache telecomCallLogCache, CallLogListItemHelper callLogListItemHelper, VoicemailPlaybackPresenter voicemailPlaybackPresenter, - FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler) { + FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler, + FilterNumberDialogFragment.Callback filteredNumberDialogCallback) { return new CallLogListItemViewHolder( context, @@ -249,6 +254,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder callLogListItemHelper, voicemailPlaybackPresenter, filteredNumberAsyncQueryHandler, + filteredNumberDialogCallback, view, (QuickContactBadge) view.findViewById(R.id.quick_contact_photo), view.findViewById(R.id.primary_action_view), @@ -317,13 +323,15 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.context_menu_block_number: - FilterNumberDialogFragment newFragment = - FilterNumberDialogFragment.newInstance(blockId, info.normalizedNumber, - number, countryIso, displayNumber); - newFragment.setParentView( - ((Activity) mContext).findViewById(R.id.floating_action_button_container)); - newFragment.show(((Activity) mContext).getFragmentManager(), - FilterNumberDialogFragment.BLOCK_DIALOG_FRAGMENT); + FilterNumberDialogFragment.show( + blockId, + info.normalizedNumber, + number, + countryIso, + displayNumber, + R.id.floating_action_button_container, + ((Activity) mContext).getFragmentManager(), + mFilteredNumberDialogCallback); return true; case R.id.context_menu_copy_to_clipboard: ClipboardUtils.copyText(mContext, null, number, true); @@ -542,7 +550,6 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder } public void updatePhoto() { - quickContactView.setOverlay(null); quickContactView.assignContactUri(info.lookupUri); if (blockId != null) { @@ -617,6 +624,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder new CallLogListItemHelper(phoneCallDetailsHelper, resources, telecomCallLogCache), null /* voicemailPlaybackPresenter */, null /* filteredNumberAsyncQueryHandler */, + null /* filteredNumberDialogCallback */, new View(context), new QuickContactBadge(context), new View(context), diff --git a/src/com/android/dialer/filterednumber/BlockedNumberAdapter.java b/src/com/android/dialer/filterednumber/BlockedNumberAdapter.java index ad61a32b6..1f5ecd683 100644 --- a/src/com/android/dialer/filterednumber/BlockedNumberAdapter.java +++ b/src/com/android/dialer/filterednumber/BlockedNumberAdapter.java @@ -81,13 +81,15 @@ public class BlockedNumberAdapter extends SimpleCursorAdapter { deleteNumber.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - FilterNumberDialogFragment newFragment = - FilterNumberDialogFragment.newInstance(id, normalizedNumber, number, - countryIso, displayNumber); - newFragment.setParentView( - ((Activity) mContext).findViewById(R.id.blocked_number_fragment)); - newFragment.show(((Activity) mContext).getFragmentManager(), - FilterNumberDialogFragment.BLOCK_DIALOG_FRAGMENT); + FilterNumberDialogFragment.show( + id, + normalizedNumber, + number, + countryIso, + displayNumber, + R.id.blocked_number_fragment, + ((Activity) mContext).getFragmentManager(), + null /* callback */); } }); diff --git a/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java b/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java index 69039c81e..a1260eebf 100644 --- a/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java +++ b/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java @@ -19,6 +19,7 @@ package com.android.dialer.filterednumber; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; +import android.app.FragmentManager; import android.content.ContentValues; import android.content.DialogInterface; import android.content.res.Resources; @@ -33,53 +34,65 @@ import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnBlockNumber import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnUnblockNumberListener; public class FilterNumberDialogFragment extends DialogFragment { - public static final String BLOCK_DIALOG_FRAGMENT = "blockUnblockNumberDialog"; + + /** + * Use a callback interface to update UI after success/undo. Favor this approach over other + * more standard paradigms because of the variety of scenarios in which the DialogFragment + * can be invoked (by an Activity, by a fragment, by an adapter, by an adapter list item). + * Because of this, we do NOT support retaining state on rotation, and will dismiss the dialog + * upon rotation instead. + */ + public interface Callback { + public void onChangeFilteredNumberSuccess(); + public void onChangeFilteredNumberUndo(); + } + + private static final String BLOCK_DIALOG_FRAGMENT = "blockUnblockNumberDialog"; private static final String ARG_BLOCK_ID = "argBlockId"; private static final String ARG_NORMALIZED_NUMBER = "argNormalizedNumber"; private static final String ARG_NUMBER = "argNumber"; private static final String ARG_COUNTRY_ISO = "argCountryIso"; private static final String ARG_DISPLAY_NUMBER = "argDisplayNumber"; + private static final String ARG_PARENT_VIEW_ID = "parentViewId"; + + private String mDisplayNumber; 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(); + private Callback mCallback; + + public static void show( + Integer blockId, + String normalizedNumber, + String number, + String countryIso, + String displayNumber, + Integer parentViewId, + FragmentManager fragmentManager, + Callback callback) { + final FilterNumberDialogFragment newFragment = FilterNumberDialogFragment.newInstance( + blockId, normalizedNumber, number, countryIso, displayNumber, parentViewId); + + newFragment.setCallback(callback); + newFragment.show(fragmentManager, FilterNumberDialogFragment.BLOCK_DIALOG_FRAGMENT); } - public void setParentView(View view) { - 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) { + private static FilterNumberDialogFragment newInstance( + Integer blockId, + String normalizedNumber, + String number, + String countryIso, + String displayNumber, + Integer parentViewId) { final FilterNumberDialogFragment fragment = new FilterNumberDialogFragment(); final Bundle args = new Bundle(); if (blockId != null) { args.putInt(ARG_BLOCK_ID, blockId.intValue()); } + if (parentViewId != null) { + args.putInt(ARG_PARENT_VIEW_ID, parentViewId.intValue()); + } args.putString(ARG_NORMALIZED_NUMBER, normalizedNumber); args.putString(ARG_NUMBER, number); args.putString(ARG_COUNTRY_ISO, countryIso); @@ -92,17 +105,18 @@ public class FilterNumberDialogFragment extends DialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { super.onCreateDialog(savedInstanceState); final boolean isBlocked = getArguments().containsKey(ARG_BLOCK_ID); - final String displayNumber = getArguments().getString(ARG_DISPLAY_NUMBER); + mDisplayNumber = getArguments().getString(ARG_DISPLAY_NUMBER); mHandler = new FilteredNumberAsyncQueryHandler(getContext().getContentResolver()); + mParentView = getActivity().findViewById(getArguments().getInt(ARG_PARENT_VIEW_ID)); String message; String okText; if (isBlocked) { - message = getString(R.string.unblockNumberConfirmation, displayNumber); + message = getString(R.string.unblockNumberConfirmation, mDisplayNumber); okText = getString(R.string.unblockNumberOk); } else { - message = getString(R.string.blockNumberConfirmation, displayNumber); + message = getString(R.string.blockNumberConfirmation, mDisplayNumber); okText = getString(R.string.blockNumberOk); } @@ -122,80 +136,101 @@ public class FilterNumberDialogFragment extends DialogFragment { } @Override - public void onDestroy() { - this.dismissAllowingStateLoss(); - super.onDestroy(); + public void onPause() { + // Dismiss on rotation. + dismiss(); + mCallback = null; + + super.onPause(); + } + + public void setCallback(Callback callback) { + mCallback = callback; } - private String getBlockedMessage(String displayNumber) { - return getString(R.string.snackbar_number_blocked, displayNumber); + private String getBlockedMessage() { + return getString(R.string.snackbar_number_blocked, mDisplayNumber); } - private String getUnblockedMessage(String displayNumber) { - return getString(R.string.snackbar_number_unblocked, displayNumber); + private String getUnblockedMessage() { + return getString(R.string.snackbar_number_unblocked, mDisplayNumber); } private void blockNumber() { - final String displayNumber = getArguments().getString(ARG_DISPLAY_NUMBER); - final String message = getBlockedMessage(displayNumber); - final String undoMessage = getUnblockedMessage(displayNumber); + final String message = getBlockedMessage(); + final String undoMessage = getUnblockedMessage(); + 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(); + if (mCallback != null) { + mCallback.onChangeFilteredNumberUndo(); } } }; + final OnBlockNumberListener onBlockNumberListener = new OnBlockNumberListener() { @Override public void onBlockComplete(final Uri uri) { + final View.OnClickListener undoListener = new View.OnClickListener() { + @Override + public void onClick(View view) { + // Delete the newly created row on 'undo'. + mHandler.unblock(onUndoListener, 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); - } - }) + .setAction(R.string.block_number_undo, undoListener) .show(); - if (mOnBlockListener != null) { - mOnBlockListener.onBlockComplete(uri); + + if (mCallback != null) { + mCallback.onChangeFilteredNumberSuccess(); } } }; - mHandler.blockNumber(onBlockNumberListener, getArguments().getString(ARG_NORMALIZED_NUMBER), - getArguments().getString(ARG_NUMBER), getArguments().getString(ARG_COUNTRY_ISO)); + + mHandler.blockNumber( + onBlockNumberListener, + getArguments().getString(ARG_NORMALIZED_NUMBER), + getArguments().getString(ARG_NUMBER), + getArguments().getString(ARG_COUNTRY_ISO)); } private void unblockNumber() { - final String displayNumber = getArguments().getString(ARG_DISPLAY_NUMBER); - final String message = getUnblockedMessage(displayNumber); - final String undoMessage = getBlockedMessage(displayNumber); - final OnBlockNumberListener undoListener = - new OnBlockNumberListener() { + final String message = getUnblockedMessage(); + final String undoMessage = getBlockedMessage(); + + final OnBlockNumberListener onUndoListener = new OnBlockNumberListener() { + @Override + public void onBlockComplete(final Uri uri) { + Snackbar.make(mParentView, undoMessage, Snackbar.LENGTH_LONG).show(); + if (mCallback != null) { + mCallback.onChangeFilteredNumberUndo(); + } + } + }; + + mHandler.unblock(new OnUnblockNumberListener() { + @Override + public void onUnblockComplete(int rows, final ContentValues values) { + final View.OnClickListener undoListener = new View.OnClickListener() { @Override - public void onBlockComplete(final Uri uri) { - Snackbar.make(mParentView, undoMessage, Snackbar.LENGTH_LONG).show(); + public void onClick(View view) { + // Re-insert the row on 'undo', with a new ID. + mHandler.blockNumber(onUndoListener, values); } }; - mHandler.unblock( - new OnUnblockNumberListener() { - @Override - public void onUnblockComplete(int rows, final ContentValues values) { - Snackbar.make(mParentView, message, Snackbar.LENGTH_LONG) - .setAction(R.string.block_number_undo, - new View.OnClickListener() { - // Re-insert the row on 'undo', with a new ID. - @Override - public void onClick(View view) { - mHandler.blockNumber(undoListener, values); - } - }) - .show(); - } - }, getArguments().getInt(ARG_BLOCK_ID)); + + Snackbar.make(mParentView, message, Snackbar.LENGTH_LONG) + .setAction(R.string.block_number_undo, undoListener) + .show(); + + if (mCallback != null) { + mCallback.onChangeFilteredNumberSuccess(); + } + } + }, getArguments().getInt(ARG_BLOCK_ID)); } } diff --git a/src/com/android/dialer/filterednumber/ManageBlockedNumbersActivity.java b/src/com/android/dialer/filterednumber/ManageBlockedNumbersActivity.java index 356c55cee..bb194be69 100644 --- a/src/com/android/dialer/filterednumber/ManageBlockedNumbersActivity.java +++ b/src/com/android/dialer/filterednumber/ManageBlockedNumbersActivity.java @@ -104,7 +104,7 @@ public class ManageBlockedNumbersActivity extends AppCompatActivity showManagementUi(); } - private void showManagementUi() { + public void showManagementUi() { mIsShowingManagementUi = true; showManagementUiActionBar(); diff --git a/src/com/android/dialer/list/BlockedListSearchFragment.java b/src/com/android/dialer/list/BlockedListSearchFragment.java index eef24afb1..ae64057da 100644 --- a/src/com/android/dialer/list/BlockedListSearchFragment.java +++ b/src/com/android/dialer/list/BlockedListSearchFragment.java @@ -32,8 +32,10 @@ import com.android.dialer.R; import com.android.dialer.database.FilteredNumberAsyncQueryHandler; import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener; import com.android.dialer.filterednumber.FilterNumberDialogFragment; +import com.android.dialer.filterednumber.ManageBlockedNumbersActivity; -public class BlockedListSearchFragment extends RegularSearchFragment { +public class BlockedListSearchFragment extends RegularSearchFragment + implements FilterNumberDialogFragment.Callback { private static final String TAG = BlockedListSearchFragment.class.getSimpleName(); private FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler; @@ -45,7 +47,6 @@ public class BlockedListSearchFragment extends RegularSearchFragment { getContext().getContentResolver()); } - @Override protected ContactEntryListAdapter createListAdapter() { BlockedListSearchAdapter adapter = new BlockedListSearchAdapter(getActivity()); @@ -79,9 +80,9 @@ public class BlockedListSearchFragment extends RegularSearchFragment { } } - // Prevent SearchFragment.onItemClicked from being called. @Override protected void onItemClick(int position, long id) { + // Prevent SearchFragment.onItemClicked from being called. } private void blockNumber(final String number) { @@ -97,12 +98,15 @@ public class BlockedListSearchFragment extends RegularSearchFragment { @Override public void onCheckComplete(Integer id) { if (id == null) { - final FilterNumberDialogFragment newFragment = FilterNumberDialogFragment - .newInstance(id, normalizedNumber, number, countryIso, number); - newFragment.setParentView( - getActivity().findViewById(R.id.blocked_numbers_activity_container)); - newFragment.show( - getFragmentManager(), FilterNumberDialogFragment.BLOCK_DIALOG_FRAGMENT); + FilterNumberDialogFragment.show( + id, + normalizedNumber, + number, + countryIso, + number, + R.id.blocked_numbers_activity_container, + getFragmentManager(), + null /* callback */); } else { Toast.makeText(getContext(), getString(R.string.alreadyBlocked, number), Toast.LENGTH_SHORT).show(); @@ -113,6 +117,21 @@ public class BlockedListSearchFragment extends RegularSearchFragment { onCheckListener, normalizedNumber, number, countryIso); } + @Override + public void onChangeFilteredNumberSuccess() { + ManageBlockedNumbersActivity activity = (ManageBlockedNumbersActivity) getActivity(); + if (activity == null) { + return; + } + + activity.showManagementUi(); + } + + @Override + public void onChangeFilteredNumberUndo() { + getAdapter().notifyDataSetChanged(); + } + private void blockContactNumber( final BlockedListSearchAdapter adapter, final ContactListItemView view, @@ -131,10 +150,15 @@ public class BlockedListSearchFragment extends RegularSearchFragment { Toast.LENGTH_SHORT).show(); return; } - final FilterNumberDialogFragment newFragment = FilterNumberDialogFragment - .newInstance(blockId, normalizedNumber, number, countryIso, number); - newFragment.setParentView( - getActivity().findViewById(R.id.blocked_numbers_activity_container)); - newFragment.show(getFragmentManager(), FilterNumberDialogFragment.BLOCK_DIALOG_FRAGMENT); + + FilterNumberDialogFragment.show( + blockId, + normalizedNumber, + number, + countryIso, + number, + R.id.blocked_numbers_activity_container, + getFragmentManager(), + this); } } |