package Ġsmart adapter . view event . swipe Ċ Ċ /* Ċ Ġ* ĠCreated Ġby ĠMan ne ĠÃĸ hl und Ġon Ġ 2 0 1 9 - 0 8 - 1 5 . Ċ Ġ* ĠCopyright Ġ( c ) ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġsmart adapter . Smart Recycler Adapter Ċ import Ġsmart adapter . Smart ViewHolder Type Ċ import Ġsmart adapter . view event . model . View Event Ċ import Ġsmart adapter . view event . view holder . On Item Sw ip ed Listener Ċ import Ġsmart adapter . view holder . Smart ViewHolder Ċ import Ġkotlin . math . abs Ċ Ċ /** Ċ Ġ* ĠThe Ġbasic Ġimplementation Ġof Ġ[ Swipe Event Binder ]. Ċ Ġ* Ċ Ġ* Ġ@ see ĠSw ipe Event Binder Ċ Ġ*/ Ċ open Ġclass ĠBasic Swipe Event Binder ( ĊĠĠĠ Ġoverride Ġval Ġidentifier : ĠAny Ġ= ĠBasic Swipe Event Binder :: class , ĊĠĠĠ Ġoverride Ġvar Ġlong Press Drag Enabled : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġoverride Ġvar Ġswipe Flags : ĠSw ipe Flags Ġ= ĠItem Touch Helper . LEFT Ġor ĠItem Touch Helper . RIGHT , ĊĠĠĠ Ġoverride Ġvar ĠviewHolder Types : ĠList < Smart ViewHolder Type > Ġ= ĠlistOf ( Smart ViewHolder :: class ), ĊĠĠĠ Ġoverride Ġvar Ġevent Listener : Ġ( View Event . On Item Sw ip ed ) Ġ-> ĠUnit Ċ ) Ġ: ĠSw ipe Event Binder () Ġ{ ĊĊĠĠĠ Ġoverride Ġlateinit Ġvar Ġsmart Recycler Adapter : ĠSmart Recycler Adapter ĊĊĠĠĠ Ġoverride Ġfun Ġget Movement Flags ( ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġswipe Flags Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( view Holder Type Ġin ĠviewHolder Types ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Holder Type . java . isAssignableFrom ( view Holder . java Class )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġswipe Flags Ġ= Ġthis . swipe Flags ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmake Movement Flags ( 0 , Ġswipe Flags ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Move ( ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠ Ġtarget : ĠRecyclerView . ViewHolder ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Sw ip ed ( view Holder : ĠRecyclerView . ViewHolder , Ġdirection : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view Holder Ġis ĠOn Item Sw ip ed Listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . on Item Sw ip ed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Event . On Item Sw ip ed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsmart Recycler Adapter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder Ġas ĠSmart ViewHolder <* >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . adapter Position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . item View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirection ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġevent Listener . invoke ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Event . On Item Sw ip ed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsmart Recycler Adapter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder Ġas ĠSmart ViewHolder <* >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . adapter Position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . item View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Long Press Drag Enabled (): ĠBoolean Ġ= Ġlong Press Drag Enabled ĊĊĠĠĠ Ġoverride Ġfun Ġon Child Draw ( ĊĠĠĠĠĠĠĠ Ġcanvas : ĠCanvas , ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠ Ġd X : ĠFloat , ĊĠĠĠĠĠĠĠ Ġd Y : ĠFloat , ĊĠĠĠĠĠĠĠ Ġaction State : ĠInt , ĊĠĠĠĠĠĠĠ Ġis Currently Active : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( action State Ġ== ĠItem Touch Helper . ACTION _ STATE _ SW I PE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalpha Ġ= Ġ 1 Ġ- Ġabs ( dX ) Ġ/ Ġre cyclerView . width ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . item View . alpha Ġ= Ġalpha ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . on Child Draw ( canvas , Ġre cyclerView , ĠviewHolder , Ġd X , Ġd Y , Ġaction State , Ġis Currently Active ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind ( ĊĠĠĠĠĠĠĠ Ġsmart Recycler Adapter : ĠSmart Recycler Adapter , ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView ĊĠĠĠ Ġ): ĠBasic Swipe Event Binder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . smart Recycler Adapter Ġ= Ġsmart Recycler Adapter ĊĠĠĠĠĠĠĠ Ġval Ġtouch Helper Ġ= ĠItem Touch Helper ( this ) ĊĠĠĠĠĠĠĠ Ġtouch Helper . attach To RecyclerView ( re cyclerView ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ } Ċ