package Ġcom . rif q im fa h mi . all dog bre eds . ui . favorite . me mes . fragment . detail Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 4 . app . FragmentManager Ċ import Ġandroid . support . v 4 . app . Fragment State Pager Adapter Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 4 . view . ViewPager Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . rif q im fa h mi . all dog bre eds . R Ċ import Ġcom . rif q im fa h mi . all dog bre eds . data . db . model . Dog Me me Ċ import Ġcom . rif q im fa h mi . all dog bre eds . ui . base . Base Fragment Ċ import Ġcom . rif q im fa h mi . all dog bre eds . ui . details _ bre ed . detail . Inner Image Ċ import Ġkotlinx . android . synt hetic . main . fragment _ meme _ detail .* Ċ import Ġjavax . inject . Inject Ċ Ċ /* Ċ Ġ* ĠCreated Ġby ĠR if qi ĠMul ya ĠF ah mi Ġon Ġ 0 8 / 0 3 / 1 8 . Ċ Ġ*/ Ċ Ċ class ĠMe me Detail Fragment Ġ: ĠBase Fragment (), ĠMe me Detail M vp View Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġm Presenter : ĠMe me Detail M vp Presenter < Me me Detail M vp View > ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG Ġ= Ġ" Me me Detail Fragment " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMEM ES Ġ= Ġ" THE _ ME MES " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSELECT ED _ ME ME Ġ= Ġ" SELECTED _ ME ME " ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( selected Me me : ĠDog Me me , Ġme mes : ĠArrayList < Dog Me me >): ĠMe me Detail Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠMe me Detail Fragment () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Parcelable ( SELECTED _ ME ME , Ġselected Me me ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Parcelable ArrayList ( ME MES , Ġme mes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ meme _ detail , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ ĠgetActivity Component (). inject ( this ) ĊĠĠĠĠĠĠĠ Ġm Presenter . on Attach ( this ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetUp ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĊĠĠĠĠĠĠĠ Ġwith Ġ( m Base Activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar _ detail _ meme . title Ġ= Ġ" Favorite Ġme me " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar _ detail _ meme . elevation Ġ= Ġ 4 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar _ detail _ meme ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Presenter . setCurrent Me me (__ getCurrent Item ()) ĊĠĠĠĠĠĠĠ Ġm Presenter . love Check () ĊĠĠĠĠĠĠĠ Ġvp _ detail _ meme . adapter Ġ= ĠP ager Adapter ( child FragmentManager , Ġ__ get Me mes ()) ĊĠĠĠĠĠĠĠ Ġvp _ detail _ meme . currentItem Ġ= Ġ__ getCurrent Position () ĊĠĠĠĠĠĠĠ Ġvp _ detail _ meme . add On Page ChangeListener ( object Ġ: ĠView Pager . On Page ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( position : ĠInt , Ġposition Offset : ĠFloat , Ġposition Offset Pixels : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Me me Ġ= Ġ( vp _ detail _ meme . adapter Ġas ĠP ager Adapter ). m Me mes [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Presenter . setCurrent Me me ( selected Me me ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Presenter . love Check () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġbtn _ share . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Presenter . share Current Gif ( context !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ download . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Presenter . download Gif ( activity !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ love . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Presenter . toggle L oved Me me () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item ?. itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmark Un lo ved () Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn _ love . setImage Drawable ( Context Compat . get Drawable ( context !! , ĠR . drawable . ic _ love _ border )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmark L oved () Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn _ love . setImage Drawable ( Context Compat . get Drawable ( context !! , ĠR . drawable . ic _ love )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ__ get Me mes (): ĠArrayList < Dog Me me > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġarguments ?. get Parcelable ArrayList ( ME MES ) Ġ?: ĠArrayList < Dog Me me >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ__ getCurrent Position () Ġ: ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġme mes Ġ= Ġ__ get Me mes () ĊĠĠĠĠĠĠĠ Ġval Ġme me Ġ= Ġ__ getCurrent Item () ĊĠĠĠĠĠĠĠ Ġreturn Ġme mes . indexOf ( meme ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ__ getCurrent Item () Ġ: ĠDog Me me Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġarguments ?. get Parcelable ( SELECTED _ ME ME ) !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠP ager Adapter ( fm : ĠFragment Manager ?, Ġme mes : ĠArrayList < Dog Me me >) Ġ: ĠFragment State Pager Adapter ( fm ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġm Me mes Ġ= Ġme mes ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠInner Image . newInstance ( m Me mes [ position ]. down sized _ medium _ gif !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm Me mes . size ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }