diff options
| -rw-r--r-- | src/com/android/dialer/lookup/LookupProvider.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/com/android/dialer/lookup/LookupProvider.java b/src/com/android/dialer/lookup/LookupProvider.java index a00915461..97a7bffab 100644 --- a/src/com/android/dialer/lookup/LookupProvider.java +++ b/src/com/android/dialer/lookup/LookupProvider.java @@ -128,27 +128,27 @@ public class LookupProvider extends ContentProvider { String[] selectionArgs, String sortOrder) { if (DEBUG) Log.v(TAG, "query: " + uri); + Location lastLocation = null; final int match = sURIMatcher.match(uri); switch (match) { case NEARBY: - case PEOPLE: 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; } - - final Location lastLocation = getLastLocation(); + lastLocation = getLastLocation(); if (lastLocation == null) { Log.v(TAG, "No location available, ignoring query."); return null; } + // fall through to the actual query + case PEOPLE: final String filter = Uri.encode(uri.getLastPathSegment()); String limit = uri.getQueryParameter(ContactsContract.LIMIT_PARAM_KEY); @@ -162,13 +162,14 @@ public class LookupProvider extends ContentProvider { Log.e(TAG, "query: invalid limit parameter: '" + limit + "'"); } + final Location finalLastLocation = lastLocation; final int finalMaxResults = maxResults; return execute(new Callable<Cursor>() { @Override public Cursor call() { return handleFilter(match, projection, filter, - finalMaxResults, lastLocation); + finalMaxResults, finalLastLocation); } }, "FilterThread"); } |
