package com.architjn.acjmusicplayer.ui.widget;
import java.util.ArrayList;
public class PointShiftingArrayList<T> extends ArrayList<T> {
private int pointOnShifted = 0;
@Override
public void add(int index, T object) {
super.add(getNewShiftedPoint(index), object);
}
public int getNewShiftedPoint(int index) {
if (size() == 0)
return 0;
int newIndex = index + pointOnShifted;
if (newIndex != size() - 1) {
if (newIndex >= size() - 1)
newIndex = size() - newIndex;
if (newIndex < 0)
newIndex = -newIndex;
}
return newIndex;
}
public int getNormalIndex(int index) {
int newIndex = index + pointOnShifted;
if (newIndex >= size())
newIndex -= size();
return newIndex;
}
public T getNormal(int index) {
return super.get(index);
}
public void setPointOnShifted(int pointOnShifted) {
this.pointOnShifted = pointOnShifted;
}
public void copy(ArrayList<T> newList) {
super.clear();
super.addAll(newList);
}
@Override
public T get(int index) {
return super.get(getNewShiftedPoint(index));
}
}