TIF: Use copied track list for onTracksChanged() callback
In notifyTracksChanged(), the calling onTracksChanged() could be delayed.
To prevent race condition on tracks, we should use the copy of tracks.
Bug: 22436933
Change-Id: I0c595df9d06d5f7bda4a9f8c21a661f7aa7db71f
diff --git a/media/java/android/media/tv/TvInputService.java b/media/java/android/media/tv/TvInputService.java
index 35037bb..86e8560 100644
--- a/media/java/android/media/tv/TvInputService.java
+++ b/media/java/android/media/tv/TvInputService.java
@@ -385,13 +385,14 @@
trackIdSet.clear();
// TODO: Validate the track list.
+ final List<TvTrackInfo> tracksCopy = new ArrayList<>(tracks);
executeOrPostRunnable(new Runnable() {
@Override
public void run() {
try {
if (DEBUG) Log.d(TAG, "notifyTracksChanged");
if (mSessionCallback != null) {
- mSessionCallback.onTracksChanged(tracks);
+ mSessionCallback.onTracksChanged(tracksCopy);
}
} catch (RemoteException e) {
Log.w(TAG, "error in notifyTracksChanged", e);