package Ġcn . ww j . my to uc he vent . widget Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . widget . ListView Ċ import Ġkotlin . math . abs Ċ Ċ class ĠMy ListView ( context : ĠContext ?, Ġattrs : ĠAttributeSet ?) Ġ: ĊĠĠĠ ĠListView ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" ON _ TO UCH " ĊĠĠĠ Ġprivate Ġvar Ġlast X Ġ= Ġ 0 F ĊĠĠĠ Ġprivate Ġvar Ġlast Y Ġ= Ġ 0 F ĊĊĠĠĠ Ġoverride Ġfun Ġdispatch Touch Event ( ev : ĠMotion Event ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġev . x ĊĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġev . y ĊĠĠĠĠĠĠĠ Ġwhen Ġ( ev . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ DOWN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent ?. request Dis allow Intercept Touch Event ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ MOVE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( abs ( x Ġ- Ġlast X ) Ġ> Ġabs ( y Ġ- Ġlast Y )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent ?. request Dis allow Intercept Touch Event ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ UP Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlast X Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġlast Y Ġ= Ġy ĊĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ------- ListView Ġdispatch Touch Event ") ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . dispatch Touch Event ( ev ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Intercept Touch Event ( ev : ĠMotion Event ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ------- ListView Ġon Intercept Touch Event ") ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Intercept Touch Event ( ev ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Touch Event ( ev : ĠMotion Event ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ------- ListView Ġon Touch Event ") ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Touch Event ( ev ) ĊĠĠĠ Ġ} ĊĊ Ċ }