package Ġcom . l uk el or us so . presentation . view Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . Motion Event Ċ Ċ import Ġandroidx . view pager . widget . ViewPager Ċ Ċ class ĠMaybe Scroll ableView Pager ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: ĠView Pager ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġinitial X Value : ĠFloat Ġ= Ġ 0 . toFloat () ĊĠĠĠ Ġvar Ġdirection : ĠSw ipe Direction ĊĊĠĠĠ Ġenum Ġclass ĠSw ipe Direction Ġ{ ĊĠĠĠĠĠĠĠ ĠALL , ĠLEFT , ĠRIGHT , ĠNONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġdirection Ġ= ĠSw ipe Direction . ALL ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Click ableView Accessibility ") ĊĠĠĠ Ġoverride Ġfun Ġon Touch Event ( event : ĠMotion Event ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( is Swipe Allowed ( event )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Touch Event ( event ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Intercept Touch Event ( event : ĠMotion Event ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( is Swipe Allowed ( event )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Intercept Touch Event ( event ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġfalse ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Swipe Allowed ( event : ĠMotion Event ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . direction Ġ== ĠSw ipe Direction . ALL ) Ġreturn Ġtrue ĊĊĠĠĠĠĠĠĠ Ġif Ġ( direction Ġ== ĠSw ipe Direction . NONE ) ĊĠĠĠĠĠĠĠ Ġ// disable Ġany Ġswipe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( event . action Ġ== ĠMotion Event . ACTION _ DOWN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitial X Value Ġ= Ġevent . x ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( event . action Ġ== ĠMotion Event . ACTION _ MOVE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiff X Ġ= Ġevent . x Ġ- Ġinitial X Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( diff X Ġ> Ġ 0 Ġ&& Ġdirection Ġ== ĠSw ipe Direction . RIGHT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġswipe Ġfrom ĠLEFT Ġto ĠRIGHT Ġdetected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( diff X Ġ< Ġ 0 Ġ&& Ġdirection Ġ== ĠSw ipe Direction . LEFT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġswipe Ġfrom ĠRIGHT Ġto ĠLEFT Ġdetected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexception . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ Ċ } Ċ