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

Commit 3d34b54c authored by Chulwoo Lee's avatar Chulwoo Lee Committed by Android (Google) Code Review
Browse files

Merge "Fix ConcurrentModificationException in PersistentDataStore" into lmp-dev

parents 4612a6e1 404bef8a
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
@@ -69,7 +70,8 @@ final class PersistentDataStore {
    // The atomic file used to safely read or write the file.
    private final AtomicFile mAtomicFile;

    private final List<TvContentRating> mBlockedRatings = new ArrayList<TvContentRating>();
    private final List<TvContentRating> mBlockedRatings =
            Collections.synchronizedList(new ArrayList<TvContentRating>());

    private boolean mBlockedRatingsChanged;

@@ -107,11 +109,13 @@ final class PersistentDataStore {

    public boolean isRatingBlocked(TvContentRating rating) {
        loadIfNeeded();
        synchronized (mBlockedRatings) {
            for (TvContentRating blcokedRating : mBlockedRatings) {
                if (rating.contains(blcokedRating)) {
                    return true;
                }
            }
        }
        return false;
    }

@@ -271,11 +275,13 @@ final class PersistentDataStore {
        serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
        serializer.startTag(null, TAG_TV_INPUT_MANAGER_STATE);
        serializer.startTag(null, TAG_BLOCKED_RATINGS);
        synchronized (mBlockedRatings) {
            for (TvContentRating rating : mBlockedRatings) {
                serializer.startTag(null, TAG_RATING);
                serializer.attribute(null, ATTR_STRING, rating.flattenToString());
                serializer.endTag(null, TAG_RATING);
            }
        }
        serializer.endTag(null, TAG_BLOCKED_RATINGS);
        serializer.startTag(null, TAG_PARENTAL_CONTROLS);
        serializer.attribute(null, ATTR_ENABLED, Boolean.toString(mParentalControlsEnabled));