package Ġcom . ark iv an ov . de compose . state keeper Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Parcel Ċ import Ġkotlin . reflect . K Class Ċ Ċ actual Ġclass ĠParcel able Container Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġbundle : ĠBundle Ċ ) Ġ: ĠParcel able Ġ{ ĊĊĠĠĠ Ġactual Ġconstructor () Ġ: Ġthis ( Bundle ()) ĊĊĠĠĠ Ġprivate Ġconstructor ( parcel : ĠParcel ) Ġ: Ġthis ( parcel . read Bundle ( Bundle :: class . java . class Loader ) Ġ?: ĠBundle ()) ĊĊĠĠĠ Ġactual Ġfun Ġ< T Ġ: ĠParcel able > Ġconsume ( clazz : ĠK Class < out ĠT >): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġbundle . class Loader Ġ= Ġclazz . java . class Loader ĊĠĠĠĠĠĠĠ Ġval Ġvalue : ĠT ? Ġ= Ġbundle . get Parcelable ( KEY ) ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . remove ( KEY ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġfun Ġset ( value : ĠParcel able ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġbundle . put Parcelable ( KEY , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠwriteTo Parcel ( parcel : ĠParcel , Ġflags : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġparcel . write Bundle ( bundle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdescribe Contents (): ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġcompanion Ġobject ĠCRE ATOR Ġ: Ġandroid . os . Parcelable . Creator < Parcelable Container > Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠKEY Ġ= Ġ" key " ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate From Parcel ( parcel : ĠParcel ): ĠParcel able Container Ġ= ĠParcel able Container ( parcel ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġnew Array ( size : ĠInt ): ĠArray < Parcelable Container ?> Ġ= ĠarrayOf Null s ( size ) ĊĠĠĠ Ġ} Ċ } Ċ