package Ġcom . kh ob en . aut ot itle . ui . recyclerview . overlay s Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . kh ob en . aut ot itle . R ĊĊ Ċ abstract Ġclass ĠSw ipe ToDelete Callback Ġinternal Ġconstructor ( context : ĠContext ) Ġ: ĊĠĠĠ ĠItem Touch Helper . Callback () Ġ{ ĊĊĠĠĠ Ġvar Ġswipe Listener : ĠSw ipe Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġinterface ĠSw ipe Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġswipe Started ( view : ĠView ) ĊĠĠĠĠĠĠĠ Ġfun Ġswipe Ended ( view : ĠView ) ĊĠĠĠĠĠĠĠ Ġfun Ġswipe Deleted ( view : ĠView ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġm Background Ġ= ĠColor Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtyped Value Ġ= ĠTyped Value () ĊĠĠĠĠĠĠĠ Ġcontext . theme . resolve Attribute ( R . attr . color Error , Ġtyped Value , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġcolor Ġ= ĠContext Compat . getColor ( context , Ġtyped Value . resourceId ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġdelete Drawable Ġ= ĠContext Compat . get Drawable ( context , ĠR . drawable . delete _ icon _ 2 4 dp ) !! ĊĊĠĠĠ Ġoverride Ġfun Ġget Movement Flags ( ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder ĊĠĠĠ Ġ) Ġ= Ġmake Movement Flags ( 0 , ĠItem Touch Helper . LEFT ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Move ( ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠ ĠviewHolder 1 : ĠRecyclerView . ViewHolder ĊĠĠĠ Ġ) Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġon Child Draw ( ĊĠĠĠĠĠĠĠ Ġc : ĠCanvas , ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠ Ġd X : ĠFloat , ĊĠĠĠĠĠĠĠ Ġd Y : ĠFloat , ĊĠĠĠĠĠĠĠ Ġaction State : ĠInt , ĊĠĠĠĠĠĠĠ Ġis Currently Active : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= ĠviewHolder . item View ĊĠĠĠĠĠĠĠ Ġif Ġ( action State Ġ== ĠItem Touch Helper . ACTION _ STATE _ SW I PE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Currently Active ) Ġswipe Listener ?. swipe Started ( view Holder . item View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( dX Ġ>= Ġ 0 ) Ġswipe Listener ?. swipe Ended ( view Holder . item View ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġicon Margin Vertical Ġ= Ġ( view Holder . item View . height Ġ- Ġdelete Drawable . intrinsic Height ) Ġ/ Ġ 2 ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd X Ġ<= Ġ- item View . right Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdisable Ġbackground Ġf lick ering Ġon Ġitem Ġcreate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Child Draw ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd X , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Currently Active ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd X Ġ> Ġ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Background . setBounds ( item View . left , ĠitemView . top , Ġd X . toInt (), ĠitemView . bottom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Drawable . setBounds ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . left Ġ+ Ġicon Margin Vertical , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . top Ġ+ Ġicon Margin Vertical , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . left Ġ+ Ġicon Margin Vertical Ġ+ Ġdelete Drawable . intrinsic Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . bottom Ġ- Ġicon Margin Vertical ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Background . setBounds ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . right Ġ+ Ġd X . toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . top , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . right , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . bottom ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Drawable . setBounds ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . right Ġ- Ġicon Margin Vertical Ġ- Ġdelete Drawable . intrinsic Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . top Ġ+ Ġicon Margin Vertical , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . right Ġ- Ġicon Margin Vertical , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . bottom Ġ- Ġicon Margin Vertical ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Drawable . level Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Background . draw ( c ) ĊĊĠĠĠĠĠĠĠ Ġc . save () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( dX Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc . clip Rect ( item View . left , ĠitemView . top , Ġd X . toInt (), ĠitemView . bottom ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc . clip Rect ( item View . right Ġ+ Ġd X . toInt (), ĠitemView . top , ĠitemView . right , ĠitemView . bottom ) ĊĊĠĠĠĠĠĠĠ Ġdelete Drawable . draw ( c ) ĊĊĠĠĠĠĠĠĠ Ġc . restore () ĊĊĠĠĠĠĠĠĠ Ġsuper . on Child Draw ( c , Ġre cyclerView , ĠviewHolder , Ġd X , Ġd Y , Ġaction State , Ġis Currently Active ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġon Sw ip ed Done ( view Holder : ĠRecyclerView . ViewHolder , Ġdirection : ĠInt ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Sw ip ed ( view Holder : ĠRecyclerView . ViewHolder , Ġdirection : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġswipe Listener ?. swipe Deleted ( view Holder . item View ) ĊĠĠĠĠĠĠĠ Ġon Sw ip ed Done ( view Holder , Ġdirection ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Swipe Threshold ( view Holder : ĠRecyclerView . ViewHolder ) Ġ= Ġ 0 . 5 F Ċ } Ċ