package Ġcom . az har . currency converter . activities čĊč Ċ import Ġandroid . app . Progress Dialog č Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . view . View č Ċ import Ġandroid . view . input method . Input Method Manager č Ċ import Ġandroid . widget . Adapter View č Ċ import Ġandroid . widget . Adapter View . On ItemSelected Listener č Ċ import Ġandroid . widget . Array Adapter č Ċ import Ġandroid . widget . Toast č Ċ import Ġandroidx . appcompat . app . AppCompatActivity č Ċ import Ġcom . android networking . Android Networking č Ċ import Ġcom . android networking . common . Priority č Ċ import Ġcom . android networking . error . AN Error č Ċ import Ġcom . android networking . interfaces . JSONObject RequestListener č Ċ import Ġcom . az har . currency converter . R č Ċ import Ġcom . az har . currency converter . databinding . Activity Main Binding č Ċ import Ġcom . az har . currency converter . networking . Api Endpoint č Ċ import Ġorg . json . JSONException č Ċ import Ġorg . json . JSONObject čĊč Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ čĊčĊĠĠĠ Ġprivate Ġval Ġbinding : ĠActivity Main Binding Ġby Ġlazy Ġ{ čĊĠĠĠĠĠĠĠ ĠActivity Main Binding . inflate ( layout Inflater ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġvar Ġstr Input Nominal : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġstr Country Selected 1 : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġstr CountryCode Selected 1 : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġstr Country Selected 2 : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġstr CountryCode Selected 2 : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġstr Title Result : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġstr From Result : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġstr To Result : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġstr Date Now : ĠString Ġ= Ġ"" čĊĠĠĠ Ġlateinit Ġvar Ġstr Country : ĠArray < String > čĊĠĠĠ Ġlateinit Ġvar Ġstr CountryCode : ĠArray < String > čĊĠĠĠ Ġvar Ġprogress Dialog : ĠProgress Dialog ? Ġ= Ġnull čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) čĊčĊĠĠĠĠĠĠĠ Ġprogress Dialog Ġ= ĠProgress Dialog ( this ) čĊĠĠĠĠĠĠĠ Ġprogress Dialog ?. setTitle (" M oh on ĠT ung gu ...") čĊĠĠĠĠĠĠĠ Ġprogress Dialog ?. set Cancel able ( false ) čĊĠĠĠĠĠĠĠ Ġprogress Dialog ?. setMessage (" S ed ang Ġmen ampil kan Ġdata ") čĊčĊĠĠĠĠĠĠĠ Ġ// set Ġspinner Ġdata Ġneg ara čĊĠĠĠĠĠĠĠ Ġstr Country Ġ= Ġresources . getString Array ( R . array . country Name ) čĊčĊĠĠĠĠĠĠĠ Ġ// set Ġspinner Ġdata Ġk ode Ġm ata Ġu ang čĊĠĠĠĠĠĠĠ Ġstr CountryCode Ġ= Ġresources . getString Array ( R . array . country Code ) čĊčĊĠĠĠĠĠĠĠ Ġ// hide Ġitem Ġlayout čĊĠĠĠĠĠĠĠ Ġbinding . image Clear . visibility Ġ= ĠView . GONE čĊĠĠĠĠĠĠĠ Ġbinding . linear Has il . visibility Ġ= ĠView . GONE čĊčĊĠĠĠĠĠĠĠ Ġ// set Ġarray Ġspinner Ġ 1 čĊĠĠĠĠĠĠĠ Ġval Ġarray Country 1 Ġ= ĠArray Adapter ( this @ MainActivity , Ġandroid . R . layout . simple _ list _ item _ 1 , Ġstr Country ) čĊĠĠĠĠĠĠĠ Ġarray Country 1 . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) čĊčĊĠĠĠĠĠĠĠ Ġ// set Ġarray Ġspinner Ġ 2 čĊĠĠĠĠĠĠĠ Ġval Ġarray Country 2 Ġ= ĠArray Adapter ( this @ MainActivity , Ġandroid . R . layout . simple _ list _ item _ 1 , Ġstr Country ) čĊĠĠĠĠĠĠĠ Ġarray Country 2 . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) čĊčĊĠĠĠĠĠĠĠ Ġ// set Ġspinner Ġ 1 čĊĠĠĠĠĠĠĠ Ġbinding . sp Country 1 . adapter Ġ= Ġarray Country 1 čĊĠĠĠĠĠĠĠ Ġbinding . sp Country 1 . on ItemSelected Listener Ġ= Ġobject Ġ: ĠOn ItemSelected Listener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View <* >, Ġview : ĠView , Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr Country Selected 1 Ġ= Ġparent . getItem At Position ( position ). toString () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( adapter View : ĠAdapter View < *> ?) Ġ{} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// set Ġspinner Ġ 2 čĊĠĠĠĠĠĠĠ Ġbinding . sp Country 2 . adapter Ġ= Ġarray Country 2 čĊĠĠĠĠĠĠĠ Ġbinding . sp Country 2 . on ItemSelected Listener Ġ= Ġobject Ġ: ĠOn ItemSelected Listener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View <* >, Ġview : ĠView , Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr Country Selected 2 Ġ= Ġparent . getItem At Position ( position ). toString () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( adapter View : ĠAdapter View < *> ?) Ġ{} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// clear Ġdata Ġwith Ġimage Ġdelete čĊĠĠĠĠĠĠĠ Ġbinding . image Clear . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . et Input Nominal . text . clear () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . linear Has il . visibility Ġ= ĠView . GONE čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Clear . visibility Ġ= ĠView . GONE čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// action Ġm end apat kan Ġhas il Ġkon ver si Ġm ata Ġu ang čĊĠĠĠĠĠĠĠ Ġbinding . btn Hit ung . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstr Input Nominal Ġ= Ġbinding . et Input Nominal . text . toString () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( str Input Nominal . isEmpty ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , Ġ" Form Ġtidak Ġb ole h Ġk os ong !", ĠToast . LENGTH _ SHORT ). show () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Currency ( str CountryCode Selected 1 , Ġstr CountryCode Selected 2 , Ġstr Input Nominal ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Manager Ġ= Ġapplication . getSystem Service ( INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Manager . hide Soft Input From Window ( window . current Focus ?. window Token , ĠInput Method Manager . HIDE _ NOT _ ALWAYS ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// method Ġget Ġdata Ġkon ver si Ġm ata Ġu ang čĊĠĠĠ Ġprivate Ġfun Ġget Currency ( str CountryCode Selected 1 : ĠString , Ġstr CountryCode Selected 2 : ĠString , Ġstr Input Nominal : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠ Ġprogress Dialog ?. show () čĊĠĠĠĠĠĠĠ ĠAndroid Networking . get ( Api Endpoint . BASE URL ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Path Parameter (" curr Code from ", Ġstr CountryCode Selected 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Path Parameter (" curr Code to ", Ġstr CountryCode Selected 2 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Path Parameter (" amount ", Ġstr Input Nominal ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Priority . MEDIUM ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getAs JSONObject ( object Ġ: ĠJSONObject RequestListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( response : ĠJSONObject ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog ?. dismiss () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= Ġresponse . getJSONObject (" data ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr Title Result Ġ= ĠjsonObject . getString (" title ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr From Result Ġ= ĠjsonObject . getString (" from Result ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr To Result Ġ= ĠjsonObject . getString (" to Result ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr Date Now Ġ= ĠjsonObject . getString (" updatedAt ") čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// set Ġtext čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Title Has il . text Ġ= Ġ" Result Ġ: Ġ$ str Title Result " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Currency From . text Ġ= Ġ" Nominal ĠInput Ġ: Ġ$ str From Result " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Currency To . text Ġ= Ġ" Has il ĠKon ver si Ġ: Ġ$ str To Result " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Date Now . text Ġ= Ġ" Update ĠTer ak hir Ġ: Ġ$ str Date Now " čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// show Ġitem Ġlayout čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . linear Has il . visibility Ġ= ĠView . VISIBLE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Clear . visibility Ġ= ĠView . VISIBLE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠJSON Exception ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" O ops , Ġg agal Ġmen ampil kan Ġhas il Ġkon ver si !", ĠToast . LENGTH _ SHORT ). show () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( an Error : ĠAN Error ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog ?. dismiss () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" O ops ! ĠSe pert iny a Ġada Ġmas alah Ġdengan Ġk one ksi Ġinternet Ġk amu .", ĠToast . LENGTH _ SHORT ). show () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) čĊĠĠĠ Ġ} č Ċ }