package Ġco . en . arch x . sample . ui . activity . main . medium Ċ Ċ import Ġco . en . arch x . arch x . medium . State Ċ import Ġco . en . arch x . sample . app . domain . Red dit Child Ċ import Ġco . en . arch x . sample . ext . Post Source Ċ Ċ data Ġclass ĠMain State ( val Ġsource : ĠPost Source , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposts : ĠList < Red dit Child >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠisLoading : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerror : ĠThrowable ?) Ġ: ĠState Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġinit () Ġ= ĠMain State ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= ĠPost Source . Top , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposts Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpost Loaded ( posts : ĠList < Red dit Child >): ĠMain State Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpost Loaded ( posts , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmore Post Loaded ( posts : ĠList < Red dit Child >): ĠMain State Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpost Loaded ( posts , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpost Loaded ( posts : ĠList < Red dit Child >, Ġappend : ĠBoolean ): ĠMain State Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Posts Ġ= Ġmutable ListOf < Red dit Child >() ĊĊĠĠĠĠĠĠĠ Ġif ( append ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Posts . addAll ( this . posts ) ĊĊĠĠĠĠĠĠĠ Ġnew Posts . addAll ( posts ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcopy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposts Ġ= Ġnew Posts , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpost Loading ( source : ĠPost Source ): ĠMain State Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcopy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġsource , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpost Error ( throwable : ĠThrowable ): ĠMain State Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcopy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġthrowable ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }