Object[] stateArray = (Object[]) state;
boolean savedFromInitialState = !(stateArray.length > 0 && stateArray[0] instanceof SavedAttachedState);
if (savedFromInitialState) {
for (int i = 0; i < stateArray.length; i++) {
StateHolder stateHolder = this.stateHolders.get(i);
stateHolder.restoreState(context, stateArray[i]);
}
} else {
this.stateHolders.clear();
for (int i = 0; i < stateArray.length; i++) {
SavedAttachedState savedAttachedState = (SavedAttachedState) stateArray[i];