package Ġcom . digital creative . app guru . presentation . ui . question Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . digital creative . app guru . R Ċ import Ġcom . digital creative . app guru . data . model . Assignment Ċ import Ġcom . digital creative . app guru . utils . helper . loading Dialog Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġes . dm oral . toast y . Toast y Ċ import Ġkotlinx . android . synt hetic . main . activity _ add _ question .* Ċ import Ġkotlinx . android . synt hetic . main . toolbar .* Ċ Ċ @ Android EntryPoint Ċ class ĠAdd Question Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġview Models < Question ViewModel >() ĊĠĠĠ Ġprivate Ġval Ġloading Dialog Ġby Ġloading Dialog () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ TYPE Ġ= Ġ" extra _ type " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ CLASS _ ID Ġ= Ġ" extra _ class _ id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ ASSIGN MENT _ ID Ġ= Ġ" extra _ assignment _ id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ SECTION _ ID Ġ= Ġ" extra _ section _ id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ DATA Ġ= Ġ" extra _ data " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ EDIT Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRESULT _ SUCCESS Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ add _ question ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġval Ġclass Id Ġ= Ġintent . getString Extra ( EXTRA _ CLASS _ ID ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġassignment Id Ġ= Ġintent . getString Extra ( EXTRA _ ASSIGN MENT _ ID ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġsection Id Ġ= Ġintent . getString Extra ( EXTRA _ SECTION _ ID ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġintent . getInt Extra ( EXTRA _ TYPE , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġintent . get Parcelable Extra < Assignment . Section . Question >( EXTRA _ DATA ) ĊĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Display Show Title Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== ĠTYPE _ EDIT ) ĠgetString ( R . string . edit _ so al ) Ġelse ĠgetString ( R . string . tambah _ so al ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== ĠTYPE _ EDIT Ġ&& Ġdata Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed t _ question . setText ( data . question ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed t _ yes . setText ( data . choices [ 0 ]. value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed t _ no . setText ( data . choices [ 1 ]. value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn _ add _ question . text Ġ= ĠgetString ( R . string . edit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ add _ question . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquestion Ġ= Ġed t _ question . text . toString (). trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchoices Value Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġed t _ yes . text . toString (). trim (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġed t _ no . text . toString (). trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== ĠTYPE _ EDIT Ġ&& Ġdata Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . edit Question ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassignment Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsection Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchoices Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . add Question ( class Id , Ġassignment Id , Ġsection Id , Ġquestion , Ġchoices Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Observer s () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Support Navigate Up (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Support Navigate Up () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Observer s () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . loading . observe ( this , ĠObserver ( this :: show Loading )) ĊĠĠĠĠĠĠĠ ĠviewModel . success Message . observe ( this , ĠObserver ( this :: show Success Message )) ĊĠĠĠĠĠĠĠ ĠviewModel . errorMessage . observe ( this , ĠObserver ( this :: show ErrorMessage )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Loading ( is Show : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Show ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! loading Dialog . is Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog . show Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( loading Dialog . is Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog . close Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Success Message ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast y . success ( this , Ġmessage , ĠToast y . LENGTH _ LONG , Ġtrue ). show () ĊĠĠĠĠĠĠĠ Ġset Result ( RESULT _ SUCCESS ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow ErrorMessage ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast y . error ( this , Ġmessage , ĠToast y . LENGTH _ LONG , Ġtrue ). show () ĊĠĠĠ Ġ} Ċ }