package Ġcom . example . we ath erm v vm . ui . main . facility Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . example . we ath erm v vm . base . Base ViewModel Ċ import Ġcom . example . we ath erm v vm . bean . Facility Bean Ċ import Ġcom . example . we ath erm v vm . bean . Sign Bean Ċ import Ġcom . example . we ath erm v vm . common . Log Utils Ċ import Ġcom . example . we ath erm v vm . common . launch Ċ import Ġcom . example . we ath erm v vm . network . Http Const Ċ import Ġcom . example . we ath erm v vm . store . Login Store Ċ Ċ class ĠFac ility ViewModel Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġlist Ġ= ĠMutable LiveData < List < Facility Bean >>() ĊĠĠĠ Ġval Ġset Facility Ġ= ĠMutable LiveData < Sign Bean >() ĊĠĠĠ Ġval Ġis Login Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġvar Ġposition : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġval Ġlogin Data Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġprivate Ġvar Ġone Login : ĠString Ġ= Ġ"" ĊĊĠĠĠ Ġfun ĠgetAll Facility () Ġ= Ġlaunch ({ ĊĠĠĠĠĠĠĠ Ġload State . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġone Login Ġ= ĠLogin Store . getUserId () ĊĠĠĠĠĠĠĠ Ġif Ġ( Login Store . is Login ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . value Ġ= ĠHttp Const . api Loc a host . getAll Facility ( one Login . to Long ()). api Data () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . value Ġ= ĠHttp Const . api Loc a host . getAll Facility (- 1 L ). api Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġload State . value Ġ= Ġfalse ĊĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠ Ġload State . value Ġ= Ġfalse ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġfun ĠsetUser Facility ( position : ĠInt ) Ġ= Ġlaunch ({ ĊĠĠĠĠĠĠĠ Ġload State . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( Login Store . is Login ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Facility ViewModel . position Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠuserId Ġ= ĠLogin Store . getUserId (). to Long () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfacility Id Ġ= Ġlist . value ! ![ position ]. facility Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcollect Ġ= Ġlist . value ! ![ position ]. collect ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( collect Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Facility . value Ġ= ĠHttp Const . api Loc a host . setUser Facility ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId , Ġfacility Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Facility . value Ġ= ĠHttp Const . api Loc a host . am end User Facility ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId , Ġfacility Id , Ġcollect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Login . value Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġload State . value Ġ= Ġfalse ĊĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠ Ġload State . value Ġ= Ġfalse ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġfun Ġlogin Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Login Store . is Login () Ġ&& Ġone Login . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Data . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġlogin Data . value Ġ= Ġ! Login Store . is Login () Ġ&& Ġone Login . isNotEmpty () ĊĠĠĠ Ġ} Ċ }