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

Commit 7f1a909d authored by Philip P. Moltmann's avatar Philip P. Moltmann
Browse files

Make LocationAccessCheck objects not a service anymore

The LocationAccessCheck code is used by a jobservice but also by other
callers. Before the LocationAccessCheck code contained static methods
that could be used by these other callers. This made the code quite
ugly.

This change turns the logic around. Now LocationAccessCheck is an
independent object and the LocationAccessCheckJobService (and other
callers) just create one of these object and call the methods on it.

Test: atest --test-mapping packages/apps/PermissionController/src/com/android/packageinstaller/permission/service:presubmit
Change-Id: I9912cf554c1910f96715c77d34a3990a626a1ea9
parent 466e3f80
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@
            </intent-filter>
        </receiver>

        <service android:name="com.android.packageinstaller.permission.service.LocationAccessCheck"
        <service android:name="com.android.packageinstaller.permission.service.LocationAccessCheck$LocationAccessCheckJobService"
                 android:permission="android.permission.BIND_JOB_SERVICE" />

        <activity android:name="com.android.packageinstaller.permission.ui.GrantPermissionsActivity"
+4 −5
Original line number Diff line number Diff line
@@ -28,9 +28,6 @@ import static android.app.AppOpsManager.MODE_FOREGROUND;
import static android.app.AppOpsManager.MODE_IGNORED;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;

import static com.android.packageinstaller.permission.service.LocationAccessCheck
        .checkLocationAccessSoon;

import android.app.ActivityManager;
import android.app.AppOpsManager;
import android.content.Context;
@@ -51,6 +48,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;

import com.android.packageinstaller.permission.service.LocationAccessCheck;
import com.android.packageinstaller.permission.utils.ArrayUtils;
import com.android.packageinstaller.permission.utils.LocationUtils;
import com.android.packageinstaller.permission.utils.Utils;
@@ -826,7 +824,7 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
                    Permission bgPerm = permission.getBackgroundPermission();
                    if (bgPerm != null) {
                        if (bgPerm.isGrantedIncludingAppOp()) {
                            checkLocationAccessSoon(mContext);
                            new LocationAccessCheck(mContext, null).checkLocationAccessSoon();
                        }
                    }
                } else if (permission.getName().equals(ACCESS_BACKGROUND_LOCATION)) {
@@ -838,7 +836,8 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>

                            if (fgPerm.getName().equals(ACCESS_FINE_LOCATION)) {
                                if (fgPerm.isGrantedIncludingAppOp()) {
                                    checkLocationAccessSoon(mContext);
                                    new LocationAccessCheck(mContext, null)
                                            .checkLocationAccessSoon();
                                }

                                break;
+193 −189

File changed.

Preview size limit exceeded, changes collapsed.

+12 −0
Original line number Diff line number Diff line
{
    "presubmit": [
        {
            "name": "CtsPermissionTestCases",
            "options": [
                {
                    "include-filter": "android.permission.cts.LocationAccessCheckTest"
                }
            ]
        }
    ]
}
 No newline at end of file