package Ġcom . ut rad ia . catalog ue app v 2 . module . addresses . all addresses Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ut rad ia . catalog ue app v 2 . R Ċ import Ġcom . ut rad ia . catalog ue app v 2 . base . Base Activity Ċ import Ġcom . ut rad ia . catalog ue app v 2 . base . U trad ia Application Ċ import Ġcom . ut rad ia . catalog ue app v 2 . model . Address Response Ċ import Ġcom . ut rad ia . catalog ue app v 2 . module . addresses . add address . Add Address Activity Ċ import Ġcom . ut rad ia . catalog ue app v 2 . utils . Dialog s Util Ċ import Ġcom . ut rad ia . catalog ue app v 2 . utils . Preference Manager Ċ import Ġkotlinx . android . synt hetic . main . activity _ addresses .* Ċ import Ġkotlinx . android . synt hetic . main . view _ confirm .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠAdd resses Activity Ġ: ĠBase Activity (), Addresses View , on Address Inter acted Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonDelete Clicked ( id : ĠString , Ġpos : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= Ġm Dialog s Util . show Dialog ( this , ĠR . layout . view _ confirm ) ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĊĠĠĠĠĠĠĠ Ġdialog . txt Remove . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m App Utils . is Internet Connected ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Addresses Presenter . delete Address ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm App Utils . show Sn ackBar ( window . decor View . root View , ĠgetString ( R . string . toast _ network _ not _ available )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdialog . txt Cancel . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Address Default ( msg : String ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm App Utils . show Success Toast ( msg ) ĊĠĠĠĠĠĠĠ Ġfor Ġ(( index , Ġvalue ) Ġin Ġresponse . address . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index == pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . default X =" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . default X =" 0 " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Adapter !!. notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Address Error ( error _ message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm App Utils . show Error Toast ( error _ message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Edit Clicked ( id : ĠString , pos : Int ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( Add Address Activity . create Intent ( this , id ," 1 ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Default Selected ( id : ĠString , pos : Int ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . pos = pos ĊĠĠĠĠĠĠĠ Ġset Address As Default ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Address As Default ( id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m App Utils . is Internet Connected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Addresses Presenter . setDefault ( id , m Prefs . userId ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm App Utils . show Sn ackBar ( window . decor View . root View , ĠgetString ( R . string . toast _ network _ not _ available )) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Address Found ( response : ĠAddress Response ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . response = response ĊĊĠĠĠĠĠĠĠ Ġtxt No Address . visibility = View . GONE ĊĠĠĠĠĠĠĠ Ġrv Addresses . visibility = View . VISIBLE ĊĠĠĠĠĠĠĠ Ġif Ġ( m Adapter == null ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠLinearLayoutManager ( this , ĠRecyclerView . VERTICAL , false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv Addresses . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠAdd resses Adapter ( this , Ġresponse . address , this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv Addresses . adapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter !!. set Items ( response . address ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Address NotFound ( error : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtxt No Address . visibility = View . VISIBLE ĊĠĠĠĠĠĠĠ Ġrv Addresses . visibility = View . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Address Deleted ( msg : String ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm App Utils . show Success Toast ( msg ) ĊĠĠĠĠĠĠĠ Ġresponse . address . remove At ( pos ) ĊĠĠĠĠĠĠĠ Ġm Adapter !!. notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġm Addresses Presenter : ĠAdd resses Presenter ĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġm Dialog s Util : Dialog s Util ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġm Prefs : ĠPreference Manager ĊĠĠĠ Ġlateinit Ġvar Ġresponse : ĠAddress Response ĊĠĠĠ Ġprivate Ġvar Ġm Adapter Ġ: Addresses Adapter ?= null ĊĠĠĠ Ġprivate Ġvar Ġpos Ġ: Int = 0 ĊĠĠĠ Ġoverride Ġval Ġlayout : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠR . layout . activity _ addresses ĊĊĠĠĠ Ġoverride Ġfun Ġshow Toolbar (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġviews : ĠList < View >? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ( application Ġas ĠU trad ia Application ). app Component ?. inject ( this ) ĊĊĠĠĠĠĠĠĠ Ġm Addresses Presenter . inject Dependencies ( this ) ĊĠĠĠĠĠĠĠ Ġm Addresses Presenter . attach View ( this ) ĊĠĠĠĠĠĠĠ Ġm App Utils . change StatusBar Color ( this ) ĊĊĠĠĠĠĠĠĠ Ġset Toolbar () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġ/* get ĠAdd resses */ ĊĠĠĠĠĠĠĠ Ġget Addresses () ĊĠĠĠ Ġ} ĊĠĠĠ Ġ/* ĊĠĠ Ġ* Ġget Ġuser Ġsaved ĠAdd resses ĊĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Addresses () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m App Utils . is Internet Connected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Addresses Presenter . get Addresses ( m Prefs . userId ," shipping ") ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm App Utils . show Sn ackBar ( window . decor View . root View , ĠgetString ( R . string . toast _ network _ not _ available )) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġset Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation Icon ( R . drawable . ic _ back ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Display Show Title Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. title Ġ= ĠgetString ( R . string . address ) ĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation OnClickListener Ġ{ Ġfinish () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĊĠĠĠĠĠĠĠ Ġm Addresses Presenter . cancel All Async () ĊĠĠĠĠĠĠĠ Ġm Addresses Presenter . detach View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġmenu ; Ġthis Ġadds Ġitems Ġto Ġthe Ġaction Ġbar Ġif Ġit Ġis Ġpresent . ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ add , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġitem Ġselection ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ add Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Add Address Activity . create Intent ( this ," "," 0 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate Intent ( context : ĠContext ): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠIntent ( context , ĠAdd resses Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }