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<Integer> startsRow = new TreeSet<>(); private NavigableSet<Integer> endsRow = new TreeSet<>(); CacheParcelableContainer(NavigableSet<Integer> startsRow, NavigableSet<Integer> endsRow) { this.startsRow = startsRow; this.endsRow = endsRow; } private CacheParcelableContainer(Parcel in) { List<Integer> startsRowList = new LinkedList<>(); List<Integer> 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<Integer> startRowList = new LinkedList<>(startsRow); List<Integer> endRowList = new LinkedList<>(endsRow); parcel.writeList(startRowList); parcel.writeList(endRowList); } NavigableSet<Integer> getStartsRow() { return startsRow; } NavigableSet<Integer> getEndsRow() { return endsRow; } @Override public int describeContents() { return 0; } public static final Creator<CacheParcelableContainer> CREATOR = new Creator<CacheParcelableContainer>() { @Override public CacheParcelableContainer createFromParcel(Parcel in) { return new CacheParcelableContainer(in); } @Override public CacheParcelableContainer[] newArray(int size) { return new CacheParcelableContainer[size]; } }; }