package Ġcom . nil h cem . bl ename badge . ui . badge _ preview Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . support . annotation . Nullable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ Ċ import Ġjava . math . BigInteger Ċ import Ġjava . util . ArrayList Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . view . animation . Linear Interpolator Ċ import Ġcom . nil h cem . bl ename badge . R Ċ import Ġcom . nil h cem . bl ename badge . device . model . Mode Ċ import Ġcom . nil h cem . bl ename badge . device . model . Speed Ċ Ċ class ĠPreview Badge Ġ: ĠView Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġled Disabled : ĠDrawable ĊĠĠĠ Ġprivate Ġvar Ġled Enabled : ĠDrawable ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbg Bounds : ĠRect F ĊĠĠĠ Ġprivate Ġvar Ġcells Ġ= ĠArrayList < Cell >() ĊĊĠĠĠ Ġprivate Ġvar Ġbadge Height Ġ= Ġ 1 1 ĊĠĠĠ Ġprivate Ġvar Ġbadge Width Ġ= Ġ 4 4 ĊĊĠĠĠ Ġprivate Ġvar Ġone Byte Ġ= Ġ 8 ĊĊĠĠĠ Ġprivate Ġvar Ġif Flash : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġif Mar quee : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġbadge Speed : ĠInt Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġvar Ġbadge Mode : ĠMode Ġ= ĠMode . LEFT ĊĊĠĠĠ Ġprivate Ġvar Ġanimation Index : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġvar Ġcheck List : ĠArrayList < Check List > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġvalue Animator : ĠValue Animator ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġfun Ġreset Check List () Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġbadge Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck List . add ( Check List ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġled Disabled Ġ= Ġcontext . resources . get Drawable ( R . drawable . ic _ led ) ĊĠĠĠĠĠĠĠ Ġled Enabled Ġ= Ġcontext . resources . get Drawable ( R . drawable . ic _ led _ lit ) ĊĊĠĠĠĠĠĠĠ Ġreset Check List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġ@ Nullable Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġled Disabled Ġ= Ġcontext . resources . get Drawable ( R . drawable . ic _ led ) ĊĠĠĠĠĠĠĠ Ġled Enabled Ġ= Ġcontext . resources . get Drawable ( R . drawable . ic _ led _ lit ) ĊĊĠĠĠĠĠĠĠ Ġreset Check List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġ@ Nullable Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠĠĠĠĠ Ġled Disabled Ġ= Ġcontext . resources . get Drawable ( R . drawable . ic _ led ) ĊĠĠĠĠĠĠĠ Ġled Enabled Ġ= Ġcontext . resources . get Drawable ( R . drawable . ic _ led _ lit ) ĊĊĠĠĠĠĠĠĠ Ġreset Check List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġratio Height Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġval Ġratio Width Ġ= Ġ 3 ĊĊĠĠĠĠĠĠĠ Ġval Ġoriginal Width Ġ= ĠView . Measure Spec . getSize ( width Measure Spec ) ĊĠĠĠĠĠĠĠ Ġval Ġoriginal Height Ġ= ĠView . Measure Spec . getSize ( height Measure Spec ) ĊĠĠĠĠĠĠĠ Ġval Ġcalculated Height Ġ= Ġoriginal Width Ġ* Ġratio Height Ġ/ Ġratio Width ĊĊĠĠĠĠĠĠĠ Ġval Ġfinal Width : ĠInt ĊĠĠĠĠĠĠĠ Ġval Ġfinal Height : ĠInt ĊĊĠĠĠĠĠĠĠ Ġif Ġ( calculated Height Ġ> Ġoriginal Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Width Ġ= Ġoriginal Height Ġ* Ġratio Height Ġ/ Ġratio Width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Height Ġ= Ġoriginal Height ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Width Ġ= Ġoriginal Width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Height Ġ= Ġcalculated Height ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsuper . on Measure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . Measure Spec . make Measure Spec ( final Width , ĠView . Measure Spec . EX ACT LY ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . Measure Spec . make Measure Spec ( final Height , ĠView . Measure Spec . EX ACT LY )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Draw Allocation ") ĊĠĠĠ Ġoverride Ġfun Ġon Layout ( changed : ĠBoolean , Ġleft : ĠInt , Ġtop : ĠInt , Ġright : ĠInt , Ġbottom : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Layout ( changed , Ġleft , Ġtop , Ġright , Ġbottom ) ĊĊĠĠĠĠĠĠĠ Ġval Ġoffset Ġ= Ġ 3 0 ĊĊĠĠĠĠĠĠĠ Ġval Ġsingle Cell Ġ= Ġ( right Ġ- Ġleft Ġ- Ġ( offset Ġ* Ġ 3 )) Ġ/ Ġbadge Width ĊĊĠĠĠĠĠĠĠ Ġcells Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġbadge Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcells . add ( Cell ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 Ġuntil Ġbadge Width ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcells [ i ]. list . add ( Rect ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Ġ+ Ġ( offset Ġ* Ġ 2 ) Ġ+ Ġj Ġ* Ġsingle Cell , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Ġ+ Ġ( offset Ġ* Ġ 2 ) Ġ+ Ġi Ġ* Ġsingle Cell , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Ġ+ Ġ( offset Ġ* Ġ 2 ) Ġ+ Ġj Ġ* Ġsingle Cell Ġ+ Ġsingle Cell , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Ġ+ Ġ( offset Ġ* Ġ 2 ) Ġ+ Ġi Ġ* Ġsingle Cell Ġ+ Ġsingle Cell ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbg Bounds Ġ= ĠRect F (( left Ġ+ Ġoffset ). toFloat (), Ġ( top Ġ+ Ġoffset ). toFloat (), Ġ( right Ġ- Ġoffset ). toFloat (), Ġ(( single Cell Ġ* Ġbadge Height ) Ġ+ Ġ( offset Ġ* Ġ 3 )). toFloat ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Draw Allocation ") ĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġ// ĠPaint ĠConfiguration ĊĠĠĠĠĠĠĠ Ġval Ġbg Paint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġbg Paint . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġbg Paint . color Ġ= ĠColor . parse Color ("# 0 0 0 0 0 0 ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠDraw ĠBackground ĊĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( bg Bounds , Ġ 2 5 f , Ġ 2 5 f , Ġbg Paint ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠDraw ĠCell s ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġbadge Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 Ġuntil Ġbadge Width ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( if Flash ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa I : ĠInt Ġ= Ġanimation Index Ġ% Ġ 8 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalid : ĠBoolean Ġ= Ġa I Ġ> Ġ 4 0 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( valid Ġ&& Ġi Ġ< Ġcheck List . size Ġ&& Ġj Ġ< Ġcheck List [ i ]. list . size Ġ&& Ġcheck List [ i ]. list [ j ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( if Mar quee ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa I : ĠInt Ġ= Ġanimation Index . div ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalid : ĠBoolean Ġ= Ġif Ġ( i Ġ== Ġ 0 Ġ|| Ġj Ġ== Ġ 0 Ġ|| Ġi Ġ== Ġbadge Height Ġ- Ġ 1 Ġ|| Ġj Ġ== Ġbadge Width Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( i Ġ== Ġ 0 Ġ|| Ġj Ġ== Ġbadge Width Ġ- Ġ 1 ) Ġ&& Ġ!( i Ġ== Ġbadge Height Ġ- Ġ 1 Ġ&& Ġj Ġ== Ġbadge Width Ġ- Ġ 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( i Ġ+ Ġj ) Ġ% Ġ 4 Ġ== Ġ( a I Ġ% Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( i Ġ+ Ġj Ġ- Ġ 1 ) Ġ% Ġ 4 Ġ== Ġ( 3 Ġ- Ġ( a I Ġ% Ġ 4 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( badge Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . LEFT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimation Value Ġ= Ġanimation Index . div ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( valid Ġ|| Ġi Ġ< Ġcheck List . size Ġ&& Ġj Ġ< Ġcheck List [ i ]. list . size Ġ&& Ġj Ġ>= Ġanimation Value Ġ&& Ġcheck List [ i ]. list [ j Ġ- Ġanimation Value ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . RIGHT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimation Value Ġ= Ġanimation Index . div ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( valid Ġ|| Ġi Ġ< Ġcheck List . size Ġ&& Ġj Ġ< Ġcheck List [ i ]. list . size Ġ&& Ġj Ġ<= Ġ( 4 3 Ġ- Ġanimation Value ) Ġ&& Ġcheck List [ i ]. list [( animation Value . plus ( j )) ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . UP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimation Value Ġ= Ġanimation Index . div ( 8 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! (! valid Ġ&& Ġ!( i Ġ< Ġcheck List . size Ġ&& Ġj Ġ< Ġcheck List [ i ]. list . size Ġ&& Ġi Ġ>= Ġanimation Value Ġ&& Ġcheck List [ i Ġ- Ġanimation Value ]. list [ j ]))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . DOWN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimation Value Ġ= Ġanimation Index . div ( 8 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( valid Ġ|| Ġi Ġ< Ġcheck List . size Ġ&& Ġj Ġ< Ġcheck List [ i ]. list . size Ġ&& Ġi Ġ<= Ġ( 1 0 Ġ- Ġanimation Value ) Ġ&& Ġcheck List [ animation Value . plus ( i )]. list [ j ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . FIXED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( valid Ġ|| Ġi Ġ< Ġcheck List . size Ġ&& Ġj Ġ< Ġcheck List [ i ]. list . size Ġ&& Ġcheck List [ i ]. list [ j ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . S NOW FL A KE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . PI CTURE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . ANIM ATION Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . LAS ER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( badge Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . LEFT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimation Value Ġ= Ġanimation Index . div ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ< Ġcheck List . size Ġ&& Ġj Ġ< Ġcheck List [ i ]. list . size Ġ&& Ġj Ġ>= Ġanimation Value Ġ&& Ġcheck List [ i ]. list [ j Ġ- Ġanimation Value ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . RIGHT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimation Value Ġ= Ġanimation Index . div ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ< Ġcheck List . size Ġ&& Ġj Ġ< Ġcheck List [ i ]. list . size Ġ&& Ġj Ġ<= Ġ( 4 3 Ġ- Ġanimation Value ) Ġ&& Ġcheck List [ i ]. list [( animation Value . plus ( j )) ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . UP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimation Value Ġ= Ġanimation Index . div ( 8 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ< Ġcheck List . size Ġ&& Ġj Ġ< Ġcheck List [ i ]. list . size Ġ&& Ġi Ġ>= Ġanimation Value Ġ&& Ġcheck List [ i Ġ- Ġanimation Value ]. list [ j ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . DOWN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimation Value Ġ= Ġanimation Index . div ( 8 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ< Ġcheck List . size Ġ&& Ġj Ġ< Ġcheck List [ i ]. list . size Ġ&& Ġi Ġ<= Ġ( 1 0 Ġ- Ġanimation Value ) Ġ&& Ġcheck List [ animation Value . plus ( i )]. list [ j ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . FIXED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ< Ġcheck List . size Ġ&& Ġj Ġ< Ġcheck List [ i ]. list . size Ġ&& Ġcheck List [ i ]. list [ j ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Enabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . bounds Ġ= Ġcells [ i ]. list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġled Disabled . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . S NOW FL A KE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . PI CTURE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . ANIM ATION Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . LAS ER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpost Invalidate On Animation () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġvalue Animator ?. cancel () ĊĠĠĠĠĠĠĠ Ġsuper . on Detached From Window () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attached To Window () ĊĠĠĠĠĠĠĠ Ġconfig Value Animation () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfig Value Animation () Ġ{ ĊĠĠĠĠĠĠĠ Ġvalue Animator Ġ= ĠValue Animator . of Int ( 8 7 9 9 , Ġ 0 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Update Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimation Index Ġ= Ġit . animated Value Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= Ġ 8 8 0 0 L . div ( badge Speed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat Mode Ġ= ĠValue Animator . RE START ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat Count Ġ= ĠValue Animator . INF IN ITE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterpol ator Ġ= ĠLinear Interpolator () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetValue ( all Hex : ĠArrayList < String >, Ġif Mar : ĠBoolean , Ġif Fl a : ĠBoolean , Ġspeed : ĠSpeed , Ġmode : ĠMode ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreset Check List () ĊĠĠĠĠĠĠĠ Ġif Mar quee Ġ= Ġif Mar ĊĠĠĠĠĠĠĠ Ġif Flash Ġ= Ġif Fl a ĊĠĠĠĠĠĠĠ Ġvalue Animator ?. cancel () ĊĊĠĠĠĠĠĠĠ Ġbadge Mode Ġ= Ġmode ĊĠĠĠĠĠĠĠ Ġbadge Speed Ġ= Ġwhen Ġ( speed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSpeed . ONE Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSpeed . TWO Ġ-> Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSpeed . TH REE Ġ-> Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSpeed . FO UR Ġ-> Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSpeed . FI VE Ġ-> Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSpeed . SIX Ġ-> Ġ 6 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSpeed . SE VEN Ġ-> Ġ 7 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSpeed . E IGHT Ġ-> Ġ 8 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconfig Value Animation () ĊĊĠĠĠĠĠĠĠ Ġval Ġdiff : ĠInt ĊĠĠĠĠĠĠĠ Ġif Ġ( all Hex . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiff Ġ= Ġ(( badge Width Ġ- Ġ( one Byte Ġ* Ġall Hex . size )) Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( one Byte Ġ* Ġall Hex . size Ġ< Ġbadge Width ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġbadge Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 Ġuntil Ġdiff ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck List [ i ]. list . add ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiff Ġ= Ġ 2 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġbadge Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 Ġuntil Ġdiff ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck List [ i ]. list . add ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( hex Ġin Ġall Hex ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġbadge Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbin Ġ= Ġhex To Bin ( hex . substring ( i Ġ* Ġ 2 , Ġi Ġ* Ġ 2 Ġ+ Ġ 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 Ġuntil Ġone Byte ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck List [ i ]. list . add ( Character . get Numeric Value ( bin [ j ]) Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġbadge Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 Ġuntil Ġdiff ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck List [ i ]. list . add ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġhex To Bin ( s : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumber Ġ= ĠBigInteger ( s , Ġ 1 6 ). toString ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder ( number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġ 8 Ġ- Ġnumber . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . insert ( 0 , Ġ" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsb . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ