package Ġcom . rol ando as mat . aji . ui Ċ Ċ import Ġcom . rol ando as mat . aji . model . Recipe Ċ Ċ data Ġclass ĠRe cipes GridView Ui Model ( val Ġsections : ĠList < Recipe Section View Ui Model >) Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠSort Ġ{ ĊĠĠĠĠĠĠĠ ĠBY _ CATEG ORIES , ĊĠĠĠĠĠĠĠ ĠBY _ TITLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom ( recipes : ĠList < Recipe >, Ġsort : ĠSort Ġ= ĠSort . BY _ TITLE Ġ): ĠRe cipes GridView Ui Model Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsections Ġ= Ġwhen ( sort ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSort . BY _ CATEG ORIES Ġ-> ĠsortBy Category ( recipes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSort . BY _ TITLE Ġ-> ĠsortBy Title ( recipes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRe cipes GridView Ui Model ( sections ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSort Ġthe Ġrecipes Ġby Ġcategory Ġin Ġthe Ġfollowing Ġorder : ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- ĠBreak fast ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- ĠAp pet izers ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- ĠEnt re es ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- ĠD ess ert ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- ĠD rink s ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠsortBy Category ( recipes : ĠList < Recipe >): ĠList < Recipe Section View Ui Model > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsections Ġ= Ġmutable ListOf < Recipe Section View Ui Model >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġrecipes . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRecipe Section View Ui Model . Entry . from ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsection Ġ= ĠRecipe Section View Ui Model . Grid (" Items ", Ġitems ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsections . add ( section ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsections ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠsortBy Title ( recipes : ĠList < Recipe >): ĠList < Recipe Section View Ui Model > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentries Ġ= Ġrecipes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted By Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRecipe Section View Ui Model . Entry . from ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsection Ġ= ĠRecipe Section View Ui Model . Grid (" Recipes ", Ġentries ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( section ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }