package Ġcom . native bo ys . password . manager . presentation Ċ Ċ import Ġandroidx . h ilt . Ass isted Ċ import Ġandroidx . h ilt . lifecycle . ViewModel Inject Ċ import Ġandroidx . lifecycle . Saved State Handle Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . live Data Ċ import Ġcom . native bo ys . password . manager . data . Result Ċ import Ġcom . native bo ys . password . manager . data . repositories . items . Item Repository Ċ import Ġjava . lang . Exception Ċ Ċ class ĠItem Overview ViewModel Ġ@ ViewModel Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġitem Repository : ĠItem Repository , ĊĠĠĠ Ġ@ Ass isted Ġprivate Ġval Ġstate : ĠSaved State Handle Ċ ): ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval ĠitemId : ĠString ? Ġ= Ġstate . get < String >(" item _ id ") ĊĊĠĠĠ Ġval Ġitem Fields Content Ġ= Ġlive Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠitemId ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Repository . find Item Fields Content ById ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġemit ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtoggle Item Favorite () Ġ= Ġlive Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsuccess Ġ= ĠitemId ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Repository . toggle Item Favorite ( it ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġemit ( success ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Item () Ġ= Ġlive Data Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Result . Success ( item Repository . delete Item ById ( itemId !! ))) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Result . Error ( e )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }