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

Commit f7fc0631 authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by Android (Google) Code Review
Browse files

Merge "Show location permission toggle for location provider" into mnc-dev

parents 711f8a17 acd09293
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -265,7 +265,7 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
    }

    public boolean areRuntimePermissionsGranted() {
        if (LocationUtils.isLocked(mName, mPackageInfo.packageName)) {
        if (LocationUtils.isLocationGroupAndProvider(mName, mPackageInfo.packageName)) {
            return LocationUtils.isLocationEnabled(mContext);
        }
        final int permissionCount = mPermissions.size();
+1 −1
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ public class PermissionStatusReceiver extends BroadcastReceiver {
            int additionalCount = 0;

            for (AppPermissionGroup group : appPermissions.getPermissionGroups()) {
                if (Utils.shouldShowPermission(group)) {
                if (Utils.shouldShowPermission(group, pkg)) {
                    totalCount++;
                    if (group.areRuntimePermissionsGranted()) {
                        grantedCount++;
+2 −2
Original line number Diff line number Diff line
@@ -205,7 +205,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader
        extraPerms.setTitle(R.string.additional_permissions);

        for (AppPermissionGroup group : mAppPermissions.getPermissionGroups()) {
            if (!Utils.shouldShowPermission(group)) {
            if (!Utils.shouldShowPermission(group, mAppPermissions.getPackageInfo().packageName)) {
                continue;
            }

@@ -276,7 +276,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader

        addToggledGroup(group);

        if (LocationUtils.isLocked(group.getName(), group.getApp().packageName)) {
        if (LocationUtils.isLocationGroupAndProvider(group.getName(), group.getApp().packageName)) {
            LocationUtils.showLocationDialog(getContext(), mAppPermissions.getAppLabel());
            return false;
        }
+13 −1
Original line number Diff line number Diff line
@@ -219,6 +219,17 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple
            }

            if (existingPref != null) {
                // If existing preference - only update its state.
                if (app.isPolicyFixed()) {
                    existingPref.setSummary(getString(
                            R.string.permission_summary_enforced_by_policy));
                }
                existingPref.setPersistent(false);
                existingPref.setEnabled(!app.isPolicyFixed());
                if (existingPref instanceof SwitchPreference) {
                    ((SwitchPreference) existingPref)
                            .setChecked(app.areRuntimePermissionsGranted());
                }
                continue;
            }

@@ -316,7 +327,8 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple

        addToggledGroup(app.getPackageName(), app.getPermissionGroup());

        if (LocationUtils.isLocked(mPermissionApps.getGroupName(), app.getPackageName())) {
        if (LocationUtils.isLocationGroupAndProvider(mPermissionApps.getGroupName(),
                app.getPackageName())) {
            LocationUtils.showLocationDialog(getContext(), app.getLabel());
            return false;
        }
+1 −1
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ public class LocationUtils {
                Settings.Secure.LOCATION_MODE_OFF) != Settings.Secure.LOCATION_MODE_OFF;
    }

    public static boolean isLocked(String groupName, String packageName) {
    public static boolean isLocationGroupAndProvider(String groupName, String packageName) {
        return LOCATION_PERMISSION.equals(groupName) && isNetworkLocationProvider(packageName);
    }

Loading