package Ġcom . alex zh . co ff eed rink s . ui . screen . co ff eed rink s Ċ Ċ import Ġandroidx . compose . foundation . click able Ċ import Ġandroidx . compose . foundation . layout . Box Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . foundation . lazy . items Ċ import Ġandroidx . compose . material . Icon Ċ import Ġandroidx . compose . material . IconButton Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Surface Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . material . Top AppBar Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Image Bitmap Ċ import Ġandroidx . compose . ui . graphics . p ainter . Bitmap Painter Ċ import Ġandroidx . compose . ui . res . image Resource Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġcom . alex zh . co ff eed rink s . R Ċ import Ġcom . alex zh . co ff eed rink s . ui . screen . co ff eed rink s . model . C offee Dr ink Item Ċ import Ġcom . alex zh . co ff eed rink s . ui . screen . co ff eed rink s . model . C offee Dr inks State Ċ import Ġcom . alex zh . co ff eed rink s . ui . screen . co ff eed rink s . model . Display ing Options Ċ Ċ @ Composable Ċ fun ĠShow Loading C offee Dr inks Screen () Ġ{ ĊĠĠĠ Ġ// ĠTODO : Ġimplement Ġit Ċ } Ċ Ċ @ Composable Ċ fun ĠShow Success C offee Dr inks Screen ( ĊĠĠĠ Ġcoffee Dr inks State : ĠC offee Dr inks State , ĊĠĠĠ ĠviewModel : ĠC offee Dr inks ViewModel , ĊĠĠĠ Ġon Order C offee Dr inks MenuItem : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġon C offee Dr ink Clicked : Ġ( C offee Dr ink Item ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠC offee Dr inks Screen UI ( ĊĠĠĠĠĠĠĠ Ġcoffee Dr inks State Ġ= Ġcoffee Dr inks State , ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠviewModel , ĊĠĠĠĠĠĠĠ Ġon Order C offee Dr inks MenuItem , ĊĠĠĠĠĠĠĠ Ġon C offee Dr ink Clicked ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠShow Error C offee Dr inks Screen () Ġ{ ĊĠĠĠ Ġ// ĠTODO : Ġimplement Ġit Ċ } Ċ Ċ @ Composable Ċ fun ĠC offee Dr inks Screen UI ( ĊĠĠĠ Ġcoffee Dr inks State : ĠC offee Dr inks State , ĊĠĠĠ ĠviewModel : ĠC offee Dr inks ViewModel , ĊĠĠĠ Ġon Order C offee Dr inks MenuItem : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġon C offee Dr ink Clicked : Ġ( C offee Dr ink Item ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠSurface Ġ{ ĊĠĠĠĠĠĠĠ ĠColumn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC offee Dr ink AppBar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoffee Dr inks State . display ing Option , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange Display Option Ġ= Ġ{ ĠviewModel . change Display ing Option () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Order C offee Dr inks MenuItem Ġ= Ġ{ Ġon Order C offee Dr inks MenuItem () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC offee Dr ink List ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoffee Dr inks State Ġ= Ġcoffee Dr inks State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon C offee Dr ink Clicked Ġ= Ġ{ Ġcoffee Dr ink Ġ-> Ġon C offee Dr ink Clicked ( coffee Dr ink ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon F avour ite StateChanged Ġ= Ġ{ ĠviewModel . change F avour ite State ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠC offee Dr ink AppBar ( ĊĠĠĠ Ġdisplaying Option : ĠDisplay ing Options , ĊĠĠĠ ĠonChange Display Option : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġon Order C offee Dr inks MenuItem : Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠTop AppBar ( ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" C offee ĠD rink s ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . h 6 . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . colors . on Primary ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠMaterial Theme . colors . primary , ĊĠĠĠĠĠĠĠ Ġactions Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Button ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĠonChange Display Option () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= ĠBitmap Painter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Bitmap . image Resource ( id Ġ= Ġif Ġ( display ing Option Ġ== ĠDisplay ing Options . CAR DS ) ĠR . drawable . ic _ list _ white Ġelse ĠR . drawable . ic _ extended _ list _ white ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġstring Resource ( R . string . action _ show _ detailed _ cards ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt int Ġ= ĠMaterial Theme . colors . on Primary ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Button ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġon Order C offee Dr inks MenuItem () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= ĠBitmap Painter ( Image Bitmap . image Resource ( id Ġ= ĠR . drawable . ic _ order _ white )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt int Ġ= ĠMaterial Theme . colors . on Primary , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġstring Resource ( R . string . action _ order _ coffee _ dr inks ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠC offee Dr ink List ( ĊĠĠĠ Ġcoffee Dr inks State : ĠC offee Dr inks State , ĊĠĠĠ Ġon C offee Dr ink Clicked : Ġ( C offee Dr ink Item ) Ġ-> ĠUnit , ĊĠĠĠ Ġon F avour ite StateChanged : Ġ( C offee Dr ink Item ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠLazy Column Ġ{ ĊĠĠĠĠĠĠĠ Ġitems ( items Ġ= Ġcoffee Dr inks State . coffee Dr inks ) Ġ{ Ġcoffee Dr ink Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . click able ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon C offee Dr ink Clicked ( coffee Dr ink ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( coffee Dr inks State . display ing Option Ġ== ĠDisplay ing Options . CAR DS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBox ( modifier Ġ= ĠModifier . padding ( 8 . dp )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC offee Dr ink Detailed Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoffee Dr ink Ġ= Ġcoffee Dr ink , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon F avour ite StateChanged Ġ= Ġ{ Ġon F avour ite StateChanged ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC offee Dr ink List ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoffee Dr ink Ġ= Ġcoffee Dr ink , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon F avour ite StateChanged Ġ= Ġ{ Ġon F avour ite StateChanged ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ