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

Commit 78b91cd4 authored by Kunal Malhotra's avatar Kunal Malhotra Committed by Automerger Merge Worker
Browse files

Merge "Updating logging for possible edge cases of incorrectly updated arrays"...

Merge "Updating logging for possible edge cases of incorrectly updated arrays" into udc-dev am: bfca1097 am: e644ed44

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



Change-Id: I4d8eced63fab0d91ab93e0244a037fb376b60de7
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 79ba017c e644ed44
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ import android.app.ForegroundServiceDelegationOptions;
import android.content.ComponentName;
import android.content.pm.ServiceInfo;
import android.util.ArrayMap;
import android.util.Log;
import android.util.Slog;
import android.util.SparseArray;

import com.android.internal.annotations.VisibleForTesting;
@@ -192,13 +192,20 @@ public class ForegroundServiceTypeLoggerModule {
        final ArrayList<Integer> apiTypes = convertFgsTypeToApiTypes(record.foregroundServiceType);
        final UidState uidState = mUids.get(uid);
        if (uidState == null) {
            Log.e(TAG, "FGS stop call being logged with no start call for UID " + uid);
            Slog.wtfStack(TAG, "FGS stop call being logged with no start call for UID for UID "
                    + uid
                    + " in package " + record.packageName);
            return;
        }
        final ArrayList<Integer> apisFound = new ArrayList<>();
        final ArrayList<Long> timestampsFound = new ArrayList<>();
        for (int i = 0, size = apiTypes.size(); i < size; i++) {
            int apiType = apiTypes.get(i);
            final int apiType = apiTypes.get(i);
            if (!uidState.mOpenWithFgsCount.contains(apiType)) {
                Slog.wtfStack(TAG, "Logger should be tracking FGS types correctly for UID " + uid
                        + " in package " + record.packageName);
                continue;
            }
            // retrieve the eligible closed call
            // we only want to log if this is the only
            // open in flight call. If there are other calls,
@@ -215,7 +222,8 @@ public class ForegroundServiceTypeLoggerModule {
            final ArrayMap<ComponentName, ServiceRecord> runningFgsOfType =
                    uidState.mRunningFgs.get(apiType);
            if (runningFgsOfType == null) {
                Log.w(TAG, "Could not find appropriate running FGS for FGS stop");
                Slog.w(TAG, "Could not find appropriate running FGS for FGS stop for UID " + uid
                        + " in package " + record.packageName);
                continue;
            }

@@ -322,7 +330,7 @@ public class ForegroundServiceTypeLoggerModule {
        // it's not related to any FGS
        UidState uidState = mUids.get(uid);
        if (uidState == null) {
            Log.w(TAG, "API event end called before start!");
            Slog.w(TAG, "API event end called before start!");
            return -1;
        }
        if (uidState.mOpenWithFgsCount.contains(apiType)) {