package Ġcom . fl am yo ad . ts uk iv iew er . ui . reader Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . dav em or ris sey . labs . sub scale view . Image Source Ċ import Ġcom . fl am yo ad . ts uk iv iew er . R Ċ import Ġkotlinx . android . synt hetic . main . reader _ image _ item .* Ċ import Ġjava . io . File Ċ Ċ private Ġconst Ġval ĠIMAGE _ PATH Ġ= Ġ" image path " Ċ Ċ class ĠImage Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġview Pager Listener : ĠView Pager Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . reader _ image _ item , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġload Image () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġview Pager Listener Ġ= Ġcontext Ġas ĠView Pager Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ// ĠOnly Ġworks Ġfor ĠHorizontal Ġimage Ġfragment . ĠThere Ġis Ġa Ġseparate Ġmethod Ġfor ĠVertical Ġimage Ġsince Ġits Ġa ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġphoto View . setOn Touch Listener Ġ{ Ġview , Ġmotion Event Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( motion Event . action Mask ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ DOWN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager Listener ?. setUser Input Enabled ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ UP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager Listener ?. setUser Input Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ CANCEL Ġ-> Ġ{ Ġ// ĠActually Ġtriggers Ġmuch Ġmore Ġthan ĠACTION _ UP , Ġwhy ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager Listener ?. setUser Input Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Touch Listener Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġif Ġ(! photo View . is Image Loaded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Image () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġphoto View . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Image () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimage Path Ġ= Ġarguments ?. getString ( IMAGE _ PATH ) ĊĠĠĠĠĠĠĠ Ġval Ġimage Ġ= ĠFile ( image Path ) ĊĠĠĠĠĠĠĠ Ġphoto View . setImage ( Image Source . uri ( Uri . from File ( image ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( image : ĠFile ): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠImage Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( IMAGE _ PATH , Ġimage . path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }