/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// 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 . example . health platform sample . presentation . ui . Total Steps Screen Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . La unched Effect Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . save able . remember Save able Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . platform . Local Context Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . lifecycle . view model . compose . viewModel Ċ import Ġcom . example . health platform sample . data . Health Platform Manager Ċ import Ġcom . example . health platform sample . presentation . components . Total Steps Entry Ċ import Ġjava . util . UUID Ċ Ċ @ Composable Ċ fun ĠTotal Steps Screen ( ĊĠĠĠ Ġhealth Platform Manager : ĠHealth Platform Manager , ĊĠĠĠ ĠonError : Ġ( Context , ĠThrowable ?) Ġ-> ĠUnit , ĊĠĠĠ ĠviewModel : ĠTotal Steps ViewModel Ġ= ĠviewModel ( ĊĠĠĠĠĠĠĠ Ġfactory Ġ= ĠTotal Steps ViewModel Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhealth Platform Manager Ġ= Ġhealth Platform Manager ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ ) Ġ{ ĊĠĠĠ Ġval Ġtotal Steps Ġby ĠviewModel . total Steps ĊĠĠĠ Ġval Ġstate Ġ= ĠviewModel . ui State ĊĠĠĠ Ġval Ġcontext Ġ= ĠLocal Context . current ĊĠĠĠ Ġ// ĠRemember Ġthe Ġlast Ġerror ĠID , Ġsuch Ġthat Ġit Ġis Ġpossible Ġto Ġavoid Ġre - launch ing Ġthe Ġerror ĊĠĠĠ Ġ// Ġnotification Ġfor Ġthe Ġsame Ġerror Ġwhen Ġthe Ġscreen Ġis Ġre composed , Ġor Ġconfiguration Ġchanges Ġetc . ĊĠĠĠ Ġval Ġerror Id Ġ= Ġremember Save able Ġ{ Ġmutable State Of ( UUID . randomUUID ()) Ġ} ĊĊĠĠĠ Ġ// ĠThe Ġ[ Main Model . Ui State ] Ġprovides Ġdetails Ġof Ġwhether Ġthe Ġlast Ġaction Ġwas Ġa Ġsuccess Ġor Ġresulted ĊĠĠĠ Ġ// Ġin Ġan Ġerror . ĠWhere Ġan Ġerror Ġoccurred , Ġfor Ġexample Ġin Ġreading Ġand Ġwriting Ġto ĠHealth ĠPlatform , ĊĠĠĠ Ġ// Ġthe Ġuser Ġis Ġnotified , Ġand Ġwhere Ġthe Ġerror Ġis Ġone Ġthat Ġcan Ġbe Ġre covered Ġfrom , Ġan Ġattempt Ġto ĊĠĠĠ Ġ// Ġdo Ġso Ġis Ġmade . ĊĠĠĠ ĠLa unched Effect ( state ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( state Ġis ĠTotal Steps ViewModel . Ui State . Error Ġ&& Ġerror Id . value Ġ!= Ġstate . uuid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError ( context , Ġstate . exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Id . value Ġ= Ġstate . uuid ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmodifier Ġ= ĠModifier . padding ( 4 . dp ) ĊĠĠĠ ĠTotal Steps Entry ( total Steps , Ġmodifier Ġ= Ġmodifier ) Ċ } Ċ