From f3c2e0b3ab7f6c4df952333adcaabe454c99b518 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Tue, 13 Mar 2018 13:56:24 -0400 Subject: [PATCH] DO NOT MERGE Fix build with SDK 24-like implementation of constructor Bug: 71992105 Test: manual Change-Id: I106760ada9c85adde29fd143e5dfcd924fd95f54 --- core/java/com/android/internal/widget/ViewPager.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/core/java/com/android/internal/widget/ViewPager.java b/core/java/com/android/internal/widget/ViewPager.java index e4bb0cffd6af..46349152d75c 100644 --- a/core/java/com/android/internal/widget/ViewPager.java +++ b/core/java/com/android/internal/widget/ViewPager.java @@ -1255,7 +1255,7 @@ public class ViewPager extends ViewGroup { }; SavedState(Parcel in, ClassLoader loader) { - super(in, loader); + super(loadParcelable(in, loader)); if (loader == null) { loader = getClass().getClassLoader(); } @@ -1263,6 +1263,16 @@ public class ViewPager extends ViewGroup { adapterState = in.readParcelable(loader); this.loader = loader; } + + /** + * Substitute for AbsSavedState two-arg constructor, which was added in + * SDK 24. Loads the super state from a given class loader or returns + * the empty state if null. + */ + private static Parcelable loadParcelable(Parcel in, ClassLoader loader) { + Parcelable superState = in.readParcelable(loader); + return superState != null ? superState : AbsSavedState.EMPTY_STATE; + } } @Override -- 2.11.0