package com.beloo.widget.chipslayoutmanager.cache; import android.os.Parcel; import android.os.Parcelable; import java.util.LinkedList; import java.util.List; import java.util.NavigableSet; import java.util.TreeSet; public final class CacheParcelableContainer implements Parcelable { private NavigableSet startsRow = new TreeSet<>(); private NavigableSet endsRow = new TreeSet<>(); CacheParcelableContainer(NavigableSet startsRow, NavigableSet endsRow) { this.startsRow = startsRow; this.endsRow = endsRow; } private CacheParcelableContainer(Parcel in) { List startsRowList = new LinkedList<>(); List endsRowList = new LinkedList<>(); in.readList(startsRowList, Integer.class.getClassLoader()); in.readList(endsRowList, Integer.class.getClassLoader()); startsRow = new TreeSet<>(startsRowList); endsRow = new TreeSet<>(endsRowList); } @Override public void writeToParcel(Parcel parcel, int i) { List startRowList = new LinkedList<>(startsRow); List endRowList = new LinkedList<>(endsRow); parcel.writeList(startRowList); parcel.writeList(endRowList); } NavigableSet getStartsRow() { return startsRow; } NavigableSet getEndsRow() { return endsRow; } @Override public int describeContents() { return 0; } public static final Creator CREATOR = new Creator() { @Override public CacheParcelableContainer createFromParcel(Parcel in) { return new CacheParcelableContainer(in); } @Override public CacheParcelableContainer[] newArray(int size) { return new CacheParcelableContainer[size]; } }; }