Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b02d51b3 authored by Chris Banes's avatar Chris Banes Committed by Android (Google) Code Review
Browse files

Merge "Make AbsSavedState read using given ClassLoader" into nyc-dev

parents eefff374 02e81a09
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -40825,6 +40825,7 @@ package android.view {
  public abstract class AbsSavedState implements android.os.Parcelable {
    ctor protected AbsSavedState(android.os.Parcelable);
    ctor protected AbsSavedState(android.os.Parcel);
    ctor protected AbsSavedState(android.os.Parcel, java.lang.ClassLoader);
    method public int describeContents();
    method public final android.os.Parcelable getSuperState();
    method public void writeToParcel(android.os.Parcel, int);
@@ -42941,6 +42942,7 @@ package android.view {
  public static class View.BaseSavedState extends android.view.AbsSavedState {
    ctor public View.BaseSavedState(android.os.Parcel);
    ctor public View.BaseSavedState(android.os.Parcel, java.lang.ClassLoader);
    ctor public View.BaseSavedState(android.os.Parcelable);
    field public static final android.os.Parcelable.Creator<android.view.View.BaseSavedState> CREATOR;
  }
+2 −0
Original line number Diff line number Diff line
@@ -43838,6 +43838,7 @@ package android.view {
  public abstract class AbsSavedState implements android.os.Parcelable {
    ctor protected AbsSavedState(android.os.Parcelable);
    ctor protected AbsSavedState(android.os.Parcel);
    ctor protected AbsSavedState(android.os.Parcel, java.lang.ClassLoader);
    method public int describeContents();
    method public final android.os.Parcelable getSuperState();
    method public void writeToParcel(android.os.Parcel, int);
@@ -45954,6 +45955,7 @@ package android.view {
  public static class View.BaseSavedState extends android.view.AbsSavedState {
    ctor public View.BaseSavedState(android.os.Parcel);
    ctor public View.BaseSavedState(android.os.Parcel, java.lang.ClassLoader);
    ctor public View.BaseSavedState(android.os.Parcelable);
    field public static final android.os.Parcelable.Creator<android.view.View.BaseSavedState> CREATOR;
  }
+2 −0
Original line number Diff line number Diff line
@@ -40902,6 +40902,7 @@ package android.view {
  public abstract class AbsSavedState implements android.os.Parcelable {
    ctor protected AbsSavedState(android.os.Parcelable);
    ctor protected AbsSavedState(android.os.Parcel);
    ctor protected AbsSavedState(android.os.Parcel, java.lang.ClassLoader);
    method public int describeContents();
    method public final android.os.Parcelable getSuperState();
    method public void writeToParcel(android.os.Parcel, int);
@@ -43018,6 +43019,7 @@ package android.view {
  public static class View.BaseSavedState extends android.view.AbsSavedState {
    ctor public View.BaseSavedState(android.os.Parcel);
    ctor public View.BaseSavedState(android.os.Parcel, java.lang.ClassLoader);
    ctor public View.BaseSavedState(android.os.Parcelable);
    field public static final android.os.Parcelable.Creator<android.view.View.BaseSavedState> CREATOR;
  }
+27 −11
Original line number Diff line number Diff line
@@ -50,12 +50,21 @@ public abstract class AbsSavedState implements Parcelable {
    /**
     * Constructor used when reading from a parcel. Reads the state of the superclass.
     *
     * @param source
     * @param source parcel to read from
     */
    protected AbsSavedState(Parcel source) {
        // FIXME need class loader
        Parcelable superState = source.readParcelable(null);
        this(source, null);
    }

    /**
     * Constructor used when reading from a parcel using a given class loader.
     * 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;
    }

@@ -72,16 +81,23 @@ public abstract class AbsSavedState implements Parcelable {
    }

    public static final Parcelable.Creator<AbsSavedState> CREATOR
        = new Parcelable.Creator<AbsSavedState>() {
            = new Parcelable.ClassLoaderCreator<AbsSavedState>() {

        @Override
        public AbsSavedState createFromParcel(Parcel in) {
            Parcelable superState = in.readParcelable(null);
            return createFromParcel(in, null);
        }

        @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];
        }
+22 −4
Original line number Diff line number Diff line
@@ -22575,10 +22575,21 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        /**
         * Constructor used when reading from a parcel. Reads the state of the superclass.
         *
         * @param source
         * @param source parcel to read from
         */
        public BaseSavedState(Parcel source) {
            super(source);
            this(source, null);
        }
        /**
         * Constructor used when reading from a parcel using a given class loader.
         * Reads the state of the superclass.
         *
         * @param source parcel to read from
         * @param loader ClassLoader to use for reading
         */
        public BaseSavedState(Parcel source, ClassLoader loader) {
            super(source, loader);
            mStartActivityRequestWhoSaved = source.readString();
        }
@@ -22597,12 +22608,19 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            out.writeString(mStartActivityRequestWhoSaved);
        }
        public static final Parcelable.Creator<BaseSavedState> CREATOR =
                new Parcelable.Creator<BaseSavedState>() {
        public static final Parcelable.Creator<BaseSavedState> CREATOR
                = new Parcelable.ClassLoaderCreator<BaseSavedState>() {
            @Override
            public BaseSavedState createFromParcel(Parcel in) {
                return new BaseSavedState(in);
            }
            @Override
            public BaseSavedState createFromParcel(Parcel in, ClassLoader loader) {
                return new BaseSavedState(in, loader);
            }
            @Override
            public BaseSavedState[] newArray(int size) {
                return new BaseSavedState[size];
            }