package Ġcom . lq . base library . view . dialog . loading view . style Ċ Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . view . animation . Linear Interpolator Ċ import Ġcom . lq . base library . view . dialog . loading view . animation . Sprite Animator Builder Ċ import Ġcom . lq . base library . view . dialog . loading view . sprite . Rect Sprite Ċ import Ġcom . lq . base library . view . dialog . loading view . sprite . Sprite Ċ import Ġcom . lq . base library . view . dialog . loading view . sprite . Sprite Container Ċ Ċ /** Ċ Ġ* Ġ@ author Ġt ams ire e Ċ Ġ*/ Ċ class ĠFold ing Cube Ġ: ĠSprite Container () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġwrap Content Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġfun ĠonCreate Child (): ĠArray < Sprite ?> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc ubes Ġ= ĠarrayOf Null s < Sprite >( 4 ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġc ubes . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc ubes [ i ] Ġ= ĠCube () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc ubes [ i ]?. set Animation Delay ( 3 0 0 Ġ* Ġi Ġ- Ġ 1 2 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġc ubes ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bounds Change ( bounds : ĠRect ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġbounds Ġ= Ġbounds ĊĠĠĠĠĠĠĠ Ġsuper . on Bounds Change ( bounds ) ĊĠĠĠĠĠĠĠ Ġbounds Ġ= Ġclip Square ( bounds ) ĊĠĠĠĠĠĠĠ Ġvar Ġsize Ġ= ĠMath . min ( bounds . width (), Ġbounds . height ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( wrap Content ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= ĠMath . sqrt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġsize ) Ġ/ Ġ 2 . toDouble ()). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo W Ġ= Ġ( bounds . width () Ġ- Ġsize ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo H Ġ= Ġ( bounds . height () Ġ- Ġsize ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbounds Ġ= ĠRect ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds . left Ġ+ Ġo W , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds . top Ġ+ Ġo H , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds . right Ġ- Ġo W , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds . bottom Ġ- Ġo H ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpx Ġ= Ġbounds . left Ġ+ Ġsize Ġ/ Ġ 2 Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġval Ġpy Ġ= Ġbounds . top Ġ+ Ġsize Ġ/ Ġ 2 Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġchild Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsprite Ġ= Ġget Child At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsprite !!. set Draw Bounds 0 ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds . left , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds . top , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpx , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsprite . pivot X Ġ= Ġsprite . draw Bounds . right . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsprite . pivot Y Ġ= Ġsprite . draw Bounds . bottom . toFloat () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdraw Child ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= Ġclip Square ( bounds ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġchild Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġcanvas . save () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . rotate ( 4 5 Ġ+ Ġi Ġ* Ġ 9 0 . toFloat (), Ġbounds . center X (). toFloat (), Ġbounds . center Y (). toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsprite Ġ= Ġget Child At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsprite !!. draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . restore To Count ( count ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠCube Ġ: ĠRect Sprite () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate Animation (): ĠValue Animator ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfr actions Ġ= Ġfloat ArrayOf ( 0 f , Ġ 0 . 1 f , Ġ 0 . 2 5 f , Ġ 0 . 7 5 f , Ġ 0 . 9 f , Ġ 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSprite Animator Builder ( this ). alpha ( fr actions , Ġ 0 , Ġ 0 , Ġ 2 5 5 , Ġ 2 5 5 , Ġ 0 , Ġ 0 ). rotate X ( fr actions , Ġ- 1 8 0 , Ġ- 1 8 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 ). rotate Y ( fr actions , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 1 8 0 , Ġ 1 8 0 ). duration ( 2 4 0 0 ). interpol ator ( Linear Interpolator ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠrotateX Ġ= Ġ- 1 8 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }