3 changed files with 11 additions and 111 deletions
@ -1,100 +0,0 @@ |
|||
/* |
|||
* Copyright (C) 2016 The Android Open Source Project |
|||
* |
|||
* Licensed under the Apache License, Version 2.0 (the "License"); |
|||
* you may not use this file except in compliance with the License. |
|||
* You may obtain a copy of the License at |
|||
* |
|||
* http://www.apache.org/licenses/LICENSE-2.0
|
|||
* |
|||
* Unless required by applicable law or agreed to in writing, software |
|||
* distributed under the License is distributed on an "AS IS" BASIS, |
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
* See the License for the specific language governing permissions and |
|||
* limitations under the License. |
|||
*/ |
|||
|
|||
package android.support.v4.view; |
|||
|
|||
import android.os.Parcel; |
|||
import android.os.Parcelable; |
|||
import android.support.v4.os.ParcelableCompat; |
|||
import android.support.v4.os.ParcelableCompatCreatorCallbacks; |
|||
|
|||
/** |
|||
* A {@link Parcelable} implementation that should be used by inheritance |
|||
* hierarchies to ensure the state of all classes along the chain is saved. |
|||
*/ |
|||
public abstract class AbsSavedState implements Parcelable { |
|||
public static final AbsSavedState EMPTY_STATE = new AbsSavedState() {}; |
|||
|
|||
private final Parcelable mSuperState; |
|||
|
|||
/** |
|||
* Constructor used to make the EMPTY_STATE singleton |
|||
*/ |
|||
private AbsSavedState() { |
|||
mSuperState = null; |
|||
} |
|||
|
|||
/** |
|||
* Constructor called by derived classes when creating their SavedState objects |
|||
* |
|||
* @param superState The state of the superclass of this view |
|||
*/ |
|||
protected AbsSavedState(Parcelable superState) { |
|||
if (superState == null) { |
|||
throw new IllegalArgumentException("superState must not be null"); |
|||
} |
|||
mSuperState = superState != EMPTY_STATE ? superState : null; |
|||
} |
|||
|
|||
/** |
|||
* Constructor used when reading from a parcel. Reads the state of the superclass. |
|||
* |
|||
* @param source parcel to read from |
|||
*/ |
|||
protected AbsSavedState(Parcel source) { |
|||
this(source, null); |
|||
} |
|||
|
|||
/** |
|||
* Constructor used when reading from a parcel. Reads the state of the superclass. |
|||
* |
|||
* @param source parcel to read from |
|||
* @param loader ClassLoader to use for reading |
|||
*/ |
|||
protected AbsSavedState(Parcel source, ClassLoader loader) { |
|||
Parcelable superState = source.readParcelable(loader); |
|||
mSuperState = superState != null ? superState : EMPTY_STATE; |
|||
} |
|||
|
|||
final public Parcelable getSuperState() { |
|||
return mSuperState; |
|||
} |
|||
|
|||
public int describeContents() { |
|||
return 0; |
|||
} |
|||
|
|||
public void writeToParcel(Parcel dest, int flags) { |
|||
dest.writeParcelable(mSuperState, flags); |
|||
} |
|||
|
|||
public static final Parcelable.Creator<AbsSavedState> CREATOR |
|||
= ParcelableCompat.newCreator(new ParcelableCompatCreatorCallbacks<AbsSavedState>() { |
|||
@Override |
|||
public AbsSavedState createFromParcel(Parcel in, ClassLoader loader) { |
|||
Parcelable superState = in.readParcelable(loader); |
|||
if (superState != null) { |
|||
throw new IllegalStateException("superState must be null"); |
|||
} |
|||
return EMPTY_STATE; |
|||
} |
|||
|
|||
@Override |
|||
public AbsSavedState[] newArray(int size) { |
|||
return new AbsSavedState[size]; |
|||
} |
|||
}); |
|||
} |
|||
Loading…
Reference in new issue