package Ġcom . jh mk . stamp me . Module . Stamp Me Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . jh mk . stamp me . Animation . Simple View Fade Animation Ċ import Ġcom . jh mk . stamp me . Model . Const Variables Ċ import Ġcom . jh mk . stamp me . Model . My Stamp s Ċ import Ġcom . jh mk . stamp me . Model . User Ċ import Ġcom . jh mk . stamp me . Module . Adapter . Stamp s Recycler view Adapter Ċ import Ġcom . jh mk . stamp me . R Ċ import Ġkotlinx . android . synt hetic . main . layout _ fragment _ stamp me .* Ċ import Ġkotlinx . android . synt hetic . main . layout _ toolbar .* Ċ import Ġorg . jetbrains . ank o . alert Ċ import Ġorg . jetbrains . ank o . no Button Ċ import Ġorg . jetbrains . ank o . yes Button Ċ import Ġsr jh lab . com . my own barcode . Dialog . Barcode Dialog Ċ import Ġsr jh lab . com . my own barcode . Dialog . Stamp Info Dialog Ċ Ċ class ĠSt amp Me Fragment Ġ: ĠFragment (), ĠSt amp Me . view , ĠSt amp s Recycler view Adapter . IC lick Listener , ĠView . OnClickListener Ġ{ ĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġthis . java Class . simple Name ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm CurrentUser : ĠUser ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Presenter : ĠSt amp Me . presenter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Adapter : ĠSt amp s Recycler view Adapter ĊĊĠĠĠ Ġ/* ĊĠĠĠ Ġ* Ġê°ľ ìĦł íķ ´ë³´ ìŀĲ .. ĊĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm C afe List : ĠMutable List < My Stamp s ?> Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġm Re stra unt List : ĠMutable List < My Stamp s ?> Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġm Store List : ĠMutable List < My Stamp s ?> Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġm Mart List : ĠMutable List < My Stamp s ?> Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġm Public List : ĠMutable List < My Stamp s ?> Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġm E tc List : ĠMutable List < My Stamp s ?> Ġ= ĠArrayList () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ##### ĠonCreate View Ġ##### ") ĊĠĠĠĠĠĠĠ Ġm CurrentUser Ġ= Ġarguments ?. get Serializable (" User Item ") Ġas ĠUser ĊĠĠĠĠĠĠĠ Ġm Presenter Ġ= ĠSt amp Me Presenter ( this ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . layout _ fragment _ stamp me , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ##### Ġon Activity Created Ġ##### ") ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinitialize Ui () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinitialize Ui () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ##### Ġinitialize Ui Ġ##### ĠuserId Ġ: Ġ${ m CurrentUser . userId }") ĊĠĠĠĠĠĠĠ Ġtxt _ title _ toolbar . text Ġ= Ġresources . getString ( R . string . string _ title _ my _ stamp s ) ĊĠĠĠĠĠĠĠ Ġtxt _ logout . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġimg _ info _ barcode . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġimg _ back _ toolbar . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġimg _ edit _ toolbar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġimg _ edit _ toolbar . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġimg _ stamp _ ca fe _ stamp me . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġimg _ stamp _ restaurant _ stamp me . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġimg _ stamp _ store _ stamp me . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġimg _ stamp _ mart _ stamp me . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġimg _ stamp _ public _ stamp me . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġimg _ stamp _ etc _ stamp me . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġlayout _ detail _ category _ back . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Presenter . request Make Barcode ( m CurrentUser ) ĊĠĠĠĠĠĠĠ Ġm Presenter . request Get My Stamp ( m CurrentUser ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ##### Ġon Item Click Ġ##### ") ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ edit _ toolbar . id Ġ-> Ġm Presenter . request Settings ( m CurrentUser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ info _ barcode . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBar code Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setUser ( m CurrentUser ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( fragment Manager , Ġthis . java Class . simple Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout _ detail _ category _ back . id Ġ-> ĠSimple View Fade Animation (). start Animation ( layout _ detail _ category _ back , Ġlayout _ detail _ category _ front ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ ca fe _ stamp me . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġimg _ stamp _ restaurant _ stamp me . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġimg _ stamp _ store _ stamp me . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġimg _ stamp _ mart _ stamp me . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġimg _ stamp _ public _ stamp me . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġimg _ stamp _ etc _ stamp me . id Ġ-> Ġset Detail Category ( v . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ logout . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity !!. alert ( resources . getString ( R . string . alert _ logout _ title )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyes Button Ġ{ Ġm Presenter . request Logout ( m CurrentUser ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno Button Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Detail Category ( id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ##### Ġset Detail Category Ġ##### ") ĊĠĠĠĠĠĠĠ Ġvar Ġlist : ĠMutable List < My Stamp s ?> Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġwhen Ġ( id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ ca fe _ stamp me . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ category _ name . text Ġ= ĠConst Variables . SH OP _ TYPE _ CA FE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= Ġm C afe List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ restaurant _ stamp me . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ category _ name . text Ġ= ĠConst Variables . SH OP _ TYPE _ RE STR A UNT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= Ġm Re stra unt List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ store _ stamp me . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ category _ name . text Ġ= ĠConst Variables . SH OP _ TYPE _ STORE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= Ġm Store List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ mart _ stamp me . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ category _ name . text Ġ= ĠConst Variables . SH OP _ TYPE _ M ART ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= Ġm Mart List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ public _ stamp me . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ category _ name . text Ġ= ĠConst Variables . SH OP _ TYPE _ PUBLIC ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= Ġm Public List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ etc _ stamp me . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ category _ name . text Ġ= ĠConst Variables . SH OP _ TYPE _ ET C ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= Ġm E tc List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( list . size Ġ< Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ category _ load _ fail . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ category _ load _ fail . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlist _ category _ detail . adapter Ġ= ĠSt amp s Recycler view Adapter ( activity Ġas ĠContext , Ġlist , Ġnull ) ĊĠĠĠĠĠĠĠ Ġlist _ category _ detail . layout Manager Ġ= ĠLinearLayoutManager ( activity , ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġlist _ category _ detail . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ ĠSimple View Fade Animation (). start Animation ( layout _ detail _ category _ front , Ġlayout _ detail _ category _ back ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Click ( stamp : ĠMy Stamp s ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ##### Ġon Item Click Ġ##### ") ĊĠĠĠĠĠĠĠ Ġif Ġ( stamp Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠSt amp Info Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setItem ( stamp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( fragment Manager , Ġthis . java Class . simple Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Result Make Barcode ( user : ĠUser , Ġbitmap : ĠBitmap ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ##### Ġon Result Make Barcode Ġ##### Ġuser . id Ġ: Ġ${ user . userId }") ĊĠĠĠĠĠĠĠ Ġif Ġ( bitmap Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ info _ barcode . setImage Bitmap ( bitmap ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtxt _ info _ name . setText ( user . userName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Result Get My Stamp ( result List : ĠMutable List < My Stamp s ?> ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ##### Ġon Result Get My Stamp Ġ##### ") ĊĠĠĠĠĠĠĠ Ġif Ġ( result List Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult List . reverse () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Presenter . request Se per ate My Stamp ( result List ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ##### Ġon Result Get My Stamp Ġlist Ġsize Ġ: Ġ${ result List . size } ##### ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠSt amp s Recycler view Adapter ( activity Ġas ĠContext , Ġresult List , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist _ latest _ stamp s . adapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist _ latest _ stamp s . layout Manager Ġ= ĠLinearLayoutManager ( activity , ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist _ latest _ stamp s . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Result Se per ate My Stamp ( ca fe List : ĠMutable List < My Stamp s ? >, Ġre stra unt List : ĠMutable List < My Stamp s ? >, Ġstore List : ĠMutable List < My Stamp s ? >, Ġm art List : ĠMutable List < My Stamp s ? >, Ġpublic List : ĠMutable List < My Stamp s ? >, Ġetc List : ĠMutable List < My Stamp s ?> ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ##### Ġon Result Se per ate My Stamp Ġ##### Ġ\ n ca fe List Ġ${ ca fe List . size } Ġ\ n re stra unt List Ġ${ re stra unt List . size } Ġ\ n store List Ġ${ store List . size } Ġ\ nm art List Ġ${ mart List . size } Ġ\ n public List Ġ${ public List . size } Ġ\ net c List Ġ${ etc List . size }") ĊĠĠĠĠĠĠĠ Ġm C afe List Ġ= Ġc afe List ĊĠĠĠĠĠĠĠ Ġm Re stra unt List Ġ= Ġre stra unt List ĊĠĠĠĠĠĠĠ Ġm Store List Ġ= Ġstore List ĊĠĠĠĠĠĠĠ Ġm Mart List Ġ= Ġm art List ĊĠĠĠĠĠĠĠ Ġm Public List Ġ= Ġpublic List ĊĠĠĠĠĠĠĠ Ġm E tc List Ġ= Ġetc List ĊĊĠĠĠĠĠĠĠ Ġif Ġ( ca fe List . size Ġin Ġ 1 .. 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ ca fe _ stamp me . setBackground Resource ( R . drawable . ic _ stamp _ 2 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( ca fe List . size Ġ>= Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ ca fe _ stamp me . setBackground Resource ( R . drawable . ic _ stamp _ 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( re stra unt List . size Ġin Ġ 1 .. 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ restaurant _ stamp me . setBackground Resource ( R . drawable . ic _ stamp _ 2 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( re stra unt List . size Ġ>= Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ restaurant _ stamp me . setBackground Resource ( R . drawable . ic _ stamp _ 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( store List . size Ġin Ġ 1 .. 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ store _ stamp me . setBackground Resource ( R . drawable . ic _ stamp _ 2 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( store List . size Ġ>= Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ store _ stamp me . setBackground Resource ( R . drawable . ic _ stamp _ 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( mart List . size Ġin Ġ 1 .. 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ mart _ stamp me . setBackground Resource ( R . drawable . ic _ stamp _ 2 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( mart List . size Ġ>= Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ mart _ stamp me . setBackground Resource ( R . drawable . ic _ stamp _ 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( public List . size Ġin Ġ 1 .. 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ public _ stamp me . setBackground Resource ( R . drawable . ic _ stamp _ 2 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( public List . size Ġ>= Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ public _ stamp me . setBackground Resource ( R . drawable . ic _ stamp _ 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( etc List . size Ġin Ġ 1 .. 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ etc _ stamp me . setBackground Resource ( R . drawable . ic _ stamp _ 2 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( etc List . size Ġ>= Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ stamp _ etc _ stamp me . setBackground Resource ( R . drawable . ic _ stamp _ 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }