package Ġcom . example . inout 2 0 2 0 _ aim ers . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics .* Ċ import Ġandroid . graphics . drawable . Anim atable Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroidx . appcompat . content . res . AppCompat Resources Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . inout 2 0 2 0 _ aim ers . R ĊĊ Ċ abstract Ġclass ĠSw ipe ToDelete Callback Ġinternal Ġconstructor ( mContext : ĠContext ?) Ġ: ĠItem Touch Helper . Callback () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Clear Paint : ĠPaint Ġ= ĠPaint () ĊĠĠĠ Ġprivate Ġval Ġm Background : ĠColor Drawable Ġ= ĠColor Drawable () ĊĠĠĠ Ġprivate Ġval ĠbackgroundColor : ĠInt Ġ= ĠColor . parse Color ("# b 8 0 f 0 a ") ĊĠĠĠ Ġprivate Ġval Ġdelete Drawable : ĠDrawable ? ĊĠĠĠ Ġprivate Ġval Ġintr insic Width : ĠInt ĊĠĠĠ Ġprivate Ġval Ġintr insic Height : ĠInt ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġm Clear Paint . xfer mode Ġ= ĠPort er D uff X fer mode ( Port er D uff . Mode . CLEAR ) ĊĠĠĠĠĠĠĠ Ġdelete Drawable Ġ= ĠmContext ?. let Ġ{ ĠAppCompat Resources . get Drawable ( it , ĠR . drawable . av d _ bin _ open _ close _ black _ 2 4 dp ) Ġ} ĊĠĠĠĠĠĠĠ Ġintr insic Width Ġ= Ġdelete Drawable !!. intrinsic Width ĊĠĠĠĠĠĠĠ Ġintr insic Height Ġ= Ġdelete Drawable . intrinsic Height ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Movement Flags ( re cyclerView : ĠRecyclerView , ĠviewHolder : ĠRecyclerView . ViewHolder ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmake Movement Flags ( 0 , ĠItem Touch Helper . LEFT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Move ( ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠ ĠviewHolder 1 : ĠRecyclerView . ViewHolder ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ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 ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Child Draw ( c , Ġre cyclerView , ĠviewHolder , Ġd X , Ġd Y , Ġaction State , Ġis Currently Active ) ĊĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= ĠviewHolder . item View ĊĠĠĠĠĠĠĠ Ġval Ġitem Height Ġ= ĠitemView . height ĊĠĠĠĠĠĠĠ Ġval Ġis Cancelled Ġ= Ġd X Ġ== Ġ 0 f Ġ&& Ġ! is Currently Active ĊĠĠĠĠĠĠĠ Ġif Ġ( is Cancelled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear Canvas ( c , ĠitemView . right Ġ+ Ġd X , ĠitemView . top . toFloat (), ĠitemView . right . toFloat (), ĠitemView . bottom . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Child Draw ( c , Ġre cyclerView , ĠviewHolder , Ġd X , Ġd Y , Ġaction State , Ġis Currently Active ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Background . color Ġ= ĠbackgroundColor ĊĠĠĠĠĠĠĠ Ġm Background . setBounds ( item View . right Ġ+ Ġd X . toInt (), ĠitemView . top , ĠitemView . right , ĠitemView . bottom ) ĊĠĠĠĠĠĠĠ Ġm Background . draw ( c ) ĊĠĠĠĠĠĠĠ Ġval Ġdelete Icon Top Ġ= ĠitemView . top Ġ+ Ġ( item Height Ġ- Ġintr insic Height ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġdelete Icon Margin Ġ= Ġ( item Height Ġ- Ġintr insic Height ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġdelete Icon Left Ġ= ĠitemView . right Ġ- Ġdelete Icon Margin Ġ- Ġintr insic Width ĊĠĠĠĠĠĠĠ Ġval Ġdelete Icon Right Ġ= ĠitemView . right Ġ- Ġdelete Icon Margin ĊĠĠĠĠĠĠĠ Ġval Ġdelete Icon Bottom Ġ= Ġdelete Icon Top Ġ+ Ġintr insic Height ĊĠĠĠĠĠĠĠ Ġdelete Drawable !!. setBounds ( delete Icon Left , Ġdelete Icon Top , Ġdelete Icon Right , Ġdelete Icon Bottom ) ĊĠĠĠĠĠĠĠ Ġdelete Drawable . draw ( c ) ĊĠĠĠĠĠĠĠ Ġ( delete Drawable Ġas ĠAnim atable ). start () ĊĊĠĠĠĠĠĠĠ Ġsuper . on Child Draw ( c , Ġre cyclerView , ĠviewHolder , Ġd X , Ġd Y , Ġaction State , Ġis Currently Active ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear Canvas ( c : ĠCanvas , Ġleft : ĠFloat ?, Ġtop : ĠFloat ?, Ġright : ĠFloat ?, Ġbottom : ĠFloat ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(( left Ġ!= Ġnull ) Ġ&& Ġ( top Ġ!= Ġnull ) Ġ&& Ġ( right Ġ!= Ġnull ) Ġ&& Ġ( bottom Ġ!= Ġnull )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc . draw Rect ( left , Ġtop , Ġright , Ġbottom , Ġm Clear Paint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Swipe Threshold ( view Holder : ĠRecyclerView . ViewHolder ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 . 5 5 f ĊĠĠĠ Ġ} Ċ } Ċ