package Ġyet . ui . page Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġyet . ui . widget . Action Ċ import Ġyet . ui . widget . list view . swipe . Swipe Handler X Ċ import Ġyet . ui . widget . list view . swipe . X Swipe Item View Ċ import Ġyet . util . log . x log Ċ Ċ /** Ċ Ġ* ĠæĶ¯æĮģ å¤ļ éĢī åĴĮ ä¾§ æ»ĳ çļĦ ListView ĠFragment ĊĊ Ġ* Ġ@ param Ċ Ġ*/ Ċ abstract Ġclass ĠSw ipe Check List Page X < T > Ġ: ĠCheck List Page < T >() Ġ{ Ċ ĉ private Ġvar Ġswipe Handler : ĠSw ipe Handler X ? Ġ= Ġnull Ċ ĉ override Ġfun Ġpack New View ( context : ĠContext , Ġview : ĠView , Ġposition : ĠInt ): ĠView Ġ{ Ċĉ ĉ val Ġv Ġ= Ġsuper . pack New View ( context , Ġview , Ġposition ) Ċĉ ĉ if Ġ( can Swipe () Ġ&& Ġneed Swipe ( position )) Ġ{ Ċĉĉ ĉ val Ġswipe View Ġ= ĠX Swipe Item View ( context , Ġv ) Ċĉĉ ĉ on Add Swipe Action ( swipe View , Ġposition , ĠgetItem ( position )) Ċĉĉ ĉ swipe View . commit () Ċĉĉ ĉ swipe View . on Swipe Item Action Ġ= Ġ{ Ċĉĉĉ ĉ swipe Item View , Ġaction View , Ġaction Ġ-> Ċĉĉĉ ĉ val Ġpos Ġ= ĠlistView . getPosition For View ( swipe Item View ) Ċĉĉĉ ĉ if Ġ( pos Ġ>= Ġ 0 ) Ġ{ Ċĉĉĉĉ ĉ on Swipe Action ( swipe Item View , Ġaction View , Ġpos , Ġaction ) Ċĉĉĉ ĉ } Ċĉĉ ĉ } Ċĉĉ ĉ return Ġswipe View Ċĉ ĉ } Ċĉ ĉ return Ġv Ċ ĉ } ĊĊ ĉ override Ġfun Ġunpack BindView ( position : ĠInt , ĠitemView : ĠView , Ġitem : ĠT ): ĠView Ġ{ Ċĉ ĉ if Ġ( item View Ġis ĠX Swipe Item View ) Ġ{ Ċĉĉ ĉ on Update Swipe View ( item View , Ġposition , Ġitem ) Ċĉĉ ĉ return Ġsuper . unpack BindView ( position , ĠitemView . item View , Ġ Ġitem ) Ċĉ ĉ } Ċĉ ĉ return Ġsuper . unpack BindView ( position , ĠitemView , Ġ Ġitem ) Ċ ĉ } ĊĊ ĉ override Ġfun ĠonCreate Content ( context : ĠContext , Ġcontent View : ĠLinearLayout ) Ġ{ Ċĉ ĉ super . onCreate Content ( context , Ġcontent View ) Ċĉ ĉ swipe Handler Ġ= ĠSw ipe Handler X ( list View ) Ċĉ ĉ swipe Handler !!. enable ( can Swipe ()) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġåľ¨ è¿ĻéĩĮ æ·»åĬł Action ĊĊĉ Ġ* Ġ@ param Ġswipe View Ċĉ Ġ* Ġ* Ċĉ Ġ* Ġ@ param Ġposition Ċĉ Ġ* Ġ* Ċĉ Ġ* Ġ@ param Ġitem Ċĉ Ġ*/ Ċ ĉ abstract Ġfun Ġon Add Swipe Action ( swipe View : ĠX Swipe Item View , Ġposition : ĠInt , Ġitem : ĠT ) ĊĊ ĉ /** Ċĉ Ġ* Ġåľ¨ è¿ĻéĩĮ æĽ´æĸ° Action ĊĊĉ Ġ* Ġ@ param Ġswipe View Ċĉ Ġ* Ġ* Ċĉ Ġ* Ġ@ param Ġposition Ċĉ Ġ* Ġ* Ċĉ Ġ* Ġ@ param Ġitem Ċĉ Ġ*/ Ċ ĉ open Ġfun ĠonUpdate Swipe View ( swipe View : ĠX Swipe Item View , Ġposition : ĠInt , Ġitem : ĠT ) Ġ{ Ċ ĉ } ĊĊ ĉ override Ġfun Ġbefore Enter Choice Mode () Ġ{ Ċĉ ĉ swipe Handler !!. enable ( false ) Ċ ĉ } ĊĊ ĉ override Ġfun Ġafter Leave Choice Mode ( items : ĠList < T >) Ġ{ Ċĉ ĉ swipe Handler !!. enable ( can Swipe ()) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġæ Ł Ĳ ä¸ª Item æĺ¯åĲ¦ åħģè®¸ swipe ä¾§ æ»ĳ ĊĊĉ Ġ* Ġ@ param Ġposition Ċĉ Ġ* Ġ* Ċĉ Ġ* Ġ@ return Ċĉ Ġ*/ Ċ ĉ open Ġfun Ġneed Swipe ( position : ĠInt ): ĠBoolean Ġ{ Ċĉ ĉ return Ġtrue Ċ ĉ } ĊĊ ĉ open Ġfun Ġcan Swipe (): ĠBoolean Ġ{ Ċĉ ĉ return Ġtrue Ċ ĉ } ĊĊ ĉ private Ġfun Ġon Swipe Action ( swipe Item View : ĠX Swipe Item View , Ġaction View : ĠView , Ġposition : ĠInt , Ġaction : ĠAction ) Ġ{ Ċĉ ĉ swipe Handler !!. reset Current () Ċĉ ĉ val Ġcount Adapter Ġ= Ġadapter . count Ċĉ ĉ var Ġpos Ġ= Ġposition Ċĉ ĉ if Ġ( pos Ġ>= Ġ 0 Ġ&& Ġpos Ġ< ĠlistView . header Views Count ) Ġ{ Ċĉĉ ĉ on Swipe Action Header ( swipe Item View , Ġaction View , Ġpos , Ġaction ) Ċĉ ĉ } Ċĉ ĉ pos Ġ-= ĠlistView . header Views Count Ċĉ ĉ if Ġ( pos Ġ>= Ġ 0 Ġ&& Ġpos Ġ< Ġcount Adapter ) Ġ{ Ċĉĉ ĉ on Swipe Action Adapter ( swipe Item View , Ġaction View , Ġpos , Ġaction , Ġadapter . getItem ( pos )) Ċĉ ĉ } Ċĉ ĉ pos Ġ-= Ġcount Adapter Ċĉ ĉ if Ġ( pos Ġ>= Ġ 0 Ġ&& Ġpos Ġ< ĠlistView . footer Views Count ) Ġ{ Ċĉĉ ĉ on Swipe Action Footer ( swipe Item View , Ġaction View , Ġpos , Ġaction ) Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ open Ġfun Ġon Swipe Action Adapter ( swipe Item View : ĠX Swipe Item View , Ġaction View : ĠView , Ġposition : ĠInt , Ġaction : ĠAction , Ġitem : ĠT ) Ġ{ Ċĉ ĉ x log . d ( position , Ġaction . tag ) Ċ ĉ } ĊĊ ĉ open Ġfun Ġon Swipe Action Header ( swipe Item View : ĠX Swipe Item View , Ġaction View : ĠView , Ġposition : ĠInt , Ġaction : ĠAction ) Ġ{ ĊĊ ĉ } ĊĊ ĉ open Ġfun Ġon Swipe Action Footer ( swipe Item View : ĠX Swipe Item View , Ġaction View : ĠView , Ġposition : ĠInt , Ġaction : ĠAction ) Ġ{ ĊĊ ĉ } Ċ } Ċ