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

Commit a555d85b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Switch location utils over to new API."

parents c4236afa 119f52b5
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -46,7 +46,6 @@ import static com.android.packageinstaller.Constants.LOCATION_ACCESS_CHECK_NOTIF
import static com.android.packageinstaller.Constants.PERIODIC_LOCATION_ACCESS_CHECK_JOB_ID;
import static com.android.packageinstaller.Constants.PERMISSION_REMINDER_CHANNEL_ID;
import static com.android.packageinstaller.Constants.PREFERENCES_FILE;
import static com.android.packageinstaller.permission.utils.LocationUtils.isNetworkLocationProvider;
import static com.android.packageinstaller.permission.utils.Utils.OS_PKG;
import static com.android.packageinstaller.permission.utils.Utils.getGroupOfPlatformPermission;
import static com.android.packageinstaller.permission.utils.Utils.getParcelableExtraSafe;
@@ -454,6 +453,8 @@ public class LocationAccessCheck {
        List<UserPackage> pkgsWithLocationAccess = new ArrayList<>();
        List<UserHandle> profiles = mUserManager.getUserProfiles();

        LocationManager lm = mContext.getSystemService(LocationManager.class);

        int numUid = allOps.getUidCount();
        for (int uidNum = 0; uidNum < numUid; uidNum++) {
            AppOpsManager.HistoricalUidOps uidOps = allOps.getUidOpsAt(uidNum);
@@ -463,7 +464,7 @@ public class LocationAccessCheck {
                HistoricalPackageOps ops = uidOps.getPackageOpsAt(pkgNum);

                String pkg = ops.getPackageName();
                if (pkg.equals(OS_PKG) || isNetworkLocationProvider(mContext, pkg)) {
                if (pkg.equals(OS_PKG) || lm.isProviderPackage(pkg)) {
                    continue;
                }

+3 −22
Original line number Diff line number Diff line
@@ -65,18 +65,17 @@ public class LocationUtils {
                        + "android.settings.LOCATION_CONTROLLER_EXTRA_PACKAGE_SETTINGS");
        }
    }

    public static boolean isLocationEnabled(Context context) {
        return Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE,
                Settings.Secure.LOCATION_MODE_OFF) != Settings.Secure.LOCATION_MODE_OFF;
        return context.getSystemService(LocationManager.class).isLocationEnabled();
    }

    public static boolean isLocationGroupAndProvider(Context context, String groupName,
            String packageName) {
        return LOCATION_PERMISSION.equals(groupName)
                && isNetworkLocationProvider(context, packageName);
                && context.getSystemService(LocationManager.class).isProviderPackage(packageName);
    }

    /** Returns whether the given package name is a location history provider. */
    public static boolean isLocationGroupAndControllerExtraPackage(@NonNull Context context,
            @NonNull String groupName, @NonNull String packageName) {
        return LOCATION_PERMISSION.equals(groupName)
@@ -84,24 +83,6 @@ public class LocationUtils {
                        .getLocationControllerExtraPackage());
    }

    /**
     * Check if a package is the location provider.
     *
     * @param context used to resolve managers
     * @param packageName the potential location provider
     *
     * @return {@code true} iff the package is the location provider
     */
    public static boolean isNetworkLocationProvider(Context context, String packageName) {
        try {
            return packageName.equals(context.getSystemService(LocationManager.class)
                    .getNetworkProviderPackage());
        } catch (Exception e) {
            return false;
        }
    }

    /** Returns whether the location controller extra package is enabled. */
    public static boolean isLocationControllerExtraPackageEnabled(Context context) {
        try {
            return context.getSystemService(LocationManager.class)