From 739e9983c2d1514c328b9d3568ca85df2c9b7cd4 Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Wed, 30 Nov 2022 00:46:50 +0000 Subject: [PATCH] Annotate GuardedBy in ProgramList Bug: 260635403 Test: atest ProgramListTest Change-Id: If5aad316026b49df62a036e21a517ee1dd50d928 --- .../android/hardware/radio/ProgramList.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/core/java/android/hardware/radio/ProgramList.java b/core/java/android/hardware/radio/ProgramList.java index ade9fd68ade8b..b2dfd85017725 100644 --- a/core/java/android/hardware/radio/ProgramList.java +++ b/core/java/android/hardware/radio/ProgramList.java @@ -24,6 +24,8 @@ import android.os.Parcel; import android.os.Parcelable; import android.util.ArrayMap; +import com.android.internal.annotations.GuardedBy; + import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; @@ -41,14 +43,25 @@ import java.util.stream.Collectors; public final class ProgramList implements AutoCloseable { private final Object mLock = new Object(); + + @GuardedBy("mLock") private final Map mPrograms = new ArrayMap<>(); + @GuardedBy("mLock") private final List mListCallbacks = new ArrayList<>(); + + @GuardedBy("mLock") private final List mOnCompleteListeners = new ArrayList<>(); + + @GuardedBy("mLock") private OnCloseListener mOnCloseListener; - private boolean mIsClosed = false; - private boolean mIsComplete = false; + + @GuardedBy("mLock") + private boolean mIsClosed; + + @GuardedBy("mLock") + private boolean mIsComplete; ProgramList() {} @@ -227,6 +240,7 @@ public final class ProgramList implements AutoCloseable { } } + @GuardedBy("mLock") private void putLocked(RadioManager.ProgramInfo value, List changedIdentifierList) { ProgramSelector.Identifier key = value.getSelector().getPrimaryId(); @@ -235,6 +249,7 @@ public final class ProgramList implements AutoCloseable { changedIdentifierList.add(sel); } + @GuardedBy("mLock") private void removeLocked(ProgramSelector.Identifier key, List removedIdentifierList) { RadioManager.ProgramInfo removed = mPrograms.remove(Objects.requireNonNull(key));