package Ġcom . utils Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . animation . Property Values Holder Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġjava . lang . ref . Weak Reference ĊĊ Ċ private Ġconst Ġval ĠS HR INK _ VALUE Ġ= Ġ 0 . 9 5 f Ċ Ċ class ĠClick Shrink Effect ( view : ĠView ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġweak Ref View Ġ= ĠWeak Reference ( view ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! view . has OnClick Listeners ()) Ġview . setOnClickListener Ġ{ Ġ} ĊĠĠĠĠĠĠĠ Ġview . setOn Touch Listener Ġ{ Ġ_, Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ DOWN Ġ-> Ġbuild Shrink Animator ()?. start () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ UP Ġ-> Ġbuild Grow Animator ()?. start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Touch Listener Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Shrink Animator (): ĠAn imator ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscale X Ġ= ĠProperty Values Holder . of Float ( View . SCALE _ X , Ġ 1 f , ĠS HR INK _ VALUE ) ĊĠĠĠĠĠĠĠ Ġval Ġscale Y Ġ= ĠProperty Values Holder . of Float ( View . SCALE _ Y , Ġ 1 f , ĠS HR INK _ VALUE ) ĊĠĠĠĠĠĠĠ Ġweak Ref View . get ()?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanim ator Ġ= ĠObject Animator . of Property Values Holder ( this , Ġscale X , Ġscale Y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator . duration Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġanim ator ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġbuild Grow Animator (): ĠAn imator ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscale X Ġ= ĠProperty Values Holder . of Float ( View . SCALE _ X , ĠS HR INK _ VALUE , Ġ 1 f ) ĊĠĠĠĠĠĠĠ Ġval Ġscale Y Ġ= ĠProperty Values Holder . of Float ( View . SCALE _ Y , ĠS HR INK _ VALUE , Ġ 1 f ) ĊĠĠĠĠĠĠĠ Ġweak Ref View . get ()?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanim ator Ġ= ĠObject Animator . of Property Values Holder ( this , Ġscale X , Ġscale Y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator . duration Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġanim ator ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠView . apply Click Shrink (): ĠView Ġ{ ĊĠĠĠ Ġreturn Ġthis . apply Ġ{ ĊĠĠĠĠĠĠĠ ĠClick Shrink Effect ( this ) ĊĠĠĠ Ġ} Ċ }