package Ġcom . example . blog p . coll ap sing avatar ĊĊ Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . AppBar Layout Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . support . v 7 . widget . AppCompat TextView Ċ import Ġandroid . support . v 7 . widget . Toolbar Ċ import Ġandroid . view . View Ċ import Ġandroid . view . animation . Ant icip ate Over shoot Interpolator Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . ImageView Ċ import Ġtim ber . log . Tim ber ĊĊ Ċ class ĠDemo 2 Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġiv Avatar : ĠImageView ĊĠĠĠ Ġprivate Ġvar ĠEXP AND _ AV AT AR _ SIZE : ĠFloat Ġ= Ġ 0 F ĊĠĠĠ Ġprivate Ġvar ĠCOL LAP SE _ IMAGE _ SIZE : ĠFloat Ġ= Ġ 0 F ĊĠĠĠ Ġprivate Ġvar Ġmargin : ĠFloat Ġ= Ġ 0 F ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtoolbar : ĠToolbar ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġapp Bar Layout : ĠApp Bar Layout ĊĠĠĠ Ġprivate Ġvar Ġcash Collapse State : ĠPair < Int , ĠInt >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtitle Toolbar Text : ĠAppCompat TextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtitle Toolbar Text Single : ĠAppCompat TextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcol lap sing Avatar Container : ĠFrame Layout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbackground : ĠFrame Layout ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ demo _ 2 ) ĊĠĠĠĠĠĠĠ Ġ/** / ĊĠĠĠĠĠĠĠ ĠEXP AND _ AV AT AR _ SIZE Ġ= Ġresources . get Dimension ( R . dim en . default _ expanded _ image _ size ) ĊĠĠĠĠĠĠĠ ĠCOL LAP SE _ IMAGE _ SIZE Ġ= Ġresources . get Dimension ( R . dim en . default _ collapsed _ image _ size ) ĊĠĠĠĠĠĠĠ Ġmargin Ġ= Ġresources . get Dimension ( R . dim en . avatar _ margin ) ĊĠĠĠĠĠĠĠ Ġcol lap sing Avatar Container Ġ= ĠfindViewById ( R . id . stuff _ container ) ĊĠĠĠĠĠĠĠ Ġapp Bar Layout Ġ= ĠfindViewById ( R . id . app _ bar _ layout ) ĊĠĠĠĠĠĠĠ Ġtoolbar Ġ= ĠfindViewById ( R . id . anim _ toolbar ) ĊĠĠĠĠĠĠĠ Ġtoolbar . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġiv Avatar Ġ= ĠfindViewById ( R . id . img b _ avatar _ wrap ) ĊĠĠĠĠĠĠĠ Ġtitle Toolbar Text Ġ= ĠfindViewById ( R . id . tv _ profile _ name ) ĊĠĠĠĠĠĠĠ Ġtitle Toolbar Text Single Ġ= ĠfindViewById ( R . id . tv _ profile _ name _ single ) ĊĠĠĠĠĠĠĠ Ġbackground Ġ= ĠfindViewById ( R . id . fl _ background ) ĊĠĠĠĠĠĠĠ Ġ/** / ĊĠĠĠĠĠĠĠ Ġapp Bar Layout . add On Offset Changed Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Bar Layout . On Offset Changed Listener Ġ{ Ġapp Bar Layout , Ġi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Calculated . not ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Avatar Animate Point Y Ġ= ĠMath . abs (( app Bar Layout . height Ġ- ĠEXP AND _ AV AT AR _ SIZE Ġ- Ġtoolbar . height Ġ/ Ġ 2 ) Ġ/ Ġapp Bar Layout . total Scroll Range ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimate We igt Ġ= Ġ 1 Ġ/ Ġ( 1 Ġ- Ġstart Avatar Animate Point Y ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Calculated Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoffset Ġ= ĠMath . abs ( i Ġ/ Ġapp Bar Layout . total Scroll Range . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Views ( offset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . b _ go _ demo _ 1 ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġstart Avatar Animate Point Y : ĠFloat Ġ= Ġ 0 F ĊĠĠĠ Ġprivate Ġvar Ġanimate We igt : ĠFloat Ġ= Ġ 0 F ĊĠĠĠ Ġprivate Ġvar Ġis Calculated Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Views ( percent Offset : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠCol lap sing Ġavatar Ġtransparent */ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpercent Offset Ġ> Ġm Upper Limit Transparent ly Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// avatar Container View . alpha Ġ= Ġ 0 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Toolbar Text . alpha Ġ= Ġ 0 . 0 F ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpercent Offset Ġ< Ġm Upper Limit Transparent ly Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġavatar Container View . alpha Ġ= Ġ 1 Ġ- Ġpercent Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Toolbar Text . alpha Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/* Collapsed / ex pended Ġsizes Ġfor Ġviews */ ĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠPair < Int , ĠInt > Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpercent Offset Ġ< ĠAB RO AD Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( TO _ EXP AN DED _ STATE , Ġcash Collapse State ?. second ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠWAIT _ FOR _ SWITCH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( TO _ COLL AP SED _ STATE , Ġcash Collapse State ?. second Ġ?: ĠWAIT _ FOR _ SWITCH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġresult . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtranslation Y Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġhead Container Height Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtranslation X : ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcurrent Image Size Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcash Collapse State Ġ!= Ġnull Ġ&& Ġcash Collapse State Ġ!= Ġthis Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( first ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTO _ EXP AN DED _ STATE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation Y Ġ= Ġtoolbar . height . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhead Container Height Ġ= Ġapp Bar Layout . total Scroll Range . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Image Size Ġ= ĠEXP AND _ AV AT AR _ SIZE . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** / ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Toolbar Text . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Toolbar Text Single . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbackground . set BackgroundColor ( Context Compat . getColor ( this @ Demo 2 Activity , ĠR . color . color _ transparent )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** / ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv Avatar . translation X Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTO _ COLL AP SED _ STATE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbackground . set BackgroundColor ( Context Compat . getColor ( this @ Demo 2 Activity , ĠR . color . color Primary )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Image Size Ġ= ĠCOL LAP SE _ IMAGE _ SIZE . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation Y Ġ= Ġapp Bar Layout . total Scroll Range . toFloat () Ġ- Ġ( toolbar . height Ġ- ĠCOL LAP SE _ IMAGE _ SIZE ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhead Container Height Ġ= Ġtoolbar . height . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation X Ġ= Ġapp Bar Layout . width Ġ/ Ġ 2 f Ġ- ĠCOL LAP SE _ IMAGE _ SIZE Ġ/ Ġ 2 Ġ- Ġmargin Ġ* Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** / ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValue Animator . of Float ( iv Avatar . translation X , Ġtranslation X ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Update Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cash Collapse State !!. first Ġ== ĠTO _ COLL AP SED _ STATE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv Avatar . translation X Ġ= Ġit . animated Value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterpol ator Ġ= ĠAnt icip ate Over shoot Interpolator () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Delay Ġ= Ġ 6 9 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= Ġ 3 5 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** / ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Toolbar Text . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Toolbar Text Single . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Ġ= Ġ 0 . 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . translation X Ġ= Ġwidth . toFloat () Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimate (). translation X ( 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Interpolator ( Ant icip ate Over shoot Interpolator ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. alpha ( 1 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Start Delay ( 6 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Duration ( 4 5 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Listener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv Avatar . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params . height Ġ= Ġcurrent Image Size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params . width Ġ= Ġcurrent Image Size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcol lap sing Avatar Container . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params . height Ġ= Ġhead Container Height . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . translation Y Ġ= Ġtranslation Y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Layout () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** / ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcash Collapse State Ġ= ĠPair ( first , ĠSW ITCH ED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĠCol lapse Ġavatar Ġimg */ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv Avatar . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( percent Offset Ġ> Ġstart Avatar Animate Point Y ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimate Offset Ġ= Ġ( percent Offset Ġ- Ġstart Avatar Animate Point Y ) Ġ* Ġanimate We igt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" offset Ġfor Ġanim Ġ$ animate Offset ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġavatar Size Ġ= ĠEXP AND _ AV AT AR _ SIZE Ġ- Ġ( EXPAND _ AV AT AR _ SIZE Ġ- ĠCOL LAP SE _ IMAGE _ SIZE ) Ġ* Ġanimate Offset ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . layout Params . also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . height Ġ!= ĠMath . round ( avatar Size )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . height Ġ= ĠMath . round ( avatar Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . width Ġ= ĠMath . round ( avatar Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Layout () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . translation Y Ġ= Ġ( COLL AP SE _ IMAGE _ SIZE Ġ- Ġavatar Size ) Ġ* Ġanimate Offset ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . layout Params . also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . height Ġ!= ĠEXP AND _ AV AT AR _ SIZE . toInt ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . height Ġ= ĠEXP AND _ AV AT AR _ SIZE . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . width Ġ= ĠEXP AND _ AV AT AR _ SIZE . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . layout Params Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcash Collapse State Ġ= ĠPair ( first , ĠWAIT _ FOR _ SWITCH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAB RO AD Ġ= Ġ 0 . 9 9 f ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTO _ EXP AN DED _ STATE Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTO _ COLL AP SED _ STATE Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWAIT _ FOR _ SWITCH Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSW ITCH ED Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġm Lower Limit Transparent ly Ġ= ĠAB RO AD Ġ* Ġ 0 . 4 5 ĊĠĠĠ Ġprivate Ġval Ġm Upper Limit Transparent ly Ġ= ĠAB RO AD Ġ* Ġ 0 . 6 5 Ċ } Ċ