package Ġgithub . show ang . kat Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġjava . io . Serializable Ċ import Ġkotlin . properties . ReadOnly Property Ċ import Ġkotlin . reflect . K Property Ċ Ċ fun Ġ< T > ĠAppCompatActivity . extra ( key : ĠString , Ġdefault : ĠT ) Ġ= ĊĠĠĠ Ġobject Ġ: ĠReadOnly Property < AppCompatActivity , ĠT > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Data : ĠT ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠAppCompatActivity , Ġproperty : ĠK Property < *> ): ĠT Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Data Ġ?: Ġwith ( this Ref . intent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( default ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSerializable Ġ-> Ġget Serializable Extra ( key ) Ġ?: Ġdefault ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> ĠgetString Extra ( key ) Ġ?: Ġdefault ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Ġ-> Ġget Int Extra ( key , Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġget Boolean Extra ( key , Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Ġ-> Ġget Long Extra ( key , Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Unknown ĠType ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. cast () Ġassign N Ġ:: m Data ĊĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġ< R > ĠR . cast () Ġ= Ġthis Ġas ĠT ĊĠĠĠ Ġ} Ċ Ċ fun Ġ< T > ĠAppCompatActivity . extra N ( key : ĠString ) Ġ= ĊĠĠĠ Ġobject Ġ: ĠReadOnly Property < AppCompatActivity , ĠT ?> Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Data : ĠT ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠAppCompatActivity , Ġproperty : ĠK Property < *> ): ĠT ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Data Ġ?: Ġwith ( this Ref . intent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( m Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSerializable ? Ġ-> Ġget Serializable Extra ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString ? Ġ-> ĠgetString Extra ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt ? Ġ-> Ġget Int Extra ( key , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean ? Ġ-> Ġget Boolean Extra ( key , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong ? Ġ-> Ġget Long Extra ( key , Ġ 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Unknown ĠType ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. cast () Ġassign Ġ:: m Data ĊĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġ< R > ĠR . cast (): ĠT ? Ġ= Ġthis Ġas ĠT ? ĊĠĠĠ Ġ} ĊĊ Ċ fun Ġ< T > ĠFragment . extra ( key : ĠString , Ġdefault : ĠT ) Ġ= ĊĠĠĠ Ġobject Ġ: ĠReadOnly Property < Fragment , ĠT > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdata : ĠT ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠFragment , Ġproperty : ĠK Property < *> ): ĠT Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ?: Ġarguments ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( default ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSerializable Ġ-> Ġget Serializable ( key ) Ġ?: Ġdefault ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> ĠgetString ( key , Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Ġ-> Ġget Int ( key , Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġget Boolean ( key , Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Ġ-> Ġget Long ( key , Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Unknown ĠType ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. cast () Ġassign N Ġ:: data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow ĠIllegalStateException (" No Ġargument Ġfound ") ĊĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġ< R > ĠR . cast (): ĠT Ġ= Ġthis Ġas ĠT ĊĠĠĠ Ġ} Ċ Ċ fun Ġ< T > ĠFragment . extra N ( key : ĠString ) Ġ= ĊĠĠĠ Ġobject Ġ: ĠReadOnly Property < Fragment , ĠT ?> Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdata : ĠT ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠFragment , Ġproperty : ĠK Property < *> ): ĠT ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ?: Ġarguments ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSerializable ? Ġ-> Ġget Serializable ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString ? Ġ-> ĠgetString ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt ? Ġ-> Ġget Int ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean ? Ġ-> Ġget Boolean ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong ? Ġ-> Ġget Long ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Unknown ĠType ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. cast () Ġassign Ġ:: data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow ĠIllegalStateException (" No Ġargument Ġfound ") ĊĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġ< R > ĠR . cast (): ĠT ? Ġ= Ġthis Ġas ĠT ? ĊĠĠĠ Ġ}