package Ġcom . th k . se v end ays Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroidx . activity . Component Activity Ċ import Ġandroidx . activity . compose . setContent Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . compose . animation . Experimental Animation Api Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Surface Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Experimental Compose Ui Api Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . Nav Host Controller Ċ import Ġandroidx . navigation . Nav Type Ċ import Ġandroidx . navigation . compose . Nav Host Ċ import Ġandroidx . navigation . compose . comp osable Ċ import Ġandroidx . navigation . compose . remember Nav Controller Ċ import Ġandroidx . navigation . nav Argument Ċ import Ġcom . th k . se v end ays . data . Challenge Ċ import Ġcom . th k . se v end ays . data . Challenge ViewModel Ċ import Ġcom . th k . se v end ays . ui . Se ven Days Home Ċ import Ġcom . th k . se v end ays . ui . theme . Se ven Days Theme Ċ import Ġcom . th k . se v end ays . utils . navigate To Detail Ċ Ċ @ Experimental Compose Ui Api Ċ @ Experimental Animation Api Ċ class ĠMainActivity Ġ: ĠComponent Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġchallenge ViewModel Ġby Ġview Models < Challenge ViewModel >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSe ven Days App ( challenge ViewModel Ġ= Ġchallenge ViewModel ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġprivate Ġfun ĠSe ven Days App ( challenge ViewModel : ĠChallenge ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSe ven Days Theme Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠA Ġsurface Ġcontainer Ġusing Ġthe Ġ' background ' Ġcolor Ġfrom Ġthe Ġtheme ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSurface ( color Ġ= ĠMaterial Theme . colors . background ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSe ven Days Nav Host ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchallenges Ġ= Ġchallenge ViewModel . challenges , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Add Challenge Ġ= Ġchallenge ViewModel :: add Challenge ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġprivate Ġfun ĠSe ven Days Nav Host ( challenges : ĠList < Challenge >, Ġon Add Challenge : Ġ( Challenge ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnav Controller Ġ= Ġremember Nav Controller () ĊĊĠĠĠĠĠĠĠ ĠNav Host ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller Ġ= Ġnav Controller , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Destination Ġ= ĠSe ven Days Screen . Home . name ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġë©Ķ ìĿ¸ Ġë¦¬ ìĬ¤íĬ¸ ĠíĻ Ķ ë©´ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp osable ( route Ġ= ĠSe ven Days Screen . Home . name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSe ven Days Home ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchallenges Ġ= Ġchallenges , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Add Challenge Ġ= Ġon Add Challenge , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Challenge Click Ġ= Ġ{ Ġnav Controller . navigate To Detail ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠëıĦ ìłĦ Ġìĥģ ìĦ¸ ĠíĻ Ķ ë©´ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomp osable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= Ġ"${ Se ven Days Screen . Detail . name }/{ id }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Argument (" id ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠNav Type . StringType ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġentry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġentry . arguments ?. getString (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġid Ġ?: Ġ" null ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }