package Ġcom . dev _ vl ad . car _ v . view _ models . welcome Ċ Ċ import Ġandroidx . lifecycle .* Ċ import Ġcom . dev _ vl ad . car _ v . models . persistence . auth . User Entity Ċ import Ġcom . dev _ vl ad . car _ v . models . persistence . auth . User Repo Ċ import Ġcom . dev _ vl ad . car _ v . util . DEFAULT _ USER _ NAME Ċ import Ġcom . dev _ vl ad . car _ v . util . My Logger Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch ĊĊ Ċ class ĠWelcome ViewModel ( private Ġval Ġrepository : ĠUser Repo ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠWelcome ViewModel :: class . java . simple Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġerror Occurred Ġ= ĠMutable LiveData < Boolean >( false ) ĊĊĠĠĠ Ġval Ġuser State : ĠLive Data < List < User Entity >> Ġ= Ġrepository . user . as LiveData () ĊĊĠĠĠ Ġprivate Ġvar Ġuser Entity : ĠUser Entity ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġupdate User ( set As Buyer : ĠBoolean , Ġset As S eller : ĠBoolean , Ġuser Given Name : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠMy Logger . log This ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTAG , Ġ" update User ()", Ġ" params Ġis Buyer Ġ$ set As Buyer Ġis S eller Ġ$ set As S eller " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġuser Entity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew UserData Ġ= ĠUser Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġit . userId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Location Country Ġ= Ġit . user Location Country , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Code Ġ= Ġit . user Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Phone Ġ= Ġit . user Phone , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserName Ġ= Ġuser Given Name Ġ?: ĠDEFAULT _ USER _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Joined Ġ= Ġit . date Joined , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis S eller Ġ= Ġset As S eller , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Dealer Ġ= Ġset As Buyer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis User Updated Ġ= Ġrepository . update User In Server ( user Ġ= Ġnew UserData ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is User Updated ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . update User ( user Ġ= Ġnew UserData ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Occurred . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset UserData ( user : ĠUser Entity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġuser Entity Ġ= Ġuser ĊĠĠĠ Ġ} Ċ }