summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Herndl <martin.herndl@gmail.com>2015-12-05 16:01:00 +0100
committerGerrit Code Review <gerrit@cyanogenmod.org>2015-12-08 00:06:32 -0800
commit16360c8802a8ce083313eb8596f1faf360c45ff3 (patch)
tree319d328f1ac8f19bc636658630504fe350d71e19 /src
parent45b869a8627f2af1ac00037bf7f09d662fcee365 (diff)
downloadpackages_apps_Dialer-16360c8802a8ce083313eb8596f1faf360c45ff3.tar.gz
packages_apps_Dialer-16360c8802a8ce083313eb8596f1faf360c45ff3.tar.bz2
packages_apps_Dialer-16360c8802a8ce083313eb8596f1faf360c45ff3.zip
Handle lookup permissions at runtime
This adds simple runtime permission requesting into the search fragment and debug info to the lookup provider. Before it was simply failing silently with an unrelated exception message. Change-Id: I648da9e11ea75cfdaed855467b6a490d82e53777
Diffstat (limited to 'src')
-rw-r--r--src/com/android/dialer/list/RegularSearchFragment.java8
-rw-r--r--src/com/android/dialer/lookup/LookupProvider.java7
2 files changed, 14 insertions, 1 deletions
diff --git a/src/com/android/dialer/list/RegularSearchFragment.java b/src/com/android/dialer/list/RegularSearchFragment.java
index 902797462..069874ee3 100644
--- a/src/com/android/dialer/list/RegularSearchFragment.java
+++ b/src/com/android/dialer/list/RegularSearchFragment.java
@@ -31,6 +31,7 @@ import com.android.dialerbind.ObjectFactory;
import com.android.dialer.R;
import com.android.dialer.lookup.LookupCache;
+import com.android.dialer.lookup.LookupSettings;
import com.android.dialer.service.CachedNumberLookupService;
import com.android.dialer.widget.EmptyContentView;
import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
@@ -39,6 +40,7 @@ public class RegularSearchFragment extends SearchFragment
implements OnEmptyViewActionButtonClickedListener {
private static final int READ_CONTACTS_PERMISSION_REQUEST_CODE = 1;
+ private static final int ACCESS_FINE_LOCATION_PERMISSION_REQUEST_CODE = 2;
private static final int SEARCH_DIRECTORY_RESULT_LIMIT = 5;
@@ -53,6 +55,12 @@ public class RegularSearchFragment extends SearchFragment
public void onStart() {
super.onStart();
AnalyticsUtil.sendScreenView(this);
+
+ if (LookupSettings.isForwardLookupEnabled(getActivity())
+ || LookupSettings.isPeopleLookupEnabled(getActivity())) {
+ requestPermissions(new String[] {ACCESS_FINE_LOCATION},
+ ACCESS_FINE_LOCATION_PERMISSION_REQUEST_CODE);
+ }
}
public void configureDirectorySearch() {
diff --git a/src/com/android/dialer/lookup/LookupProvider.java b/src/com/android/dialer/lookup/LookupProvider.java
index 4906d3232..a00915461 100644
--- a/src/com/android/dialer/lookup/LookupProvider.java
+++ b/src/com/android/dialer/lookup/LookupProvider.java
@@ -17,6 +17,7 @@
package com.android.dialer.lookup;
import com.android.contacts.common.list.PhoneNumberListAdapter.PhoneQuery;
+import com.android.contacts.common.util.PermissionsUtil;
import com.android.dialer.calllog.ContactInfo;
import com.android.dialer.R;
@@ -132,7 +133,11 @@ public class LookupProvider extends ContentProvider {
switch (match) {
case NEARBY:
case PEOPLE:
- Context context = getContext();
+ if (!PermissionsUtil.hasLocationPermissions(getContext())) {
+ Log.v(TAG, "Location permission is missing, ignoring query.");
+ return null;
+ }
+
if (!isLocationEnabled()) {
Log.v(TAG, "Location settings is disabled, ignoring query.");
return null;