package Ġcom . j sh v arts . mos by m vi Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġcom . h ann es dor fm ann . mos by 3 . m vi . M vi Activity Ċ import Ġcom . jak ew h art on . r xb ind ing 2 . view . click s Ċ import Ġcom . j sh v arts . mos by m vi . domain . HelloWorld ViewState Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠM vi Activity < HelloWorld View , ĠHello World Presenter >(), ĠHello World View Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Presenter () Ġ= ĠHello World Presenter () ĊĊĠĠĠ Ġoverride Ġfun Ġsay HelloWorld Intent () Ġ= Ġhello World Button . click s () ĊĊĠĠĠ Ġoverride Ġfun Ġrender ( state : ĠHello World ViewState ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHello World ViewState . Loading State Ġ-> Ġrender Loading State () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHello World ViewState . Data State Ġ-> Ġrender Data State ( state ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHello World ViewState . Error State Ġ-> Ġrender Error State ( state ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrender Loading State () Ġ{ ĊĠĠĠĠĠĠĠ Ġloading Indicator . visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġhello World Text view . visible Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrender Data State ( data State : ĠHello World ViewState . Data State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġloading Indicator . visible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġhello World Text view . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġdata State . greeting ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrender Error State ( error State : ĠHello World ViewState . Error State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġloading Indicator . visible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġhello World Text view . visible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" error Ġ${ error State . error }", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} Ċ } Ċ