package Ġy 2 k . l ith o . el mis h . examples Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Strict Mode Ċ import Ġcom . facebook . l ith o . Component . Container Builder Ċ import Ġcom . facebook . y oga . Y oga Edge . ALL Ċ import Ġkotlinx . coroutines . experimental . Common Pool Ċ import Ġkotlinx . coroutines . experimental . with Context Ċ import Ġkotlinx . types . Result Ċ import Ġkotlinx . types . Result . Error Ċ import Ġkotlinx . types . Result . Ok Ċ import Ġy 2 k . l ith o . el mis h . examples . Example List . Model Ċ import Ġy 2 k . l ith o . el mis h . examples . Example List . Msg Ċ import Ġy 2 k . l ith o . el mis h . examples . Example List . Msg . Example Loaded Ċ import Ġy 2 k . l ith o . el mis h . examples . Example List . Msg . Open Example Ċ import Ġy 2 k . l ith o . el mis h . examples . Functions . Example Ċ import Ġy 2 k . l ith o . el mis h . examples . common . Class Analyzer Ċ import Ġy 2 k . l ith o . el mis h . examples . common . Log . log Ċ import Ġy 2 k . l ith o . el mis h . examples . common . Navigation Ċ import Ġy 2 k . l ith o . el mis h . examples . common . view Static List Ċ import Ġy 2 k . l ith o . el mis h . experimental .* Ċ import Ġjava . io . Serializable Ċ import Ġjava . lang . reflect . Modifier Ċ Ċ class ĠExample List Ġ: ĠEl m Functions < Model , ĠMsg > Ġ{ ĊĊĠĠĠ Ġclass ĠModel ( val Ġexamples : ĠList < Example >) ĊĠĠĠ Ġsealed Ġclass ĠMsg Ġ{ ĊĠĠĠĠĠĠĠ Ġclass ĠExample Loaded ( val Ġx : ĠResult < List < Example >, ĠException >) Ġ: ĠMsg () ĊĠĠĠĠĠĠĠ Ġclass ĠOpen Example ( val Ġe : ĠExample ) Ġ: ĠMsg () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit (): ĠPair < Model , ĠCmd < Msg >> Ġ= ĊĠĠĠĠĠĠĠ ĠModel ( emptyList ()) Ġto ĠCmd . from Context ({ ĠFunctions . find Examples ( it ) Ġ}, Ġ:: Example Loaded ) ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( model : ĠModel , Ġmsg : ĠMsg ): ĠPair < Model , ĠCmd < Msg >> Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( msg ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠExample Loaded Ġ-> Ġwhen Ġ( msg . x ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠOk Ġ-> ĠModel ( msg . x . value ) Ġto ĠCmd . none () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠError Ġ-> Ġlog ( msg . x . error , Ġmodel Ġto ĠCmd . none ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠOpen Example Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Ġto ĠCmd . from Context ({ ĠNavigation . open < Example Activity >( msg . e , Ġit ) Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠContainer Builder <* >. view ( model : ĠModel ) Ġ= ĊĠĠĠĠĠĠĠ Ġcolumn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Static List ( model . examples ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Item ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠContainer Builder <* >. view Item ( x : ĠExample ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpadding Dip ( ALL , Ġ 8 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmargin Dip ( ALL , Ġ 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbackground Res ( R . drawable . button _ simple ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext ( x . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Sp ( 2 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick ( Open Example ( x )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ object ĠFunctions Ġ{ ĊĊĠĠĠ Ġclass ĠExample ( val Ġname : ĠString , Ġval Ġcls : ĠClass < Elm Functions < *, Ġ* >>) Ġ: ĠSerializable ĊĊĠĠĠ Ġsuspend Ġfun Ġfind Examples ( context : ĠContext ): ĠList < Example > Ġ= ĊĠĠĠĠĠĠĠ Ġwith Context ( Common Pool ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClass Analyzer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Classes In Package ( context , Ġjava Class .` package `) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let (:: filter Examples ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfilter Examples ( classes : ĠList < Class <* >> ): ĠList < Example > Ġ= ĊĠĠĠĠĠĠĠ Ġclasses ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter (:: check It Elm Functions ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Is Instance < Class < Elm Functions < *, Ġ* >> >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠExample ( name Ġ= Ġget DisplayName ( it ), Ġcls Ġ= Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĊĠĠĠ Ġprivate Ġfun Ġcheck It Elm Functions ( cls : ĠClass < *> ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ ĠEl m Functions :: class . java . isAssignableFrom ( cls ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġcls . construct ors . any Ġ{ Ġit . parameter Types . isEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& ĠModifier . is Public ( cls . getDeclared Constructor (). modifiers ) ĊĊĠĠĠ Ġprivate Ġfun Ġget DisplayName ( cls : ĠClass < *> ): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġ"${ cls . simple Name }. kt " Ċ } Ċ Ċ class ĠExample List Activity Ġ: ĠActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠStrict Mode . enable Defaults () ĊĠĠĠĠĠĠĠ Ġprogram < Example List >() ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠExample Activity Ġ: ĠActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠStrict Mode . enable Defaults () ĊĠĠĠĠĠĠĠ Ġval Ġexample Ġ= ĠNavigation . get Argument ( intent ) ĊĠĠĠĠĠĠĠ Ġif Ġ( example Ġ!= Ġnull ) Ġprogram ( example . cls ) ĊĠĠĠĠĠĠĠ Ġelse Ġfinish () ĊĠĠĠ Ġ} Ċ }