package Ġweb k ul . openc art . mob ik ul . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . content . res . AppCompat Resources Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Adapter View Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroid . widget . Radio Group Ċ import Ġandroid . widget . Spinner Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġweb k ul . openc art . mob ik ul . Checkout Activity Ċ import Ġweb k ul . openc art . mob ik ul . handlers . Guest Checkout Handler Ċ import Ġweb k ul . openc art . mob ik ul . helper . Response Helper Ċ import Ġweb k ul . openc art . mob ik ul . model . Guest Checkout Model . Guest Checkout Ċ import Ġweb k ul . openc art . mob ik ul . R Ċ import Ġweb k ul . openc art . mob ik ul . network Manager . Ret rofit Callback Ċ import Ġweb k ul . openc art . mob ik ul . network Manager . Ret rofit Custom Callback Ċ import Ġweb k ul . openc art . mob ik ul . two Way Binding Model . Guest Checkout Model Ċ import Ġweb k ul . openc art . mob ik ul . utils . S weet Alert Box Ċ import Ġweb k ul . openc art . mob ik ul . databinding . Fragment Guest Binding ĊĊ Ċ class ĠGuest Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġvar Ġguest Binding : ĠFragment Guest Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġguest Checkout Callback : ĠCallback < Guest Checkout >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġfunction Ġ= Ġ" guest " ĊĠĠĠ Ġprivate Ġvar Ġguest Checkout : ĠGuest Checkout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġstate Position : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġval Ġstate Name : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġstate Dropdown : ĠSp inner ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġstate Dropdown Ship : ĠSp inner ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcountry Position : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġcountry _ id : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġstate _ id : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġgroup : ĠRadio Group ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmodel : ĠGuest Checkout Model ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġguest Checkout Handler : ĠGuest Checkout Handler ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcountry Id : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġguest Binding Ġ= ĠFragment Guest Binding . inflate ( LayoutInflater . from ( activity ), Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġgroup Ġ= Ġguest Binding !!. is Sub scribed ĊĠĠĠĠĠĠĠ Ġguest Checkout Handler Ġ= ĠGuest Checkout Handler ( activity !! ) ĊĠĠĠĠĠĠĠ Ġguest Binding !!. handler Ġ= Ġguest Checkout Handler ĊĠĠĠĠĠĠĠ Ġval Ġselect Ġ= ĠAppCompat Resources . get Drawable ( activity !! , ĠR . drawable . checkout _ selected ) ĊĠĠĠĠĠĠĠ Ġ( activity Ġas ĠCheckout Activity ). binding !!. billing Address Image . background Ġ= Ġselect ĊĠĠĠĠĠĠĠ Ġmodel Ġ= ĠGuest Checkout Model () ĊĠĠĠĠĠĠĠ Ġguest Binding !!. data Ġ= Ġmodel ĊĠĠĠĠĠĠĠ Ġguest Checkout Handler !!. get Binding ( guest Binding !! ) ĊĠĠĠĠĠĠĠ Ġgroup !!. setOn Checked ChangeListener Ġ{ Ġgroup , Ġchecked Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( group . checked RadioButton Id Ġ== Ġguest Binding !!. yes . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguest Checkout Handler !!. get Shipping Address (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( group . checked RadioButton Id Ġ== Ġguest Binding !!. no . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguest Checkout Handler !!. get Shipping Address (" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( group !!. checked RadioButton Id Ġ== Ġguest Binding !!. yes . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġguest Checkout Handler !!. get Shipping Address (" 1 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġguest Checkout Callback Ġ= Ġobject Ġ: ĠCallback < Guest Checkout > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Guest Checkout >, Ġresponse : ĠResponse < Guest Checkout >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS weet Alert Box . dis s miss S weet Alert Box () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguest Checkout Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Response Helper . isValid Response ( activity , Ġresponse , Ġfalse )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcountries Ġ= ĠarrayOf Null s < String >( response . body () !!. guest !!. country Data !!. size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . body () !!. guest !!. country Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Id Ġ= Ġresponse . body () !!. guest !!. country Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġresponse . body () !!. guest !!. country Data !!. size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountries [ i ] Ġ= Ġresponse . body () !!. guest !!. country Data ! ![ i ]. name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( country Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( country Id Ġ== Ġresponse . body () !!. guest !!. country Data ! ![ i ]. country Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Position Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdropdown Ġ= Ġguest Binding !!. country Spinner ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Dropdown Ġ= Ġguest Binding !!. states Spinner ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠArray Adapter < String >( activity !! , Ġandroid . R . layout . simple _ spinner _ dropdown _ item , Ġcountries ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdropdown . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdropdown . setSelection ( country Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdropdown . on ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View <* >, Ġv : ĠView , Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry _ id Ġ= Ġguest Checkout !!. guest !!. country Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguest Checkout Handler !!. get Country Id ( country _ id !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ĠZone ĠSize Ġdata Ġ=== Ġ" Ġ+ Ġguest Checkout !!. guest !!. country Data ! ![ position ]. zone !!. size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( guest Checkout !!. guest !!. country Data ! ![ position ]. zone !!. size Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstates Ġ= ĠarrayOf Null s < String >( guest Checkout !!. guest !!. country Data ! ![ position ]. zone !!. size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. guest Checkout !!. guest !!. country Data ! ![ position ]. zone !!. size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstates [ i ] Ġ= Ġguest Checkout !!. guest !!. country Data ! ![ position ]. zone ! ![ i ]. name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ĠState Ġdata Ġ=== Ġ" Ġ+ Ġi Ġ+ Ġ" Ġ Ġ" Ġ+ Ġstates [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( state Name Ġ!= Ġnull Ġ&& Ġstates [ i ]. equals ( state Name !! , Ġignore Case Ġ= Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Position Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ĠState Ġdata ĠSize Ġ=== Ġ" Ġ+ Ġstates . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Dropdown !!. on ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View <* >, Ġv : ĠView , Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate _ id Ġ= Ġguest Checkout !!. guest !!. country Data ! ![ temp ]. zone ! ![ position ]. zone Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguest Checkout Handler !!. get Zone Id ( state _ id !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent : ĠAdapter View <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠArray Adapter < String >( activity !! , Ġandroid . R . layout . simple _ spinner _ dropdown _ item , Ġstates ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Dropdown !!. adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Dropdown !!. setSelection ( state Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Position Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstates Ġ= ĠarrayOf (" None ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠArray Adapter ( activity !! , Ġandroid . R . layout . simple _ spinner _ dropdown _ item , Ġstates ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Dropdown !!. adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate _ id Ġ= Ġ" 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Error ", Ġ" Inside Ġdrop Down $ e ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( parent : ĠAdapter View <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO ĠAuto - generated Ġmethod Ġstub ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Guest Checkout >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS weet Alert Box . dis s miss S weet Alert Box () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠS weet Alert Box (). show Progress Dialog ( activity !! ) ĊĠĠĠĠĠĠĠ ĠRet rofit Callback . guest Checkout Call ( activity !! , Ġfunction , ĠRet rofit Custom Callback ( guest Checkout Callback , Ġactivity )) ĊĠĠĠĠĠĠĠ Ġreturn Ġguest Binding ?. root ĊĠĠĠ Ġ} Ċ Ċ } Ċ