package Ġcom . ag u ilar ke vin . reminder . app . adapters . event Hooks Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . ag u ilar ke vin . reminder . R Ċ import Ġcom . ag u ilar ke vin . reminder . app . models . Event Item Ċ import Ġcom . ag u ilar ke vin . reminder . app . utils . AlertDialog Ċ import Ġcom . id an atz . one adapter . external . event _ hooks . Swipe Event Hook Ċ Ċ class ĠSw ipe Event Hook Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠICON _ M ARGIN Ġ= Ġ 5 0 ĊĊĠĠĠ Ġfun Ġget Swipe Event Hook ( context : ĠContext ): ĠSw ipe Event Hook < Event Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSw ipe Event Hook < Event Item >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġswipe Direction Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSw ipe Event Hook . Swipe Direction . Start , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSw ipe Event Hook . Swipe Direction . End ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Swipe Ġ{ Ġcanvas , Ġx Axis Offset , Ġview Binder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaint Swipe Area ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Axis Offset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Binder . root View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Swipe Complete Ġ{ Ġmodel , Ġview Binder , Ġmetadata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( metadata . swipe Direction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSw ipe Event Hook . Swipe Direction . Start Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog (). new AlertDialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" xd ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" xd " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSw ipe Event Hook . Swipe Direction . End Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠLog . e (" x ", Ġ" d ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpaint Swipe Area ( ĊĠĠĠĠĠĠĠ Ġcanvas : ĠCanvas , ĊĠĠĠĠĠĠĠ Ġx Axis Offset : ĠFloat , ĊĠĠĠĠĠĠĠ Ġroot View : ĠView , ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( xAxis Offset Ġ< Ġ 0 Ġ|| Ġx Axis Offset Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= ĠContext Compat . getColor ( context , ĠR . color . accent 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpaint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġcolor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . is Anti Alias Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrect F Ġ= ĠRect F ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . left . toFloat (), Ġroot View . top . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . right . toFloat (), Ġroot View . bottom . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( rect F , Ġ 2 5 f , Ġ 2 5 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Icon ( xAxis Offset , Ġroot View , Ġcontext )?. draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Icon ( xAxis Offset : ĠFloat , Ġroot View : ĠView , Ġcontext : ĠContext ): ĠDrawable ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( xAxis Offset Ġ< Ġ 0 ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Icon Left ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= ĠContext Compat . get Drawable ( context , ĠR . drawable . ic _ edit _ 2 4 px ) !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View Ġ= Ġroot View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( xAxis Offset Ġ> Ġ 0 ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Icon Right ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= ĠContext Compat . get Drawable ( context , ĠR . drawable . ic _ done _ 2 4 px ) !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View Ġ= Ġroot View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// methods Ġto Ġset Ġicon Ġbounds ĊĊĠĠĠ Ġ// in Ġcase Ġswipe Ġrig th ĊĠĠĠ Ġprivate Ġfun Ġget Icon Right ( icon : ĠDrawable , Ġroot View : ĠView ): ĠDrawable Ġ{ ĊĠĠĠĠĠĠĠ Ġicon . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmiddle Ġ= Ġroot View . bottom Ġ- Ġroot View . top ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtop Ġ= Ġroot View . top Ġ+ Ġ( middle Ġ/ Ġ 2 ) Ġ- Ġ( it . intrinsic Height Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbottom Ġ= Ġtop Ġ+ Ġit . intrinsic Height ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġleft Ġ= Ġroot View . left Ġ+ ĠICON _ M ARGIN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġleft Ġ+ Ġit . intrinsic Width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setBounds ( left , Ġtop , Ġright , Ġbottom ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// in Ġcase Ġswipe Ġleft ĊĠĠĠ Ġprivate Ġfun Ġget Icon Left ( icon : ĠDrawable , Ġroot View : ĠView ): ĠDrawable Ġ{ ĊĠĠĠĠĠĠĠ Ġicon . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmiddle Ġ= Ġroot View . bottom Ġ- Ġroot View . top ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtop Ġ= Ġroot View . top Ġ+ Ġ( middle Ġ/ Ġ 2 ) Ġ- Ġ( it . intrinsic Height Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbottom Ġ= Ġtop Ġ+ Ġit . intrinsic Height ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġroot View . right Ġ- ĠICON _ M ARGIN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġleft Ġ= Ġright Ġ- Ġit . intrinsic Width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setBounds ( left , Ġtop , Ġright , Ġbottom ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }