package Ġme . bak um on . money keeper . ui . common Ċ Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . support . v 7 . widget . helper . Item Touch Helper Ċ import Ġme . dr ake et . mult it ype . Multi Type Adapter Ċ import Ġjava . util .* Ċ Ċ class ĠSort Drag Callback Ġconstructor ( private Ġval Ġadapter : ĠMulti Type Adapter , Ġprivate Ġval Ġon Moved CallBack : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ: ĠItem Touch Helper . Simple Callback ( ĊĠĠĠĠĠĠĠ ĠItem Touch Helper . LEFT Ġor ĠItem Touch Helper . RIGHT Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠItem Touch Helper . UP Ġor ĠItem Touch Helper . DOWN , Ġ 0 ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Move ( re cyclerView : ĠRecyclerView ?, ĠviewHolder : ĠRecyclerView . ViewHolder , Ġtarget : ĠRecyclerView . ViewHolder ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Moved ( re cyclerView : ĠRecyclerView , ĠviewHolder : ĠRecyclerView . ViewHolder , Ġfrom Pos : ĠInt , Ġtarget : ĠRecyclerView . ViewHolder , Ġto Pos : ĠInt , Ġx : ĠInt , Ġy : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġ è½¬æį¢ æķ°æį® é¡ºåºı ĊĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= ĠviewHolder . adapter Position ĊĠĠĠĠĠĠĠ Ġval Ġto Ġ= Ġtarget . adapter Position ĊĊĠĠĠĠĠĠĠ Ġif Ġ( from Ġ< Ġto ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġfrom Ġuntil Ġto ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCollections . swap ( adapter . items , Ġi , Ġi Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġfrom Ġdown To Ġto Ġ+ Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCollections . swap ( adapter . items , Ġi , Ġi Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadapter . notify Item Moved ( view Holder . adapter Position , Ġtarget . adapter Position ) ĊĠĠĠĠĠĠĠ Ġon Moved CallBack ?. invoke () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Sw ip ed ( view Holder : ĠRecyclerView . ViewHolder ?, Ġdirection : ĠInt ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Drop Over ( re cyclerView : ĠRecyclerView ?, Ġcurrent : ĠRecyclerView . ViewHolder ?, Ġtarget : ĠRecyclerView . ViewHolder ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Long Press Drag Enabled (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ Ċ }