Merge "Show icons for call detail actions." into ub-contactsdialer-a-dev
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 4bfd565..d44e8e7 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -110,7 +110,7 @@
         ListsFragment.HostInterface,
         SpeedDialFragment.HostInterface,
         SearchFragment.HostInterface,
-        RegularSearchFragment.HostInterface,
+        RegularSearchFragment.CapabilityChecker,
         OnDragDropListener,
         OnPhoneNumberPickerActionListener,
         PopupMenu.OnMenuItemClickListener,
@@ -607,6 +607,7 @@
         } else if (fragment instanceof SearchFragment) {
             mRegularSearchFragment = (RegularSearchFragment) fragment;
             mRegularSearchFragment.setOnPhoneNumberPickerActionListener(this);
+            mRegularSearchFragment.setCapabilityChecker(this);
         } else if (fragment instanceof ListsFragment) {
             mListsFragment = (ListsFragment) fragment;
             mListsFragment.addOnPageChangeListener(this);
diff --git a/src/com/android/dialer/list/RegularSearchFragment.java b/src/com/android/dialer/list/RegularSearchFragment.java
index 0b87033..33ce95f 100644
--- a/src/com/android/dialer/list/RegularSearchFragment.java
+++ b/src/com/android/dialer/list/RegularSearchFragment.java
@@ -29,6 +29,7 @@
 import com.android.contacts.commonbind.analytics.AnalyticsUtil;
 import com.android.dialerbind.ObjectFactory;
 import com.android.incallui.Call.LogState;
+
 import com.android.dialer.R;
 import com.android.dialer.service.CachedNumberLookupService;
 import com.android.dialer.widget.EmptyContentView;
@@ -44,11 +45,12 @@
     private static final CachedNumberLookupService mCachedNumberLookupService =
         ObjectFactory.newCachedNumberLookupService();
 
-    public interface HostInterface {
+    public interface CapabilityChecker {
         public boolean isNearbyPlacesSearchEnabled();
     }
 
     private String mPermissionToRequest;
+    private CapabilityChecker mCapabilityChecker;
 
     public RegularSearchFragment() {
         configureDirectorySearch();
@@ -60,6 +62,12 @@
         AnalyticsUtil.sendScreenView(this);
     }
 
+    @Override
+    public void onDetach() {
+        mCapabilityChecker = null;
+        super.onDetach();
+    }
+
     public void configureDirectorySearch() {
         setDirectorySearchEnabled(true);
         setDirectoryResultLimit(SEARCH_DIRECTORY_RESULT_LIMIT);
@@ -102,7 +110,7 @@
                 descriptionResource = R.string.permission_no_search;
                 listener = this;
                 mPermissionToRequest = READ_CONTACTS;
-            } else if (((HostInterface) getActivity()).isNearbyPlacesSearchEnabled()
+            } else if (isNearbyPlacesSearchEnabled()
                     && !PermissionsUtil.hasPermission(getActivity(), ACCESS_FINE_LOCATION)) {
                 imageResource = R.drawable.empty_contacts;
                 actionLabelResource = R.string.permission_single_turn_on;
@@ -156,4 +164,15 @@
         return isRemoteDirectory ? LogState.INITIATION_REMOTE_DIRECTORY
                 : LogState.INITIATION_REGULAR_SEARCH;
     }
+
+    public void setCapabilityChecker(CapabilityChecker capabilityChecker) {
+        mCapabilityChecker = capabilityChecker;
+    }
+
+    private boolean isNearbyPlacesSearchEnabled() {
+        if (mCapabilityChecker != null) {
+            return mCapabilityChecker.isNearbyPlacesSearchEnabled();
+        }
+        return false;
+    }
 }