package Ġcom . w ary o zh . simple step counter . view models Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mediator LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . w ary o zh . simple step counter . database . Walk Day Ċ import Ġcom . w ary o zh . simple step counter . repositories . Stats Repository Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Job Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠStats ViewModel Ġ@ Inject Ġconstructor ( private Ġval Ġrepository : ĠStats Repository ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠviewModel Job Ġ= ĠJob () ĊĠĠĠ Ġprivate Ġval ĠviewModel Scope Ġ= ĠCor outine Scope ( Dispatch ers . Main Ġ+ ĠviewModel Job ) ĊĊĠĠĠ Ġval Ġwalk Days : ĠLive Data < List < Walk Day >> Ġ= Ġrepository . getAll Days () ĊĊĠĠĠ Ġval Ġno Data Visibility Ġ= ĠMed iator LiveData < Int >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġno Data Visibility . add Source ( walk Days ) Ġ{ Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno Data Visibility . value Ġ= Ġif Ġ( data . isEmpty ()) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear Database () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . clear Database () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ ĠviewModel Job . cancel () ĊĠĠĠ Ġ} Ċ } Ċ