package Ġorg . j dc . template . ux . in divid ua led it Ċ Ċ import Ġandroid . arch . lifecycle . ViewModel Ċ import Ġkotlinx . coroutines . experimental . launch Ċ import Ġorg . j dc . template . datasource . database . main . individual . Individual Ċ import Ġorg . j dc . template . datasource . database . main . individual . Individual Dao Ċ import Ġorg . j dc . template . li ved ata . Single Live Event Ċ import Ġorg . j dc . template . util . Coroutine Context Provider Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠIndividual Edit ViewModel Ċ @ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcc : ĠCor outine Context Provider , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġindividual Dao : ĠIndividual Dao Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġvar Ġindividual Ġ= ĠIndividual () ĊĊĠĠĠ Ġval Ġon Individual Loaded Event Ġ= ĠSingle Live Event < Void >() ĊĠĠĠ Ġval Ġon Individual Saved Event Ġ= ĠSingle Live Event < Void >() ĊĊĠĠĠ Ġfun Ġload Individual ( individual Id : ĠLong ) Ġ= Ġlaunch ( cc . common Pool ) Ġ{ ĊĠĠĠĠĠĠĠ Ġindividual Dao . findById ( individual Id )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindividual Ġ= Ġit ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Individual Loaded Event . post Call () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave Individual () Ġ= Ġlaunch ( cc . common Pool ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( individual . id Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindividual Dao . insert ( individual ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindividual Dao . update ( individual ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġon Individual Saved Event . post Call () ĊĠĠĠ Ġ} Ċ }