package Ġnet . x pe ce . android . view Ċ Ċ import Ġandroid . support . annotation . Requires Api Ċ import Ġandroid . support . v 4 . view . View Compat Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View . VISIBLE Ċ import Ġandroid . view . animation . Accel erate Interpolator Ċ import Ġandroid . view . animation . De cel erate Interpolator Ċ import Ġjava . util .* Ċ Ċ @ Requires Api ( 1 6 ) Ċ class ĠView F ader Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠH IDE _ INTER POL ATOR Ġ= ĠAccel erate Interpolator () ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠSHOW _ INTER POL ATOR Ġ= ĠDec el erate Interpolator () ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFA DE _ OUT _ DURATION _ M ILL IS Ġ= Ġ 2 0 0 L ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFA DE _ IN _ DURATION _ M ILL IS Ġ= Ġ 1 0 0 L ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSHOW ING Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠHID ING Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġf ading Views Ġ= ĠWeak HashMap < View , ĠInt >() ĊĊĠĠĠ Ġfun Ġis F ading In ( view : ĠView ) Ġ= Ġf ading Views [ view ] Ġ== ĠSHOW ING ĊĠĠĠ Ġfun Ġis F ading Out ( view : ĠView ) Ġ= Ġf ading Views [ view ] Ġ== ĠHID ING ĊĊĠĠĠ Ġfun Ġfade Out ( view : ĠView ): ĠUnit Ġ= Ġview . run Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( visibility Ġ== ĠVIS IBLE Ġ&& Ġ! is F ading Out ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( View Compat . is La id Out ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. alpha ( 0 F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Duration ( FA DE _ OUT _ DURATION _ M ILL IS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Interpolator ( HIDE _ INTER POL ATOR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Start Action Ġ{ Ġf ading Views [ this ] Ġ= ĠHID ING Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with End Action Ġ{ Ġinvisible (); Ġf ading Views . remove ( this ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvisible () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Ġ= Ġ 0 F ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun ĠfadeIn ( view : ĠView ): ĠUnit Ġ= Ġview . run Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( visibility Ġ!= ĠVIS IBLE Ġ&& Ġ! is F ading In ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( View Compat . is La id Out ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. alpha ( 1 F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Duration ( FA DE _ IN _ DURATION _ M ILL IS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Interpolator ( SHOW _ INTER POL ATOR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Start Action Ġ{ Ġf ading Views [ this ] Ġ= ĠSHOW ING ; Ġvisible () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with End Action Ġ{ Ġf ading Views . remove ( this ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Ġ= Ġ 1 F ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisible () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ