@Override public Parcelable onSaveInstanceState(CoordinatorLayout parent, View child) { View v = child.findViewById(R.id.pin); String text = null; if (v instanceof TextView) { text = ((TextView) v).getText() != null ? ((TextView) v).getText().toString() : null; } return new SavedState(super.onSaveInstanceState(parent, child), mCurrentOffset, text, mFadeEffect, mBaseColor, mPinInizialized, mItemHeight, mIsCenteredVertical, mRelativeOffset, mCurrentImage, mFirstLayout, mVerticalScrollOffset); }
@Override public void onRestoreInstanceState(CoordinatorLayout parent, View child, Parcelable state) { SavedState ss = (SavedState) state; super.onRestoreInstanceState(parent, child, ss.getSuperState()); restoredInstance = true; mCurrentOffset = ss.currentOffset; mPinInizialized = ss.labelInitialized; mCurrentImage = ss.currentImage; mFirstLayout = ss.isFirstLayout; mVerticalScrollOffset = ss.verticalScrollOffset; if (mPinInizialized) { child.setVisibility(View.VISIBLE); View v = child.findViewById(R.id.pin); if (v instanceof TextView) { ((TextView) v).setText(ss.currentText); } else if (v instanceof ImageView) { if (mCurrentImage != 0) { ((ImageView) v).setImageResource(mCurrentImage); } } } mFadeEffect = ss.isFadeEnabled; mBaseColor = ss.baseColor; mItemHeight = ss.itemHeight; mIsCenteredVertical = ss.isCenteredVertical; mRelativeOffset = ss.relOffset; if (mIsCenteredVertical) { centerVerticalPin(child); } }
@Override public SavedState createFromParcel(Parcel source) { return new SavedState(source); }