package Ġcom . w lm . mv vm _ wan android . view model Ċ Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . w lm . mv vm _ wan android . base . Base ViewModel Ċ import Ġcom . w lm . mv vm _ wan android . common . Constant Ċ import Ġcom . w lm . mv vm _ wan android . common . utils . Shared Prefs Ċ import Ġcom . w lm . mv vm _ wan android . execute Response Ċ import Ġcom . w lm . mv vm _ wan android . repository . Login Repository Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠMain ViewModel Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogin Repository Ġby Ġlazy Ġ{ ĠLogin Repository () Ġ} ĊĠĠĠ Ġprivate Ġvar Ġis Login Ġby ĠShared Prefs ( Constant . IS _ LOGIN , Ġfalse ) ĊĊĠĠĠ Ġfun Ġlogout () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Catch ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Block Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġlogin Repository . logout () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Response ( result , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Login Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }