diff --git a/api/current.txt b/api/current.txt index 5ec5c54bc..f68ab1bf9 100644 --- a/api/current.txt +++ b/api/current.txt @@ -32,7 +32,7 @@ package android.support.design.widget { } protected static class AppBarLayout.Behavior.SavedState extends android.view.View.BaseSavedState { - ctor public AppBarLayout.Behavior.SavedState(android.os.Parcel); + ctor public AppBarLayout.Behavior.SavedState(android.os.Parcel, java.lang.ClassLoader); ctor public AppBarLayout.Behavior.SavedState(android.os.Parcelable); field public static final android.os.Parcelable.Creator CREATOR; } @@ -184,7 +184,7 @@ package android.support.design.widget { } protected static class CoordinatorLayout.SavedState extends android.view.View.BaseSavedState { - ctor public CoordinatorLayout.SavedState(android.os.Parcel); + ctor public CoordinatorLayout.SavedState(android.os.Parcel, java.lang.ClassLoader); ctor public CoordinatorLayout.SavedState(android.os.Parcelable); field public static final android.os.Parcelable.Creator CREATOR; } @@ -250,7 +250,7 @@ package android.support.design.widget { } public static class NavigationView.SavedState extends android.view.View.BaseSavedState { - ctor public NavigationView.SavedState(android.os.Parcel); + ctor public NavigationView.SavedState(android.os.Parcel, java.lang.ClassLoader); ctor public NavigationView.SavedState(android.os.Parcelable); field public static final android.os.Parcelable.Creator CREATOR; field public android.os.Bundle menuState; diff --git a/src/android/support/design/internal/ParcelableSparseArray.java b/src/android/support/design/internal/ParcelableSparseArray.java index 74abcc218..588950bb7 100644 --- a/src/android/support/design/internal/ParcelableSparseArray.java +++ b/src/android/support/design/internal/ParcelableSparseArray.java @@ -18,6 +18,8 @@ package android.support.design.internal; import android.os.Parcel; import android.os.Parcelable; +import android.support.v4.os.ParcelableCompat; +import android.support.v4.os.ParcelableCompatCreatorCallbacks; import android.util.SparseArray; /** @@ -29,13 +31,12 @@ public class ParcelableSparseArray extends SparseArray implements Pa super(); } - public ParcelableSparseArray(Parcel source) { + public ParcelableSparseArray(Parcel source, ClassLoader loader) { super(); int size = source.readInt(); int[] keys = new int[size]; source.readIntArray(keys); - Parcelable[] values = source.readParcelableArray( - ParcelableSparseArray.class.getClassLoader()); + Parcelable[] values = source.readParcelableArray(loader); for (int i = 0; i < size; ++i) { put(keys[i], values[i]); } @@ -60,17 +61,18 @@ public class ParcelableSparseArray extends SparseArray implements Pa parcel.writeParcelableArray(values, flags); } - public static final Parcelable.Creator CREATOR - = new Creator() { - @Override - public ParcelableSparseArray createFromParcel(Parcel source) { - return new ParcelableSparseArray(source); - } - - @Override - public ParcelableSparseArray[] newArray(int size) { - return new ParcelableSparseArray[size]; - } - }; + public static final Parcelable.Creator CREATOR = + ParcelableCompat + .newCreator(new ParcelableCompatCreatorCallbacks() { + @Override + public ParcelableSparseArray createFromParcel(Parcel source, + ClassLoader loader) { + return new ParcelableSparseArray(source, loader); + } + @Override + public ParcelableSparseArray[] newArray(int size) { + return new ParcelableSparseArray[size]; + } + }); } diff --git a/src/android/support/design/widget/AppBarLayout.java b/src/android/support/design/widget/AppBarLayout.java index d0b5309b1..f0cfe3410 100644 --- a/src/android/support/design/widget/AppBarLayout.java +++ b/src/android/support/design/widget/AppBarLayout.java @@ -24,6 +24,8 @@ import android.support.annotation.IntDef; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.design.R; +import android.support.v4.os.ParcelableCompat; +import android.support.v4.os.ParcelableCompatCreatorCallbacks; import android.support.v4.view.ViewCompat; import android.support.v4.view.WindowInsetsCompat; import android.util.AttributeSet; @@ -1061,12 +1063,12 @@ public class AppBarLayout extends LinearLayout { } } - protected static class SavedState extends View.BaseSavedState { + protected static class SavedState extends BaseSavedState { int firstVisibleChildIndex; float firstVisibileChildPercentageShown; boolean firstVisibileChildAtMinimumHeight; - public SavedState(Parcel source) { + public SavedState(Parcel source, ClassLoader loader) { super(source); firstVisibleChildIndex = source.readInt(); firstVisibileChildPercentageShown = source.readFloat(); @@ -1086,17 +1088,17 @@ public class AppBarLayout extends LinearLayout { } public static final Parcelable.Creator CREATOR = - new Parcelable.Creator() { + ParcelableCompat.newCreator(new ParcelableCompatCreatorCallbacks() { @Override - public SavedState createFromParcel(Parcel source) { - return new SavedState(source); + public SavedState createFromParcel(Parcel source, ClassLoader loader) { + return new SavedState(source, loader); } @Override public SavedState[] newArray(int size) { return new SavedState[size]; } - }; + }); } } diff --git a/src/android/support/design/widget/CoordinatorLayout.java b/src/android/support/design/widget/CoordinatorLayout.java index 359c468b0..a5d6a9685 100644 --- a/src/android/support/design/widget/CoordinatorLayout.java +++ b/src/android/support/design/widget/CoordinatorLayout.java @@ -31,6 +31,8 @@ import android.os.Parcelable; import android.os.SystemClock; import android.support.design.R; import android.support.v4.content.ContextCompat; +import android.support.v4.os.ParcelableCompat; +import android.support.v4.os.ParcelableCompatCreatorCallbacks; import android.support.v4.view.GravityCompat; import android.support.v4.view.MotionEventCompat; import android.support.v4.view.NestedScrollingParent; @@ -2586,7 +2588,7 @@ public class CoordinatorLayout extends ViewGroup implements NestedScrollingParen protected static class SavedState extends BaseSavedState { SparseArray behaviorStates; - public SavedState(Parcel source) { + public SavedState(Parcel source, ClassLoader loader) { super(source); final int size = source.readInt(); @@ -2594,8 +2596,7 @@ public class CoordinatorLayout extends ViewGroup implements NestedScrollingParen final int[] ids = new int[size]; source.readIntArray(ids); - final Parcelable[] states = source.readParcelableArray( - CoordinatorLayout.class.getClassLoader()); + final Parcelable[] states = source.readParcelableArray(loader); behaviorStates = new SparseArray<>(size); for (int i = 0; i < size; i++) { @@ -2626,18 +2627,18 @@ public class CoordinatorLayout extends ViewGroup implements NestedScrollingParen } - public static final Parcelable.Creator CREATOR = - new Parcelable.Creator() { - @Override - public SavedState createFromParcel(Parcel source) { - return new SavedState(source); - } + public static final Parcelable.Creator CREATOR + = ParcelableCompat.newCreator(new ParcelableCompatCreatorCallbacks() { + @Override + public SavedState createFromParcel(Parcel in, ClassLoader loader) { + return new SavedState(in, loader); + } - @Override - public SavedState[] newArray(int size) { - return new SavedState[size]; - } - }; + @Override + public SavedState[] newArray(int size) { + return new SavedState[size]; + } + }); } private static void selectionSort(final List list, final Comparator comparator) { diff --git a/src/android/support/design/widget/NavigationView.java b/src/android/support/design/widget/NavigationView.java index 6f606d43b..4ce8cbbd5 100644 --- a/src/android/support/design/widget/NavigationView.java +++ b/src/android/support/design/widget/NavigationView.java @@ -35,6 +35,8 @@ import android.support.design.internal.NavigationMenuPresenter; import android.support.design.internal.NavigationMenuView; import android.support.design.internal.ScrimInsetsFrameLayout; import android.support.v4.content.ContextCompat; +import android.support.v4.os.ParcelableCompat; +import android.support.v4.os.ParcelableCompatCreatorCallbacks; import android.support.v4.view.ViewCompat; import android.support.v7.internal.view.SupportMenuInflater; import android.support.v7.internal.view.menu.MenuBuilder; @@ -452,9 +454,9 @@ public class NavigationView extends ScrimInsetsFrameLayout { public static class SavedState extends BaseSavedState { public Bundle menuState; - public SavedState(Parcel in) { + public SavedState(Parcel in, ClassLoader loader) { super(in); - menuState = in.readBundle(); + menuState = in.readBundle(loader); } public SavedState(Parcelable superState) { @@ -468,17 +470,17 @@ public class NavigationView extends ScrimInsetsFrameLayout { } public static final Parcelable.Creator CREATOR - = new Parcelable.Creator() { + = ParcelableCompat.newCreator(new ParcelableCompatCreatorCallbacks() { @Override - public SavedState createFromParcel(Parcel parcel) { - return new SavedState(parcel); + public SavedState createFromParcel(Parcel parcel, ClassLoader loader) { + return new SavedState(parcel, loader); } @Override public SavedState[] newArray(int size) { return new SavedState[size]; } - }; + }); } }