/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠGoogle ĠInc . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . google . we ar . so y ted . ui Ċ Ċ import Ġandroidx . compose . foundation . layout . Padding Values Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . filled . Account Circle Ċ import Ġandroidx . compose . material . icons . filled . Add Circle Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Experimental Compose Ui Api Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . platform . Local Configuration Ċ import Ġandroidx . compose . ui . platform . Local View Ċ import Ġandroidx . compose . ui . text . style . Text Align Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . we ar . compose . material . Button Ċ import Ġandroidx . we ar . compose . material . Icon Ċ import Ġandroidx . we ar . compose . material . Material Theme Ċ import Ġandroidx . we ar . compose . material . Scaling Lazy Column Ċ import Ġandroidx . we ar . compose . material . Scaling Lazy List State Ċ import Ġandroidx . we ar . compose . material . Text Ċ import Ġandroidx . we ar . compose . material . remember Scaling Lazy List State Ċ import Ġcom . google . ac comp an ist . swiper ef resh . Swipe Refresh Ċ import Ġcom . google . ac comp an ist . swiper ef resh . remember Swipe Refresh State Ċ import Ġcom . google . we ar . so y ted . Remember W ear ViewModel Ċ import Ġcom . google . we ar . so y ted . db . Task And Task Series Ċ import Ġcom . google . we ar . so y ted . util . scroll Handler Ċ Ċ @ Composable Ċ fun ĠIn box Screen ( ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , ĊĠĠĠ Ġscroll State : ĠScaling Lazy List State Ġ= Ġremember Scaling Lazy List State (), ĊĠĠĠ ĠonClick : Ġ( Task And Task Series ) Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ ĠviewModel : ĠRemember W ear ViewModel , ĊĠĠĠ Ġvoice Prompt Query : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġlogin Action : Ġ() Ġ-> ĠUnit , Ċ ) Ġ{ ĊĠĠĠ Ġval Ġtasks Ġ= ĠviewModel . inbox . collect As State ( initial Ġ= ĠlistOf ()). value ĊĊĠĠĠ Ġval Ġis Refresh ing Ġby ĠviewModel . is Refresh ing . collect As State () ĊĊĠĠĠ ĠSw ipe Refresh ( ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġremember Swipe Refresh State ( is Refresh ing ), ĊĠĠĠĠĠĠĠ Ġon Refresh Ġ= Ġ{ ĠviewModel . ref etch All Data () Ġ}, ĊĠĠĠĠĠĠĠ Ġrefresh Trigger Distance Ġ= Ġ 1 6 . dp ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġis LoggedIn Ġby ĠviewModel . auth Repository . is LoggedIn . collect As State () ĊĊĠĠĠĠĠĠĠ ĠIn box Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscroll State Ġ= Ġscroll State , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtasks Ġ= Ġtasks , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= ĠonClick , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvoice Prompt Query Ġ= Ġvoice Prompt Query , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Action Ġ= Ġlogin Action , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis LoggedIn Ġ= Ġis LoggedIn ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Opt In ( Experimental Compose Ui Api :: class ) Ċ @ Composable Ċ fun ĠIn box Screen ( ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , ĊĠĠĠ Ġscroll State : ĠScaling Lazy List State Ġ= Ġremember Scaling Lazy List State (), ĊĠĠĠ Ġtasks : ĠList < Task And Task Series >, ĊĠĠĠ ĠonClick : Ġ( Task And Task Series ) Ġ-> ĠUnit , ĊĠĠĠ Ġvoice Prompt Query : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġlogin Action : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġis LoggedIn : ĠBoolean Ċ ) Ġ{ ĊĠĠĠ Ġval Ġpadding Height Ġ= Ġif Ġ( Local Configuration . current . is Screen Round ) Ġ 2 4 . dp Ġelse Ġ 8 . dp ĊĊĠĠĠ Ġ// ĠActivate Ġscrolling ĊĠĠĠ ĠLocal View . current . request Focus () ĊĊĠĠĠ ĠScaling Lazy Column ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier . scroll Handler ( scroll State ), ĊĠĠĠĠĠĠĠ Ġcontent Padding Ġ= ĠPadding Values ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal Ġ= Ġ 8 . dp , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Ġ= Ġpadding Height , ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġscroll State , ĊĠĠĠĠĠĠĠ Ġhorizontal Alignment Ġ= ĠAlignment . Center H orizontally ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill Max Width ( 1 f ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Task ĠList ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . title 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextAlign Ġ= ĠText Align . Center ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġitem Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! is LoggedIn ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( onClick Ġ= Ġlogin Action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( image Vector Ġ= ĠIcons . Default . Account Circle , Ġcontent Description Ġ= Ġ" Login ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġitems ( tasks . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTask Chip ( task Ġ= Ġtasks [ it ], ĠonClick Ġ= Ġ{ ĠonClick ( tasks [ it ]) Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( is LoggedIn ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( onClick Ġ= Ġvoice Prompt Query ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( image Vector Ġ= ĠIcons . Default . Add Circle , Ġcontent Description Ġ= Ġ" Add ĠTask ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ