package Ġcom . j ok et ng . time lin est ep view . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . support . annotation . Color Int Ċ import Ġandroid . support . annotation . Drawable Res Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . j ok et ng . time lin est ep view . Layout Type Ċ import Ġcom . j ok et ng . time lin est ep view . Orientation Show Type Ċ import Ġcom . j ok et ng . time lin est ep view . R Ċ import Ġcom . j ok et ng . time lin est ep view . adapter . Time Line Step Adapter Ċ import Ġcom . j ok et ng . time lin est ep view . bean . Base Bean Ċ import Ġcom . j ok et ng . time lin est ep view . util . d ipc Ċ Ċ /** Ċ Ġ* Ġ@ Description : Ċ Ġ* Ġ@ Author : Ġ Ġj ok et ng Ċ Ġ* Ġ@ Email : Ġ Ġj ok et ng @ 1 6 3 . com Ċ Ġ* Ġ@ Time : ĠĠ 2 0 1 8 / 1 1 / 1 Ċ Ġ*/ Ċ class ĠTime Line Step View ( context : ĠContext , Ġattribute Set : ĠAttributeSet ) Ġ: ĠRecyclerView ( context , Ġattribute Set ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġline In Active Ġ= ĠContext Compat . getColor ( context , ĠR . color . c _ main _ gray ) ĊĠĠĠ Ġprivate Ġvar Ġline Active Ġ= ĠContext Compat . getColor ( context , ĠR . color . c _ main _ orange ) ĊĠĠĠ Ġprivate Ġvar Ġdot In Active Ġ= ĠContext Compat . get Drawable ( context , ĠR . drawable . shape _ dot _ gray ) ĊĠĠĠ Ġprivate Ġvar Ġdot Active Ġ= ĠContext Compat . get Drawable ( context , ĠR . drawable . shape _ dot _ orange ) ĊĠĠĠ Ġprivate Ġvar Ġdot Drawable Current Ġ= ĠContext Compat . get Drawable ( context , ĠR . drawable . shape _ current ) ĊĠĠĠ Ġprivate Ġvar Ġdot Drawable Start : ĠDrawable ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdot Drawable End : ĠDrawable ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠlineWidth Ġ= Ġcontext . d ipc ( 2 ) ĊĠĠĠ Ġprivate Ġvar Ġdot Mark Size Ġ= Ġcontext . d ipc ( 1 2 ) ĊĠĠĠ Ġprivate Ġvar Ġleft Layout Background : ĠDrawable ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġright Layout Background : ĠDrawable ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġis Custom View Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġlayout Type Ġ= ĠLayout Type . RIGHT ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtime Line Step Adapter : ĠTime Line Step Adapter < out ĠBase Bean > ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġta Ġ= Ġcontext . obtain Styled Attributes ( attribute Set , ĠR . style able . Time Line Step View ) ĊĠĠĠĠĠĠĠ ĠlineWidth Ġ= Ġta . get Dimension Pixel Size ( R . style able . Time Line Step View _ lineWidth , Ġcontext . d ipc ( 2 )) ĊĠĠĠĠĠĠĠ Ġline In Active Ġ= Ġta . getColor ( R . style able . Time Line Step View _ line In Active Color , ĠContext Compat . getColor ( context , ĠR . color . c _ main _ gray )) ĊĠĠĠĠĠĠĠ Ġline Active Ġ= Ġta . getColor ( R . style able . Time Line Step View _ line Active Color , ĠContext Compat . getColor ( context , ĠR . color . c _ main _ orange )) ĊĊĠĠĠĠĠĠĠ Ġdot In Active Ġ= Ġta . get Drawable ( R . style able . Time Line Step View _ mark In Active ) ĊĠĠĠĠĠĠĠ Ġdot Active Ġ= Ġta . get Drawable ( R . style able . Time Line Step View _ mark Active ) ĊĠĠĠĠĠĠĠ Ġdot Drawable Start Ġ= Ġta . get Drawable ( R . style able . Time Line Step View _ mark Start ) ĊĠĠĠĠĠĠĠ Ġdot Drawable End Ġ= Ġta . get Drawable ( R . style able . Time Line Step View _ mark End ) ĊĠĠĠĠĠĠĠ Ġdot Drawable Current Ġ= Ġta . get Drawable ( R . style able . Time Line Step View _ mark Current ) ĊĠĠĠĠĠĠĠ Ġdot Mark Size Ġ= Ġta . get Dimension Pixel Size ( R . style able . Time Line Step View _ mark Size , Ġcontext . d ipc ( 1 2 )) ĊĊĠĠĠĠĠĠĠ Ġleft Layout Background Ġ= Ġta . get Drawable ( R . style able . Time Line Step View _ left Layout Background ) ĊĠĠĠĠĠĠĠ Ġright Layout Background Ġ= Ġta . get Drawable ( R . style able . Time Line Step View _ right Layout Background ) ĊĊĠĠĠĠĠĠĠ Ġis Custom View Ġ= Ġta . getBoolean ( R . style able . Time Line Step View _ is Custom , false ) ĊĠĠĠĠĠĠĠ Ġlayout Type Ġ= Ġwhen ( ta . getInt ( R . style able . Time Line Step View _ layout Type , Ġ 1 )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 -> ĠLayout Type . LEFT ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 -> ĠLayout Type . RIGHT ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 -> ĠLayout Type . ALL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Type . RIGHT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġta . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠBase Bean > init Data ( list : ĠList < T >, Ġorientation : ĠOrientation Show Type , Ġdata CallBack : ĠOnInit Data CallBack ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġwhen Ġ( orientation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOrientation Show Type . TIME LINE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOrientation Show Type . CENTER _ VERTICAL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOrientation Show Type . CENTER _ HORIZONTAL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context , ĠLinearLayoutManager . HORIZONTAL , false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter Ġ= Ġobject Ġ: ĠTime Line Step Adapter < T >( context , Ġlist ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind Data ViewHolder ( holder : ĠCustom ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata CallBack . on Bind Data ViewHolder ( holder , Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Custom View ( left Custom View Parent : ĠViewGroup , Ġright Custom View Parent : ĠViewGroup , Ġholder : ĠCustom ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata CallBack . create Custom View ( left Custom View Parent , Ġright Custom View Parent , Ġholder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Line In Active Color ( line In Active ) ĊĠĠĠĠĠĠĠ Ġset Line Active Color ( line Active ) ĊĠĠĠĠĠĠĠ Ġdot Active ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Mark Active ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdot In Active ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Mark In Active ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdot Drawable Current ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Mark Current ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdot Drawable Start ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Mark Start ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdot Drawable End ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Mark End ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Mark Size ( dot Mark Size ) ĊĠĠĠĠĠĠĠ Ġleft Layout Background ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Left Layout Background ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġright Layout Background ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Right Layout Background ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠsetIs Custom ( is Custom View ) ĊĠĠĠĠĠĠĠ Ġset Layout Type ( layout Type ) ĊĠĠĠĠĠĠĠ Ġset Orientation Type ( orientation ) ĊĊĠĠĠĠĠĠĠ Ġadapter Ġ= Ġtime Line Step Adapter ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Line In Active Color (@ Color Int Ġcolor : Int ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . set Line In Active Color ( color ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Line Active Color (@ Color Int Ġcolor : Int ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . set Line Active Color ( color ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Mark Current (@ Drawable Res Ġdrawable : ĠDrawable ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . set Drawable Current ( drawable ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Mark Active (@ Drawable Res Ġdrawable : ĠDrawable ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . set Drawable Active ( drawable ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Mark In Active (@ Drawable Res Ġdrawable : ĠDrawable ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . set Drawable In Active ( drawable ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Mark Start (@ Drawable Res Ġdrawable : ĠDrawable ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . set Drawable Start ( drawable ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Mark End (@ Drawable Res Ġdrawable : ĠDrawable ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . set Drawable End ( drawable ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset LineWidth ( width : ĠInt ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . set LineWidth ( width ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Mark Size ( mark Size : ĠInt ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . set Mark Size ( mark Size ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Right Layout Background (@ Drawable Res Ġdrawable : ĠDrawable ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . set Right Layout Background ( drawable ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Left Layout Background (@ Drawable Res Ġdrawable : ĠDrawable ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . set Left Layout Background ( drawable ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetIs Custom ( is Custom : ĠBoolean Ġ= Ġtrue ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . setIs Custom ( is Custom ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Layout Type ( type : ĠLayout Type ): ĠTime Line Step View { ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . setLayout Type ( type ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Orientation Type ( orientation : ĠOrientation Show Type ){ ĊĠĠĠĠĠĠĠ Ġtime Line Step Adapter . set Orientation Type ( orientation ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOnInit Data CallBack { ĊĠĠĠĠĠĠĠ Ġfun Ġon Bind Data ViewHolder ( holder : ĠTime Line Step Adapter . Custom ViewHolder , Ġposition : ĠInt ) ĊĠĠĠĠĠĠĠ Ġfun Ġcreate Custom View ( left Layout : ĠViewGroup , Ġright Layout : ĠViewGroup , Ġholder : ĠTime Line Step Adapter . Custom ViewHolder ) ĊĠĠĠ Ġ} Ċ }