diff options
| author | Martin Herndl <martin.herndl@gmail.com> | 2015-12-05 16:01:00 +0100 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2015-12-08 00:06:32 -0800 |
| commit | 16360c8802a8ce083313eb8596f1faf360c45ff3 (patch) | |
| tree | 319d328f1ac8f19bc636658630504fe350d71e19 /src | |
| parent | 45b869a8627f2af1ac00037bf7f09d662fcee365 (diff) | |
| download | packages_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.java | 8 | ||||
| -rw-r--r-- | src/com/android/dialer/lookup/LookupProvider.java | 7 |
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; |
