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

Commit 0579582d authored by Kunal Malhotra's avatar Kunal Malhotra Committed by Automerger Merge Worker
Browse files

Merge "Adding in hook for FGS metrics logging in LocationManagerService" into...

Merge "Adding in hook for FGS metrics logging in LocationManagerService" into udc-dev am: 9eeb5332 am: 48238cf4

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21530624



Change-Id: I7c723c60186483f7707b8258abcd1561fec3def8
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents d3714e69 48238cf4
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.app.ActivityManager;
import android.app.ActivityManagerInternal;
import android.app.AppOpsManager;
import android.app.PendingIntent;
import android.app.compat.CompatChanges;
@@ -780,6 +781,12 @@ public class LocationManagerService extends ILocationManager.Stub implements
    public void registerLocationListener(String provider, LocationRequest request,
            ILocationListener listener, String packageName, @Nullable String attributionTag,
            String listenerId) {
        ActivityManagerInternal managerInternal =
                LocalServices.getService(ActivityManagerInternal.class);
        if (managerInternal != null) {
            managerInternal.logFgsApiBegin(ActivityManager.FOREGROUND_SERVICE_API_TYPE_LOCATION,
                    Binder.getCallingUid(), Binder.getCallingPid());
        }
        CallerIdentity identity = CallerIdentity.fromBinder(mContext, packageName, attributionTag,
                listenerId);
        int permissionLevel = LocationPermissions.getPermissionLevel(mContext, identity.getUid(),
@@ -937,6 +944,12 @@ public class LocationManagerService extends ILocationManager.Stub implements

    @Override
    public void unregisterLocationListener(ILocationListener listener) {
        ActivityManagerInternal managerInternal =
                LocalServices.getService(ActivityManagerInternal.class);
        if (managerInternal != null) {
            managerInternal.logFgsApiEnd(ActivityManager.FOREGROUND_SERVICE_API_TYPE_LOCATION,
                            Binder.getCallingUid(), Binder.getCallingPid());
        }
        for (LocationProviderManager manager : mProviderManagers) {
            manager.unregisterLocationRequest(listener);
        }