Skip to content

Instantly share code, notes, and snippets.

@billmote
Forked from patrickhammond/ParcelableHelper.java
Created October 12, 2016 20:07
Show Gist options
  • Save billmote/13ab977c33f19303a7258d13f1074903 to your computer and use it in GitHub Desktop.
Save billmote/13ab977c33f19303a7258d13f1074903 to your computer and use it in GitHub Desktop.
import android.os.Parcel;
import android.os.Parcelable;
public class ParcelableHelper {
/**
* There is not always a guarantee that Parcelable values will be immediately written out and
* read back in. For data data that mutable (its own issue), this can be a problem. This is
* for the times when it would be great to have confidence that you will be working with a copy
* of that data.
*/
public static Parcelable immediateDeepCopy(Parcelable input) {
return immediateDeepCopy(input, input.getClass().getClassLoader());
}
/**
* Same as {@link #immediateDeepCopy(android.os.Parcelable)}, but for when you need a little
* more control over which ClassLoader will be used.
*/
public static Parcelable immediateDeepCopy(Parcelable input, ClassLoader classLoader) {
Parcel parcel = null;
try {
parcel = Parcel.obtain();
parcel.writeParcelable(input, 0);
parcel.setDataPosition(0);
return parcel.readParcelable(classLoader);
} finally {
if (parcel != null) {
parcel.recycle();
}
}
}
}
/*
public class InAppMessageInterstitial implements Parcelable, MessageInteface {
private final InAppMessage message; // This implements parcelable too
}
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment