Create ParcelableUtil class.
This commit is contained in:
parent
7bed415932
commit
e68ac72629
@ -0,0 +1,31 @@
|
|||||||
|
package com.philliphsu.clock2.util;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utilities to marshall and unmarshall a {@code Parcelable} to and from a byte array.
|
||||||
|
*/
|
||||||
|
public final class ParcelableUtil {
|
||||||
|
public static byte[] marshall(Parcelable parcelable) {
|
||||||
|
Parcel parcel = Parcel.obtain();
|
||||||
|
parcelable.writeToParcel(parcel, 0);
|
||||||
|
byte[] bytes = parcel.marshall();
|
||||||
|
parcel.recycle();
|
||||||
|
return bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Parcel unmarshall(byte[] bytes) {
|
||||||
|
Parcel parcel = Parcel.obtain();
|
||||||
|
parcel.unmarshall(bytes, 0, bytes.length);
|
||||||
|
parcel.setDataPosition(0); // This is extremely important!
|
||||||
|
return parcel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> T unmarshall(byte[] bytes, Parcelable.Creator<T> creator) {
|
||||||
|
Parcel parcel = unmarshall(bytes);
|
||||||
|
T result = creator.createFromParcel(parcel);
|
||||||
|
parcel.recycle();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user