Parcelable: Add Parcelable functionality to Android Extensions plugin

This commit is contained in:
Yan Zhulanow
2017-06-16 16:52:29 +03:00
parent edd8a0a64e
commit c23bca6afe
47 changed files with 2979 additions and 3 deletions
@@ -0,0 +1,6 @@
// CURIOUS_ABOUT writeToParcel
import kotlinx.android.parcel.*
@MagicParcel
class Test(val names: List<List<List<String>>>)
@@ -0,0 +1,82 @@
public static class Test$CREATOR : java/lang/Object, android/os/Parcelable$Creator {
public void <init>()
public final Test createFromParcel(android.os.Parcel p0)
public final Test[] newArray(int p0)
}
public final class Test : java/lang/Object {
public final static Test$CREATOR CREATOR
private final java.util.List names
static void <clinit>()
public void <init>(java.util.List p0)
public final int describeContents()
public final java.util.List getNames()
public final void writeToParcel(android.os.Parcel p0, int p1) {
LABEL (L0)
ALOAD (1)
LDC (parcel)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (names, Ljava/util/List;)
DUP_X1
INVOKEINTERFACE (java/util/Collection, size, ()I)
INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
INVOKEINTERFACE (java/util/Collection, iterator, ()Ljava/util/Iterator;)
LABEL (L1)
DUP
INVOKEINTERFACE (java/util/Iterator, hasNext, ()Z)
IFEQ (L2)
DUP
INVOKEINTERFACE (java/util/Iterator, next, ()Ljava/lang/Object;)
ALOAD (1)
SWAP
CHECKCAST
DUP_X1
INVOKEINTERFACE (java/util/Collection, size, ()I)
INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
INVOKEINTERFACE (java/util/Collection, iterator, ()Ljava/util/Iterator;)
LABEL (L3)
DUP
INVOKEINTERFACE (java/util/Iterator, hasNext, ()Z)
IFEQ (L4)
DUP
INVOKEINTERFACE (java/util/Iterator, next, ()Ljava/lang/Object;)
ALOAD (1)
SWAP
CHECKCAST
DUP_X1
INVOKEINTERFACE (java/util/Collection, size, ()I)
INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
INVOKEINTERFACE (java/util/Collection, iterator, ()Ljava/util/Iterator;)
LABEL (L5)
DUP
INVOKEINTERFACE (java/util/Iterator, hasNext, ()Z)
IFEQ (L6)
DUP
INVOKEINTERFACE (java/util/Iterator, next, ()Ljava/lang/Object;)
ALOAD (1)
SWAP
CHECKCAST
INVOKEVIRTUAL (android/os/Parcel, writeString, (Ljava/lang/String;)V)
GOTO (L5)
LABEL (L6)
POP
GOTO (L3)
LABEL (L4)
POP
GOTO (L1)
LABEL (L2)
POP
RETURN
LABEL (L7)
}
}
@@ -0,0 +1,10 @@
// CURIOUS_ABOUT writeToParcel
import android.util.Size
import kotlinx.android.parcel.*
@MagicParcel
class TestNullable(val a: Size?)
@MagicParcel
class TestNotNull(val a: Size)
@@ -0,0 +1,80 @@
public static class TestNotNull$CREATOR : java/lang/Object, android/os/Parcelable$Creator {
public void <init>()
public final TestNotNull createFromParcel(android.os.Parcel p0)
public final TestNotNull[] newArray(int p0)
}
public final class TestNotNull : java/lang/Object {
public final static TestNotNull$CREATOR CREATOR
private final android.util.Size a
static void <clinit>()
public void <init>(android.util.Size p0)
public final int describeContents()
public final android.util.Size getA()
public final void writeToParcel(android.os.Parcel p0, int p1) {
LABEL (L0)
ALOAD (1)
LDC (parcel)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (a, Landroid/util/Size;)
INVOKEVIRTUAL (android/os/Parcel, writeSize, (Landroid/util/Size;)V)
RETURN
LABEL (L1)
}
}
public static class TestNullable$CREATOR : java/lang/Object, android/os/Parcelable$Creator {
public void <init>()
public final TestNullable createFromParcel(android.os.Parcel p0)
public final TestNullable[] newArray(int p0)
}
public final class TestNullable : java/lang/Object {
public final static TestNullable$CREATOR CREATOR
private final android.util.Size a
static void <clinit>()
public void <init>(android.util.Size p0)
public final int describeContents()
public final android.util.Size getA()
public final void writeToParcel(android.os.Parcel p0, int p1) {
LABEL (L0)
ALOAD (1)
LDC (parcel)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (a, Landroid/util/Size;)
DUP
IFNULL (L1)
ALOAD (1)
LDC (1)
INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
INVOKEVIRTUAL (android/os/Parcel, writeSize, (Landroid/util/Size;)V)
GOTO (L2)
LABEL (L1)
POP
LDC (0)
INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
LABEL (L2)
RETURN
LABEL (L3)
}
}
@@ -0,0 +1,10 @@
// CURIOUS_ABOUT writeToParcel, createFromParcel, <clinit>
import kotlinx.android.parcel.*
import android.os.Parcelable
import java.io.Serializable
class SerializableSimple(val a: String, val b: String) : Serializable
@MagicParcel
class User(val notNull: SerializableSimple, val nullable: SerializableSimple) : Parcelable
@@ -0,0 +1,74 @@
public final class SerializableSimple : java/lang/Object, java/io/Serializable {
private final java.lang.String a
private final java.lang.String b
public void <init>(java.lang.String p0, java.lang.String p1)
public final java.lang.String getA()
public final java.lang.String getB()
}
public static class User$CREATOR : java/lang/Object, android/os/Parcelable$Creator {
public void <init>()
public final User createFromParcel(android.os.Parcel p0) {
LABEL (L0)
ALOAD (1)
LDC (in)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
NEW
DUP
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readSerializable, ()LSerializableSimple;)
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readSerializable, ()LSerializableSimple;)
INVOKESPECIAL (User, <init>, (LSerializableSimple;LSerializableSimple;)V)
ARETURN
LABEL (L1)
}
public final User[] newArray(int p0)
}
public final class User : java/lang/Object, android/os/Parcelable {
public final static User$CREATOR CREATOR
private final SerializableSimple notNull
private final SerializableSimple nullable
static void <clinit>() {
NEW
DUP
INVOKESPECIAL (User$CREATOR, <init>, ()V)
PUTSTATIC (CREATOR, LUser$CREATOR;)
RETURN
}
public void <init>(SerializableSimple p0, SerializableSimple p1)
public final int describeContents()
public final SerializableSimple getNotNull()
public final SerializableSimple getNullable()
public final void writeToParcel(android.os.Parcel p0, int p1) {
LABEL (L0)
ALOAD (1)
LDC (parcel)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (notNull, LSerializableSimple;)
INVOKEVIRTUAL (android/os/Parcel, writeSerializable, (LSerializableSimple;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (nullable, LSerializableSimple;)
INVOKEVIRTUAL (android/os/Parcel, writeSerializable, (LSerializableSimple;)V)
RETURN
LABEL (L1)
}
}
@@ -0,0 +1,7 @@
// CURIOUS_ABOUT writeToParcel, createFromParcel, <clinit>
import kotlinx.android.parcel.*
import android.os.Parcelable
@MagicParcel
class User(val firstName: String, val lastName: String, val age: Int, val isProUser: Boolean) : Parcelable
@@ -0,0 +1,82 @@
public static class User$CREATOR : java/lang/Object, android/os/Parcelable$Creator {
public void <init>()
public final User createFromParcel(android.os.Parcel p0) {
LABEL (L0)
ALOAD (1)
LDC (in)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
NEW
DUP
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readString, ()Ljava/lang/String;)
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readString, ()Ljava/lang/String;)
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readInt, ()I)
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readInt, ()I)
INVOKESPECIAL (User, <init>, (Ljava/lang/String;Ljava/lang/String;IZ)V)
ARETURN
LABEL (L1)
}
public final User[] newArray(int p0)
}
public final class User : java/lang/Object, android/os/Parcelable {
public final static User$CREATOR CREATOR
private final int age
private final java.lang.String firstName
private final boolean isProUser
private final java.lang.String lastName
static void <clinit>() {
NEW
DUP
INVOKESPECIAL (User$CREATOR, <init>, ()V)
PUTSTATIC (CREATOR, LUser$CREATOR;)
RETURN
}
public void <init>(java.lang.String p0, java.lang.String p1, int p2, boolean p3)
public final int describeContents()
public final int getAge()
public final java.lang.String getFirstName()
public final java.lang.String getLastName()
public final boolean isProUser()
public final void writeToParcel(android.os.Parcel p0, int p1) {
LABEL (L0)
ALOAD (1)
LDC (parcel)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (firstName, Ljava/lang/String;)
INVOKEVIRTUAL (android/os/Parcel, writeString, (Ljava/lang/String;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (lastName, Ljava/lang/String;)
INVOKEVIRTUAL (android/os/Parcel, writeString, (Ljava/lang/String;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (age, I)
INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
ALOAD (1)
ALOAD (0)
GETFIELD (isProUser, Z)
INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
RETURN
LABEL (L1)
}
}
@@ -0,0 +1,6 @@
// CURIOUS_ABOUT writeToParcel
import kotlinx.android.parcel.*
@MagicParcel
class Test(val names: List<String>)
@@ -0,0 +1,50 @@
public static class Test$CREATOR : java/lang/Object, android/os/Parcelable$Creator {
public void <init>()
public final Test createFromParcel(android.os.Parcel p0)
public final Test[] newArray(int p0)
}
public final class Test : java/lang/Object {
public final static Test$CREATOR CREATOR
private final java.util.List names
static void <clinit>()
public void <init>(java.util.List p0)
public final int describeContents()
public final java.util.List getNames()
public final void writeToParcel(android.os.Parcel p0, int p1) {
LABEL (L0)
ALOAD (1)
LDC (parcel)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (names, Ljava/util/List;)
DUP_X1
INVOKEINTERFACE (java/util/Collection, size, ()I)
INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
INVOKEINTERFACE (java/util/Collection, iterator, ()Ljava/util/Iterator;)
LABEL (L1)
DUP
INVOKEINTERFACE (java/util/Iterator, hasNext, ()Z)
IFEQ (L2)
DUP
INVOKEINTERFACE (java/util/Iterator, next, ()Ljava/lang/Object;)
ALOAD (1)
SWAP
CHECKCAST
INVOKEVIRTUAL (android/os/Parcel, writeString, (Ljava/lang/String;)V)
GOTO (L1)
LABEL (L2)
POP
RETURN
LABEL (L3)
}
}
@@ -0,0 +1,12 @@
// CURIOUS_ABOUT writeToParcel, createFromParcel
import kotlinx.android.parcel.*
import android.os.Parcelable
import android.util.Size
import android.util.SizeF
@MagicParcel
data class Test(val size: Size, val nullable: Size?) : Parcelable
@MagicParcel
data class TestF(val size: SizeF, val nullable: SizeF?) : Parcelable
@@ -0,0 +1,179 @@
public static class Test$CREATOR : java/lang/Object, android/os/Parcelable$Creator {
public void <init>()
public final Test createFromParcel(android.os.Parcel p0) {
LABEL (L0)
ALOAD (1)
LDC (in)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
NEW
DUP
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readSize, ()Landroid/util/Size;)
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readInt, ()I)
IFEQ (L2)
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readSize, ()Landroid/util/Size;)
GOTO (L3)
LABEL (L2)
ACONST_NULL
LABEL (L3)
INVOKESPECIAL (Test, <init>, (Landroid/util/Size;Landroid/util/Size;)V)
ARETURN
LABEL (L4)
}
public final Test[] newArray(int p0)
}
public final class Test : java/lang/Object, android/os/Parcelable {
public final static Test$CREATOR CREATOR
private final android.util.Size nullable
private final android.util.Size size
static void <clinit>()
public void <init>(android.util.Size p0, android.util.Size p1)
public final android.util.Size component1()
public final android.util.Size component2()
public final Test copy(android.util.Size p0, android.util.Size p1)
public static Test copy$default(Test p0, android.util.Size p1, android.util.Size p2, int p3, java.lang.Object p4)
public final int describeContents()
public boolean equals(java.lang.Object p0)
public final android.util.Size getNullable()
public final android.util.Size getSize()
public int hashCode()
public java.lang.String toString()
public final void writeToParcel(android.os.Parcel p0, int p1) {
LABEL (L0)
ALOAD (1)
LDC (parcel)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (size, Landroid/util/Size;)
INVOKEVIRTUAL (android/os/Parcel, writeSize, (Landroid/util/Size;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (nullable, Landroid/util/Size;)
DUP
IFNULL (L1)
ALOAD (1)
LDC (1)
INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
INVOKEVIRTUAL (android/os/Parcel, writeSize, (Landroid/util/Size;)V)
GOTO (L2)
LABEL (L1)
POP
LDC (0)
INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
LABEL (L2)
RETURN
LABEL (L3)
}
}
public static class TestF$CREATOR : java/lang/Object, android/os/Parcelable$Creator {
public void <init>()
public final TestF createFromParcel(android.os.Parcel p0) {
LABEL (L0)
ALOAD (1)
LDC (in)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
NEW
DUP
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readSizeF, ()Landroid/util/SizeF;)
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readInt, ()I)
IFEQ (L2)
ALOAD (1)
INVOKEVIRTUAL (android/os/Parcel, readSizeF, ()Landroid/util/SizeF;)
GOTO (L3)
LABEL (L2)
ACONST_NULL
LABEL (L3)
INVOKESPECIAL (TestF, <init>, (Landroid/util/SizeF;Landroid/util/SizeF;)V)
ARETURN
LABEL (L4)
}
public final TestF[] newArray(int p0)
}
public final class TestF : java/lang/Object, android/os/Parcelable {
public final static TestF$CREATOR CREATOR
private final android.util.SizeF nullable
private final android.util.SizeF size
static void <clinit>()
public void <init>(android.util.SizeF p0, android.util.SizeF p1)
public final android.util.SizeF component1()
public final android.util.SizeF component2()
public final TestF copy(android.util.SizeF p0, android.util.SizeF p1)
public static TestF copy$default(TestF p0, android.util.SizeF p1, android.util.SizeF p2, int p3, java.lang.Object p4)
public final int describeContents()
public boolean equals(java.lang.Object p0)
public final android.util.SizeF getNullable()
public final android.util.SizeF getSize()
public int hashCode()
public java.lang.String toString()
public final void writeToParcel(android.os.Parcel p0, int p1) {
LABEL (L0)
ALOAD (1)
LDC (parcel)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (size, Landroid/util/SizeF;)
INVOKEVIRTUAL (android/os/Parcel, writeSizeF, (Landroid/util/SizeF;)V)
ALOAD (1)
ALOAD (0)
GETFIELD (nullable, Landroid/util/SizeF;)
DUP
IFNULL (L1)
ALOAD (1)
LDC (1)
INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
INVOKEVIRTUAL (android/os/Parcel, writeSizeF, (Landroid/util/SizeF;)V)
GOTO (L2)
LABEL (L1)
POP
LDC (0)
INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
LABEL (L2)
RETURN
LABEL (L3)
}
}