/** Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠF al ay e ĠI yan u ol u wa . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . tail or fit . android . tail or fit app . customer Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . tail or fit . android . base . Base ViewModel Ċ import Ġcom . tail or fit . android . network utils . Result Ċ import Ġcom . tail or fit . android . network utils . Loading Status Ċ import Ġcom . tail or fit . android . network utils . dispose By Ċ import Ġcom . tail or fit . android . tail or fit app . Prefs Value Helper Ċ import Ġcom . tail or fit . android . tail or fit app . models . local . KeyValue Ċ import Ġcom . tail or fit . android . tail or fit app . models . request . Create Customer Request Ċ import Ġcom . tail or fit . android . tail or fit app . models . response . Create Customer Response Ċ import Ġcom . tail or fit . android . tail or fit app . repositories . Customer Repository Ċ import Ġio . reactivex . rx kotlin . subscribe By Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠAdd Customer ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate ĊĠĠĠ Ġval Ġcustomer Repository : ĠCustomer Repository , ĊĠĠĠ Ġprivate Ġval Ġprefs Value Helper : ĠP refs Value Helper Ċ ) Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ create Customer Response Ġ= ĠMutable LiveData < Create Customer Response >() ĊĊĠĠĠ Ġval Ġcreate Customer Response : ĠLive Data < Create Customer Response > Ġ= Ġ_ create Customer Response ĊĊĠĠĠ Ġprivate Ġval Ġ_ gender Menu List Ġ= ĠMutable LiveData < List < KeyValue >>() ĊĠĠĠ Ġval Ġgender Menu List : ĠLive Data < List < KeyValue >> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ gender Menu List ĊĊĠĠĠ Ġfun Ġget Gender () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ gender Menu List . value Ġ= Ġcustomer Repository . g enders () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Customer ( create Customer Request : ĠCreate Customer Request ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ loading Status . value Ġ= ĠLoading Status . Loading (" Adding ĠCustomer , Ġplease Ġwait ") ĊĠĠĠĠĠĠĠ Ġcustomer Repository . create Customer ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprefs Value Helper . get AccessToken () !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Customer Request ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe By Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprefs Value Helper . set CustomerId ( it . data . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ create Customer Response . value Ġ= Ġit . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ loading Status . value Ġ= ĠLoading Status . Success ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Error Ġ-> Ġ_ loading Status . value Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLoading Status . Error ( it . errorCode , Ġit . errorMessage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. dispose By ( dispose Bag ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclean Up Observable s () Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ify LiveData Values ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ create Customer Response , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ loading Status , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ gender Menu List ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd All LiveData To Observable s List () Ġ{ ĊĠĠĠĠĠĠĠ Ġadd All LiveData To Observable s List ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Customer Response , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Status , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgender Menu List ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ