summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorke Lee <yorkelee@google.com>2015-10-09 11:37:34 -0700
committerYorke Lee <yorkelee@google.com>2015-10-09 11:37:34 -0700
commit46959e92623e635967fb264ab72b77f93e86002c (patch)
tree37c56791dab5166d5729e236fed7d153853a865b
parentc7f8899a3ea60fb2c1059b79c18d2b4bc2511c6b (diff)
Fix crash in BlockedNumberSearchActivity
Don't require RegularSearchFragment's parent activity to implement CapabilityChecker interface. In the context of the BlockedNumberSearchActivity this functionality is not needed. Bug: 24804134 Change-Id: I848ae66c6f8afc6e60b19bc28e933ae1e2f59893
-rw-r--r--src/com/android/dialer/DialtactsActivity.java3
-rw-r--r--src/com/android/dialer/list/RegularSearchFragment.java23
2 files changed, 23 insertions, 3 deletions
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 4bfd56594..d44e8e7cf 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -110,7 +110,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
ListsFragment.HostInterface,
SpeedDialFragment.HostInterface,
SearchFragment.HostInterface,
- RegularSearchFragment.HostInterface,
+ RegularSearchFragment.CapabilityChecker,
OnDragDropListener,
OnPhoneNumberPickerActionListener,
PopupMenu.OnMenuItemClickListener,
@@ -607,6 +607,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
} 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 0b8703399..33ce95f78 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.common.util.PermissionsUtil;
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 @@ public class RegularSearchFragment extends SearchFragment
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 @@ public class RegularSearchFragment extends SearchFragment
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 @@ public class RegularSearchFragment extends SearchFragment
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 @@ public class RegularSearchFragment extends SearchFragment
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;
+ }
}