package com.beloo.widget.chipslayoutmanager.anchor;
|
|
import android.graphics.Rect;
|
import android.os.Parcel;
|
import android.os.Parcelable;
|
|
import androidx.annotation.NonNull;
|
|
import java.util.Locale;
|
|
/**
|
* represents View, which is highest visible left view
|
*/
|
|
public class AnchorViewState implements Parcelable {
|
private Integer position = 0;
|
private Rect anchorViewRect;
|
|
private AnchorViewState() {
|
}
|
|
static AnchorViewState getNotFoundState() {
|
return new AnchorViewState();
|
}
|
|
AnchorViewState(int position, @NonNull Rect anchorViewRect) {
|
this.position = position;
|
this.anchorViewRect = anchorViewRect;
|
}
|
|
public boolean isNotFoundState() {
|
return anchorViewRect == null;
|
}
|
|
public Integer getPosition() {
|
return position;
|
}
|
|
public void setPosition(Integer position) {
|
this.position = position;
|
}
|
|
public Rect getAnchorViewRect() {
|
return anchorViewRect;
|
}
|
|
public void setAnchorViewRect(Rect anchorViewRect) {
|
this.anchorViewRect = anchorViewRect;
|
}
|
|
public boolean isRemoving() {
|
return getPosition() == -1;
|
}
|
|
//parcelable logic below
|
|
private AnchorViewState(Parcel parcel) {
|
int parcelPosition = parcel.readInt();
|
position = parcelPosition == -1? null : parcelPosition;
|
anchorViewRect = parcel.readParcelable(AnchorViewState.class.getClassLoader());
|
}
|
|
@Override
|
public int describeContents() {
|
return 0;
|
}
|
|
@Override
|
public void writeToParcel(Parcel parcel, int i) {
|
parcel.writeInt(position == null? -1 : position);
|
parcel.writeParcelable(anchorViewRect, 0);
|
}
|
|
public static final Parcelable.Creator<AnchorViewState> CREATOR = new Parcelable.Creator<AnchorViewState>() {
|
// unpack Object from Parcel
|
public AnchorViewState createFromParcel(Parcel in) {
|
return new AnchorViewState(in);
|
}
|
|
public AnchorViewState[] newArray(int size) {
|
return new AnchorViewState[size];
|
}
|
};
|
|
@Override
|
public String toString() {
|
return String.format(Locale.getDefault(), "AnchorState. Position = %d, Rect = %s", position, String.valueOf(anchorViewRect));
|
}
|
}
|