package Ġcom . k uss . kr ude . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . Scale Gesture Detector Ċ import Ġandroid . view . Scale Gesture Detector . On Scale Gesture Listener Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . recyclerview . widget . RecyclerView . On Item Touch Listener ĊĊ Ċ class ĠScale Gesture Item Touch Listener ( context : ĠContext ?, Ġlistener : ĠCallback ) Ġ: ĊĠĠĠ ĠOn Item Touch Listener , ĠOn Scale Gesture Listener Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Scale Gesture Detector : ĠScale Gesture Detector Ġ= ĠScale Gesture Detector ( context , Ġthis ) ĊĠĠĠ Ġprivate Ġval Ġm Listener : ĠCallback ĊĠĠĠ Ġprivate Ġvar Ġm Dis allow Intercept Touch Event Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġm Scale Factor Ġ= Ġ 4 f ĊĊĠĠĠ Ġoverride Ġfun Ġon Intercept Touch Event ( ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , Ġevent : ĠMotion Event ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġm Scale Gesture Detector . on Touch Event ( event ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Touch Event ( re cyclerView : ĠRecyclerView , Ġevent : ĠMotion Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Scale Gesture Detector . on Touch Event ( event ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Request Dis allow Intercept Touch Event ( dis allow Intercept : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Dis allow Intercept Touch Event Ġ= Ġdis allow Intercept ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Scale Begin ( detector : ĠScale Gesture Detector ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Scale ( detector : ĠScale Gesture Detector ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġm Scale Factor Ġ*= Ġdetector . scale Factor ĊĊĠĠĠĠĠĠĠ Ġm Scale Factor Ġ= Ġ 0 . 1 f . coerce At Least ( m Scale Factor . coerce At Most ( 4 . 0 f )) ĊĊĠĠĠĠĠĠĠ Ġm Listener . on Scale Factor ( m Scale Factor ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Scale End ( detector : ĠScale Gesture Detector ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠCallback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Scale Factor ( scale Factor : ĠFloat ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġm Scale Gesture Detector . is Quick Scale Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġm Listener Ġ= Ġlistener ĊĠĠĠ Ġ} Ċ }