/* Ċ Ġ* ĠDesign ed Ġand Ġdeveloped Ġby ĠD am ian Ġvan Ġden ĠB erg . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . dv db . material checklist . recycler . util Ċ Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ internal Ġclass ĠSimple Item Touch Helper ( ĊĠĠĠ Ġprivate Ġval Ġadapter : ĠItem Touch Helper Adapter , ĊĠĠĠ Ġis Drag Enabled : ĠBoolean Ġ= Ġtrue Ċ ) Ġ: ĠItem Touch Helper . Callback () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġdrag Flags : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠsetIs Drag Enabled ( is Drag Enabled ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetIs Drag Enabled ( isEnabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdrag Flags Ġ= Ġif Ġ( isEnabled ) ĠItem Touch Helper . UP Ġor ĠItem Touch Helper . DOWN Ġelse Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Long Press Drag Enabled (): ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġis Item View Swipe Enabled (): ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġget Movement Flags ( ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġswipe Flags Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġreturn Ġmake Movement Flags ( drag Flags , Ġswipe Flags ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Move ( ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠ Ġtarget : ĠRecyclerView . ViewHolder ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadapter . on Item Move ( view Holder . adapter Position , Ġtarget . adapter Position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Sw ip ed ( ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠ Ġdirection : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Selected Changed ( ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder ?, ĊĠĠĠĠĠĠĠ Ġaction State : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Selected Changed ( view Holder , Ġaction State ) ĊĠĠĠĠĠĠĠ Ġif Ġ( action State Ġ== ĠItem Touch Helper . ACTION _ STATE _ DR AG Ġ&& ĠviewHolder Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . on Drag Start ( view Holder ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear View ( ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . clear View ( re cyclerView , ĠviewHolder ) ĊĠĠĠĠĠĠĠ Ġadapter . on Drag Stop ( view Holder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Drop Over ( ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ Ġcurrent : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠ Ġtarget : ĠRecyclerView . ViewHolder ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadapter . can Drag Over Target ( current , Ġtarget ) ĊĠĠĠ Ġ} Ċ }