Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 16360c88 authored by Martin Herndl's avatar Martin Herndl Committed by Gerrit Code Review
Browse files

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
parent 45b869a8
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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() {
+6 −1
Original line number Diff line number Diff line
@@ -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;