package Ġcom . bot ig oc ont igo . alf red . areas Ċ Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . TextInput EditText Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . app . AlertDialog Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget .* Ċ import Ġcom . bot ig oc ont igo . alf red . My Preferences ĊĊ Ċ import Ġcom . bot ig oc ont igo . alf red . R Ċ import Ġcom . bot ig oc ont igo . alf red . Services Ċ import Ġcom . bot ig oc ont igo . alf red . backend . Areas Get Callbacks Ċ import Ġcom . bot ig oc ont igo . alf red . backend . Bot ig oc ont igo Api Ċ import Ġcom . bot ig oc ont igo . alf red . storage . db . App Database Ċ import Ġcom . bot ig oc ont igo . alf red . storage . db . dao . Area Dao Ċ import Ġcom . bot ig oc ont igo . alf red . storage . db . entities . Area Ċ import Ġkotlinx . android . synt hetic . main . dialog _ form _ model . view .* Ċ import Ġkotlinx . android . synt hetic . main . fragment _ areas .* Ċ import Ġkotlinx . android . synt hetic . main . fragment _ areas . view .* Ċ import Ġorg . jetbrains . ank o . do Async Ċ import Ġorg . jetbrains . ank o . ui Thread Ċ import Ġjava . util .* ĊĊ Ċ class ĠAre as Fragment Ġ: ĠFragment (), ĠView . OnClickListener { ĊĊĠĠĠ Ġprivate Ġvar Ġexecute Initialize DB : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġvar Ġv frag : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġapi : ĠBot ig oc ont igo Api ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġarea Dao : ĠArea Dao ĊĊĠĠĠ Ġprivate Ġvar Ġmap Models : ĠMap < String ?, ĠString ?> Ġ= Ġempty Map () ĊĠĠĠ Ġprivate Ġvar Ġmodel : ĠArea ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠuserId Ġ= Ġ"" ĊĠĠĠ Ġvar Ġdetail Load : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġarguments ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠApp Database . getInstance ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarea Dao Ġ= Ġdb . area Dao () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId = My Preferences ( context !! ). getUserId () !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLog . i (" USER ID : Ġ", ĠuserId ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġv frag Ġ= Ġinflater . inflate ( R . layout . fragment _ areas , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġload Buttons () ĊĊĠĠĠĠĠĠĠ Ġtoast (" Se leccione Ġun Ġarea Ġpara Ġver Ġel Ġdet alle ") ĊĊĠĠĠĠĠĠĠ Ġval Ġservices Ġ= ĠServices ( in flater . context ) ĊĠĠĠĠĠĠĠ Ġapi Ġ= Ġservices . bot ig oc ont igo Api () ĊĊĠĠĠĠĠĠĠ Ġapi . areas GetAll (). call ( Areas Get Callbacks (:: load To DB )) ĊĠĠĠĠĠĠĠ Ġreturn Ġv frag ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġinterface Ġmust Ġbe Ġimplemented Ġby Ġactivities Ġthat Ġcontain Ġthis ĊĠĠĠĠ Ġ* Ġfragment Ġto Ġallow Ġan Ġinteraction Ġin Ġthis Ġfragment Ġto Ġbe Ġcommunic ated ĊĠĠĠĠ Ġ* Ġto Ġthe Ġactivity Ġand Ġpotentially Ġother Ġfragments Ġcontained Ġin Ġthat ĊĠĠĠĠ Ġ* Ġactivity . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠOn Fragment Interaction Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠUpdate Ġargument Ġtype Ġand Ġname ĊĠĠĠĠĠĠĠ Ġfun Ġon Fragment Interaction ( uri : ĠUri ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( spinner _ mode los . selected Item == null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Se leccione Ġun Ġmodelo ") ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġswitch Area ( v !!. id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtoast ( msg : String ){ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġmsg , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġswitch Fragment ( area Name : ĠString ){ ĊĠĠĠĠĠĠĠ Ġ// Camb io Ġal ĠFragment Ġde ĠDet alle Ġde Ġarea ĊĠĠĠĠĠĠĠ Ġexecute Initialize DB Ġ= Ġfalse ĊĠĠĠĠĠĠĠ ĠLog . i (" areas Ġen Ġel Ġ 1 ro ", Ġmodel . toString ()) ĊĊĠĠĠĠĠĠĠ Ġfragment Manager !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . content _ frame , ĠDetail Area Fragment . newInstance ( area Name , Ġmodel )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠĠĠĠĠ Ġval Ġspinner Ġ= Ġv frag !!. findViewById < Spinner >( R . id . spinner _ mode los ) ĊĠĠĠĠĠĠĠ ĠMy Preferences ( context !! ). set Actual Model ( spinner !!. selected Item Position ) ĊĠĠĠĠĠĠĠ Ġdetail Load Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġswitch Area ( opc Ġ: ĠInt ){ ĊĠĠĠĠĠĠĠ Ġwhen ( opc ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Client es Ġ-> Ġswitch Fragment (" Segment o ĠClient es ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Relaciones Ġ-> Ġswitch Fragment (" Relaciones ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Can ales Ġ-> Ġswitch Fragment (" Can ales ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ Prop uesta Valor Ġ-> Ġswitch Fragment (" Prop uesta Ġde ĠVal or ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Activ idades Ġ-> Ġswitch Fragment (" Activ idades ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Re cursos Ġ-> Ġswitch Fragment (" Re cursos ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn S oci os Cl ave Ġ-> Ġswitch Fragment (" S oci os ĠCl ave ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn F uent es In gres o Ġ-> Ġswitch Fragment (" F uent es Ġde ĠIn gres o ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Cost os Ġ-> Ġswitch Fragment (" Cost os ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Buttons (){ ĊĠĠĠĠĠĠĠ Ġval Ġbtn Client es Ġ= Ġv frag ?. findViewById < Button >( R . id . btn Client es ) ĊĠĠĠĠĠĠĠ Ġval Ġbtn Relaciones Ġ= Ġv frag ?. findViewById < Button >( R . id . btn Relaciones ) ĊĠĠĠĠĠĠĠ Ġval Ġbtn Can ales Ġ= Ġv frag ?. findViewById < Button >( R . id . btn Can ales ) ĊĠĠĠĠĠĠĠ Ġval Ġbtn Prop uesta Valor Ġ= Ġv frag ?. findViewById < Button >( R . id . btn _ Prop uesta Valor ) ĊĠĠĠĠĠĠĠ Ġval Ġbtn Activ idades Ġ= Ġv frag ?. findViewById < Button >( R . id . btn Activ idades ) ĊĠĠĠĠĠĠĠ Ġval Ġbtn Re cursos Ġ= Ġv frag ?. findViewById < Button >( R . id . btn Re cursos ) ĊĠĠĠĠĠĠĠ Ġval Ġbtn S oci os Cl ave Ġ= Ġv frag ?. findViewById < Button >( R . id . btn S oci os Cl ave ) ĊĠĠĠĠĠĠĠ Ġval Ġbtn F uent es In gres o Ġ= Ġv frag ?. findViewById < Button >( R . id . btn F uent es In gres o ) ĊĠĠĠĠĠĠĠ Ġval Ġbtn Cost os Ġ= Ġv frag ?. findViewById < Button >( R . id . btn Cost os ) ĊĊĠĠĠĠĠĠĠ Ġbtn Client es ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn Relaciones ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn Can ales ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn Prop uesta Valor ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn Activ idades ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn Re cursos ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn S oci os Cl ave ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn F uent es In gres o ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn Cost os ?. setOnClickListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Spinner Mode los () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġspinner Ġ= Ġv frag ?. findViewById < Spinner >( R . id . spinner _ mode los ) ĊĠĠĠĠĠĠĠ ĠLog . i (" selected Ġmodel Ġ 1 ", Ġ ĠMy Preferences ( context !! ). get Actual Model (). toString ()) ĊĊĠĠĠĠĠĠĠ Ġspinner !!. adapter Ġ= ĠArray Adapter ( context , Ġandroid . R . layout . simple _ spinner _ item , Ġmap Models . keys . toList ()). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif (! map Models . isEmpty () Ġ&& ĠMy Preferences ( context !! ). get Actual Model () Ġ!= Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspinner !!. setSelection ( My Preferences ( context !! ). get Actual Model ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġspinner . on ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( parent : ĠAdapter View < *> ?) Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View < *> ?, Ġview 2 : ĠView ?, Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Name Ġ= Ġspinner _ mode los . selected Item . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Preferences ( context !! ). set Actual Model ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" selected Ġmodel Ġ 2 ", Ġ ĠMy Preferences ( context !! ). get Actual Model (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Ġ= Ġarea Dao . findById ( map Models . getValue ( model Name ) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠLog . i (" MAP ĠITE MS ", Ġmap Models . toList (). toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Event OnClick New Model () Ġ{ ĊĠĠĠĠĠĠĠ Ġv frag ?. findViewById < Image Button >( R . id . btn New Model ) !!. setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiag View : ĠView Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . dialog _ form _ model , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Builder Ġ= ĠAlertDialog . Builder ( context !! ). setView ( diag View ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm AlertDialog Ġ= Ġm Builder . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiag View . btn Cancel . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm AlertDialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiag View . btn Ok . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm AlertDialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Mode lo ĠC read o ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Model ( m AlertDialog , diag View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Event OnClick Delete Model () Ġ{ ĊĠĠĠĠĠĠĠ Ġv frag ?. findViewById < Image Button >( R . id . btn Delete Model ) !!. setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( spinner _ mode los . selected Item != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Builder Ġ= ĠAlertDialog . Builder ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel ToDelete Ġ= Ġspinner _ mode los . selected Item . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Builder . setTitle (" Alert a ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Builder . setMessage (" Â¿ De sea Ġelim inar Ġel Ġmodelo : Ġ"+ Ġmodel ToDelete Ġ+ Ġ"? ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Builder . set Positive Button (" SI ", Ġ{ Ġdialog Interface : ĠDialog Interface , Ġi : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Mode lo Ġelimin ado ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Model ( model ToDelete ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Builder . set Negative Button (" NO ", Ġ{ Ġdialog Interface : ĠDialog Interface , Ġi : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Oper acion Ġcancel ada ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Builder . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Se leccione Ġun Ġmodelo ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdelete Model ( model : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmsg : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ ĠMy Preferences ( context !! ). set Actual Model ( 0 ) ĊĠĠĠĠĠĠĠ Ġdo Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarea Dao . delete Model ( map Models [ model ] !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Models Ġ= Ġarea Dao . get Models By UserId ( userId ). map Ġ{ Ġit . name Ġto Ġit . id Ġ}. toMap () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Spinner Mode los () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Model ( alert Dialog : ĠAlertDialog , Ġview Dialog : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmsg : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġvar Ġnew ModelName : ĠString ? Ġ= Ġview Dialog . findViewById < TextInput EditText >( R . id . txt New Model ). text . toString () ĊĊĠĠĠĠĠĠĠ ĠLog . i (" CREATE : Ġ", Ġnew ModelName ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( new ModelName Ġ== Ġ"" Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Ġ= Ġ" E scri ba Ġun Ġnombre Ġpara Ġel Ġmodelo " ĊĊĠĠĠĠĠĠĠ Ġif Ġ( msg Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Error : Ġ"+ msg ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Model Ġ= ĠArea ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠUUID . randomUUID (). toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġnew ModelName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivities Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannels Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclients Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcosts Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġincome Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpart ners Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelationships Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Pro position Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarea Dao . insert All ( new Model ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Models Ġ= Ġarea Dao . get Models By UserId ( userId ). map Ġ{ Ġit . name Ġto Ġit . id Ġ}. toMap () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist Server Info () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Preferences ( context !! ). set Actual Model ( map Models . size Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Spinner Mode los () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload To DB ( areas : ĠList < Area >) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . i (" load TO DB : Ġareas ", areas . toString ()) ĊĠĠĠĠĠĠĠ Ġdo Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( execute Initialize DB ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( areas . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarea Dao . delete All Rows () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarea Dao . insert All (* areas . to Typed Array ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( area Dao . get Areas Count () < 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarea Dao . insert All ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArea ( UUID . randomUUID (). toString (), ĠuserId , Ġ" Mode lo ĠA ", Ġ" client es A ", Ġ" rel A ", Ġ" chan A ", Ġ" value A ", Ġ" act A ", Ġ" res o A ", Ġ" par A ", Ġ" inc A ", Ġ" cost A "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArea ( UUID . randomUUID (). toString (), ĠuserId , Ġ" Mode lo ĠB ", Ġ" client es B ", Ġ" rel B ", Ġ" chan B ", Ġ" value B ", Ġ" act B ", Ġ" res o B ", Ġ" part B ", Ġ" inc B ", Ġ" cost B "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArea ( UUID . randomUUID (). toString (), ĠuserId , Ġ" Mode lo ĠC ", Ġ" client es C ", Ġ" rel C ", Ġ" chan C ", Ġ" value C ", Ġ" act C ", Ġ" res o C ", Ġ" part C ", Ġ" inc C ", Ġ" cost C ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Models Ġ= Ġarea Dao . get Models By UserId ( userId ). map Ġ{ Ġit . name Ġto Ġit . id Ġ}. toMap () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Event OnClick New Model () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Event OnClick Delete Model () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Spinner Mode los () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġpersist Server Info (){ ĊĠĠĠĠĠĠĠ Ġval Ġservices Ġ= ĠServices ( this . view !!. context ) ĊĠĠĠĠĠĠĠ Ġval Ġbot ig oc ont igo Api Ġ= Ġservices . bot ig oc ont igo Api () ĊĠĠĠĠĠĠĠ Ġdo Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodels Ġ= Ġarea Dao . get Models By UserId ( userId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbot ig oc ont igo Api . areas Save All ( models . to Typed Array ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ