/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 5 ĠPaul ĠBur ke Ċ Ġ* Ċ Ġ* Ġ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 Ġco . paul bur ke . android . item touch helper demo Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġco . paul bur ke . android . item touch helper demo . helper . Item Touch Helper Adapter Ċ import Ġco . paul bur ke . android . item touch helper demo . helper . Item Touch Helper ViewHolder Ċ import Ġco . paul bur ke . android . item touch helper demo . helper . On Start Drag Listener Ċ import Ġkotlinx . android . extensions . Layout Container Ċ import Ġjava . util . ArrayList Ċ import Ġjava . util . Arrays Ċ import Ġjava . util . Collections Ċ Ċ /** Ċ Ġ* ĠSimple ĠRecyclerView . Adapter Ġthat Ġimplements Ġ[ Item Touch Helper Adapter ] Ġto Ġrespond Ġto Ġmove Ġand Ċ Ġ* Ġdismiss Ġevents Ġfrom Ġa Ġ[ android . support . v 7 . widget . helper . Item Touch Helper ]. Ċ Ġ* Ċ Ġ* Ġ@ author ĠPaul ĠBur ke Ġ( ipa ul pro ) Ċ Ġ*/ Ċ class ĠRe cycler ListAdapter ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġdrag Start Listener : ĠOn Start Drag Listener Ċ ) Ġ: ĠRecyclerView . Adapter < Recycler ListAdapter . Item ViewHolder >(), ĠItem Touch Helper Adapter Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġitems Ġ= ĠArrayList < String >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġitems . addAll ( Arrays . asList (* context . resources . getString Array ( R . array . dummy _ items ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠItem ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . item _ main , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠItem ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Click ableView Accessibility ") ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠItem ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . textView . text Ġ= Ġitems [ position ] ĊĊĠĠĠĠĠĠĠ Ġ// ĠStart Ġa Ġdrag Ġwhenever Ġthe Ġhandle Ġview Ġit Ġtouched ĊĠĠĠĠĠĠĠ Ġholder . handle View . setOn Touch Listener Ġ{ Ġv , Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( event . action Mask ed Ġ== ĠMotion Event . ACTION _ DOWN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag Start Listener . onStart Drag ( holder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Dismiss ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitems . remove At ( position ) ĊĠĠĠĠĠĠĠ Ġnotify Item Removed ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Move ( from Position : ĠInt , Ġto Position : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠCollections . swap ( items , Ġfrom Position , Ġto Position ) ĊĠĠĠĠĠĠĠ Ġnotify Item Moved ( from Position , Ġto Position ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitems . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSimple Ġexample Ġof Ġa Ġview Ġholder Ġthat Ġimplements Ġ[ Item Touch Helper ViewHolder ] Ġand Ġhas Ġa ĊĠĠĠĠ Ġ* Ġ" handle " Ġview Ġthat Ġiniti ates Ġa Ġdrag Ġevent Ġwhen Ġtouched . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠItem ViewHolder ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġcontainer View : ĠView ĊĠĠĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( container View ), ĊĠĠĠĠĠĠĠ ĠLayout Container , ĊĠĠĠĠĠĠĠ ĠItem Touch Helper ViewHolder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval ĠtextView : ĠTextView Ġ= ĠitemView . findViewById < View >( R . id . text ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġval Ġhandle View : ĠImageView Ġ= ĠitemView . findViewById < View >( R . id . handle ) Ġas ĠImageView ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . set BackgroundColor ( Color . LT GRAY ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Clear () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . set BackgroundColor ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ