Don't set FilteredNumberAsyncQueryHandler.

Rather than creating single instances and setting them or passing
them around, create them when we need them. This won't happen too
often so instantiating the objects shouldn't be too much of a
burden on the system.

Instances of AsyncQueryHandler all end up running tasks off
the same thread, so there should not be a negative consequence of
spinning off more threads.

Bug: 24638328
Change-Id: If53ce4f1fd83736c330c1ff02946ed45da575796
diff --git a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
index b90d285..30aaee0 100644
--- a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
+++ b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
@@ -316,7 +316,6 @@
                 FilterNumberDialogFragment newFragment =
                         FilterNumberDialogFragment.newInstance(blockId, info.normalizedNumber,
                                 number, countryIso, displayNumber);
-                newFragment.setQueryHandler(mFilteredNumberAsyncQueryHandler);
                 newFragment.setParentView(
                         ((Activity) mContext).findViewById(R.id.floating_action_button_container));
                 newFragment.show(((Activity) mContext).getFragmentManager(),
diff --git a/src/com/android/dialer/filterednumber/BlockedNumberAdapter.java b/src/com/android/dialer/filterednumber/BlockedNumberAdapter.java
index 5041ed8..ad61a32 100644
--- a/src/com/android/dialer/filterednumber/BlockedNumberAdapter.java
+++ b/src/com/android/dialer/filterednumber/BlockedNumberAdapter.java
@@ -35,7 +35,6 @@
 import com.android.dialer.R;
 import com.android.dialer.calllog.ContactInfo;
 import com.android.dialer.calllog.ContactInfoHelper;
-import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
 import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
 import com.android.dialer.util.PhoneNumberUtil;
 
@@ -46,16 +45,13 @@
     private Resources mResources;
     private BidiFormatter mBidiFormatter = BidiFormatter.getInstance();
     private ContactPhotoManager mContactPhotoManager;
-    private FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
 
-    public BlockedNumberAdapter(Context context,
-                                FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler) {
+    public BlockedNumberAdapter(Context context) {
         super(context, R.layout.blocked_number_item, null, new String[]{}, new int[]{}, 0);
         mContext = context;
         mContactInfoHelper = new ContactInfoHelper(context, GeoUtil.getCurrentCountryIso(context));
         mContactPhotoManager = ContactPhotoManager.getInstance(context);
         mResources = context.getResources();
-        mFilteredNumberAsyncQueryHandler = filteredNumberAsyncQueryHandler;
     }
 
     @Override
@@ -88,7 +84,6 @@
                 FilterNumberDialogFragment newFragment =
                         FilterNumberDialogFragment.newInstance(id, normalizedNumber, number,
                                 countryIso, displayNumber);
-                newFragment.setQueryHandler(mFilteredNumberAsyncQueryHandler);
                 newFragment.setParentView(
                         ((Activity) mContext).findViewById(R.id.blocked_number_fragment));
                 newFragment.show(((Activity) mContext).getFragmentManager(),
diff --git a/src/com/android/dialer/filterednumber/BlockedNumberFragment.java b/src/com/android/dialer/filterednumber/BlockedNumberFragment.java
index de32fd6..79e5861 100644
--- a/src/com/android/dialer/filterednumber/BlockedNumberFragment.java
+++ b/src/com/android/dialer/filterednumber/BlockedNumberFragment.java
@@ -34,17 +34,14 @@
         LoaderManager.LoaderCallbacks<Cursor>, View.OnClickListener {
 
     private BlockedNumberAdapter mAdapter;
-    private FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
 
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
         LayoutInflater inflater = LayoutInflater.from(getContext());
         getListView().addHeaderView(inflater.inflate(R.layout.blocked_number_header, null));
-        mFilteredNumberAsyncQueryHandler =
-                new FilteredNumberAsyncQueryHandler(getActivity().getContentResolver());
         if (mAdapter == null) {
-            mAdapter = new BlockedNumberAdapter(getContext(), mFilteredNumberAsyncQueryHandler);
+            mAdapter = new BlockedNumberAdapter(getContext());
         }
         setListAdapter(mAdapter);
         getActivity().findViewById(R.id.add_number_button).setOnClickListener(this);
@@ -100,4 +97,4 @@
     public void onClick(final View v) {
         startActivity(new Intent(getActivity(), BlockedNumberSearchActivity.class));
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/dialer/filterednumber/BlockedNumberSearchActivity.java b/src/com/android/dialer/filterednumber/BlockedNumberSearchActivity.java
index 11c0ac4..cfa404f 100644
--- a/src/com/android/dialer/filterednumber/BlockedNumberSearchActivity.java
+++ b/src/com/android/dialer/filterednumber/BlockedNumberSearchActivity.java
@@ -126,7 +126,6 @@
         fragment.setHasOptionsMenu(false);
         fragment.setShowEmptyListForNullQuery(true);
         fragment.setDirectorySearchEnabled(false);
-        fragment.setFilteredNumberAsyncQueryHandler(mFilteredNumberAsyncQueryHandler);
         transaction.commit();
     }
 
@@ -161,4 +160,4 @@
     public int getActionBarHeight() {
         return getResources().getDimensionPixelSize(R.dimen.action_bar_height_large);
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java b/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java
index 1b95387..ce2a0da 100644
--- a/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java
+++ b/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java
@@ -61,10 +61,6 @@
         public void onUndoBlockComplete();
     }
 
-    public void setQueryHandler (FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler) {
-        mHandler = filteredNumberAsyncQueryHandler;
-    }
-
     public void setParentView(View view) {
         mParentView = view;
     }
@@ -98,6 +94,8 @@
         final boolean isBlocked = getArguments().containsKey(ARG_BLOCK_ID);
         final String displayNumber = getArguments().getString(ARG_DISPLAY_NUMBER);
 
+        mHandler = new FilteredNumberAsyncQueryHandler(getContext().getContentResolver());
+
         String message;
         String okText;
         if (isBlocked) {
@@ -194,4 +192,4 @@
                     }
                 }, getArguments().getInt(ARG_BLOCK_ID));
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/dialer/list/BlockedListSearchAdapter.java b/src/com/android/dialer/list/BlockedListSearchAdapter.java
index 7ae24e4..8f7971f 100644
--- a/src/com/android/dialer/list/BlockedListSearchAdapter.java
+++ b/src/com/android/dialer/list/BlockedListSearchAdapter.java
@@ -39,10 +39,9 @@
         mResources = context.getResources();
         disableAllShortcuts();
         setShortcutEnabled(SHORTCUT_BLOCK_NUMBER, true);
-    }
 
-    public void setFilteredNumberAsyncQueryHandler(FilteredNumberAsyncQueryHandler handler) {
-        mFilteredNumberAsyncQueryHandler = handler;
+        mFilteredNumberAsyncQueryHandler =
+                new FilteredNumberAsyncQueryHandler(context.getContentResolver());
     }
 
     @Override
@@ -86,4 +85,4 @@
         mFilteredNumberAsyncQueryHandler.startBlockedQuery(
                 onCheckListener, normalizedNumber, number, countryIso);
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/dialer/list/BlockedListSearchFragment.java b/src/com/android/dialer/list/BlockedListSearchFragment.java
index 7494372..6750812 100644
--- a/src/com/android/dialer/list/BlockedListSearchFragment.java
+++ b/src/com/android/dialer/list/BlockedListSearchFragment.java
@@ -18,6 +18,7 @@
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.net.Uri;
+import android.os.Bundle;
 import android.util.Log;
 import android.view.View;
 import android.widget.AdapterView;
@@ -37,16 +38,19 @@
 
     private FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
 
-    public void setFilteredNumberAsyncQueryHandler(FilteredNumberAsyncQueryHandler handler) {
-        mFilteredNumberAsyncQueryHandler = handler;
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mFilteredNumberAsyncQueryHandler = new FilteredNumberAsyncQueryHandler(
+                getContext().getContentResolver());
     }
 
+
     @Override
     protected ContactEntryListAdapter createListAdapter() {
         BlockedListSearchAdapter adapter = new BlockedListSearchAdapter(getActivity());
         adapter.setDisplayPhotos(true);
         adapter.setUseCallableUri(usesCallableUri());
-        adapter.setFilteredNumberAsyncQueryHandler(mFilteredNumberAsyncQueryHandler);
         return adapter;
     }
 
@@ -100,7 +104,6 @@
                 if (id == null) {
                     final FilterNumberDialogFragment newFragment = FilterNumberDialogFragment
                             .newInstance(id, normalizedNumber, number, countryIso, number);
-                    newFragment.setQueryHandler(mFilteredNumberAsyncQueryHandler);
                     newFragment.setParentView(
                             getActivity().findViewById(R.id.search_activity_container));
                     newFragment.show(
@@ -133,7 +136,6 @@
         }
         final FilterNumberDialogFragment newFragment = FilterNumberDialogFragment
                 .newInstance(blockId, normalizedNumber, number, countryIso, number);
-        newFragment.setQueryHandler(mFilteredNumberAsyncQueryHandler);
         newFragment.setParentView(getActivity().findViewById(R.id.search_activity_container));
         newFragment.setOnUndoBlockListener(new FilterNumberDialogFragment.OnUndoBlockListener() {
             @Override