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

Commit 42a8d698 authored by Nick Chalko's avatar Nick Chalko
Browse files

Log BackportedFixStatusReported

Test: atest CtsStatsdAtomHostTestCases:BackportedFixesAtomsTests
Flag: android.os.api_for_backported_fixes
Bug: 376336686
Change-Id: I0811db1eb265cf1a4c6802332dce5927ec4f7608
parent 64ae6a5d
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -41,6 +41,8 @@ import android.util.ArraySet;
import android.util.Slog;
import android.view.View;

import com.android.internal.util.FrameworkStatsLog;

import dalvik.system.VMRuntime;

import java.lang.annotation.Retention;
@@ -1666,12 +1668,15 @@ public class Build {
     */
    @FlaggedApi(android.os.Flags.FLAG_API_FOR_BACKPORTED_FIXES)
    public static @BackportedFixStatus int getBackportedFixStatus(long id) {
        if (id <= 0 || id > 1023) {
            return BACKPORTED_FIX_STATUS_UNKNOWN;
        }
        return isBitSet(BackportedFixesProperties.alias_bitset(), (int) id)
        @BackportedFixStatus int status = BACKPORTED_FIX_STATUS_UNKNOWN;
        int uid = Binder.getCallingUid();
        if (id > 0 && id <= 1023) {
            status = isBitSet(BackportedFixesProperties.alias_bitset(), (int) id)
                    ? BACKPORTED_FIX_STATUS_FIXED : BACKPORTED_FIX_STATUS_UNKNOWN;
        }
        FrameworkStatsLog.write(FrameworkStatsLog.BACKPORTED_FIX_STATUS_REPORTED, uid, id, status);
        return status;
    }

    private static boolean isBitSet(List<Long> bitsetLongArray, int bitIndex) {
        // Because java.util.BitSet is not threadsafe do the calculations here instead.