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

Commit 5d2d9baa authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by Android Git Automerger
Browse files

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

* commit 'f7fc0631':
  Show location permission toggle for location provider
parents 954f5f2e f7fc0631
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