package Ġar un . com . chrom er . util . animations Ċ Ċ import Ġandroid . os . Build . VERSION . SDK _ INT Ċ import Ġandroid . os . Build . VERSION _ CODES . LO L LI POP Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View .* Ċ import Ġandroidx . dynamic animation . animation . Dynamic Animation Ċ import Ġandroidx . dynamic animation . animation . Spring Animation Ċ import Ġandroidx . dynamic animation . animation . Spring Force ĊĊ Ċ private Ġfun ĠgetKey ( property : ĠDynamic Animation . View Property ) Ġ= Ġwhen Ġ( property ) Ġ{ ĊĠĠĠ ĠSpring Animation . TRANSL ATION _ X Ġ-> ĠTRAN SL ATION _ X . name ĊĠĠĠ ĠSpring Animation . TRANSL ATION _ Y Ġ-> ĠTRAN SL ATION _ Y . name ĊĠĠĠ ĠSpring Animation . TRANSL ATION _ Z Ġ-> Ġif Ġ( SDK _ INT Ġ>= ĠL OL LI POP ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTRAN SL ATION _ Z . name ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġ" TRANSL ATION _ Z " ĊĠĠĠ Ġ} ĊĠĠĠ ĠSpring Animation . SCALE _ X Ġ-> ĠSC ALE _ X . name ĊĠĠĠ ĠSpring Animation . SCALE _ Y Ġ-> ĠSC ALE _ Y . name ĊĠĠĠ ĠSpring Animation . ROT ATION Ġ-> ĠROT ATION . name ĊĠĠĠ ĠSpring Animation . ROT ATION _ X Ġ-> ĠROT ATION _ X . name ĊĠĠĠ ĠSpring Animation . ROT ATION _ Y Ġ-> ĠROT ATION _ Y . name ĊĠĠĠ ĠSpring Animation . X Ġ-> ĠX . name ĊĠĠĠ ĠSpring Animation . Y Ġ-> ĠY . name ĊĠĠĠ ĠSpring Animation . Z Ġ-> Ġif Ġ( SDK _ INT Ġ>= ĠL OL LI POP ) Ġ{ ĊĠĠĠĠĠĠĠ ĠZ . name ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Z " ĊĠĠĠ Ġ} ĊĠĠĠ ĠSpring Animation . ALPHA Ġ-> ĠAL PH A . name ĊĠĠĠ ĠSpring Animation . SCROLL _ X Ġ-> Ġ" SCROLL _ X " ĊĠĠĠ ĠSpring Animation . SCROLL _ Y Ġ-> Ġ" SCROLL _ Y " ĊĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegal AccessException (" Unknown ĠView Property : Ġ$ property ") Ċ }. hashCode () ĊĊ Ċ fun ĠView . spring ( ĊĠĠĠĠĠĠĠ Ġproperty : ĠDynamic Animation . View Property , ĊĠĠĠĠĠĠĠ Ġst iff ness : ĠFloat Ġ= ĠSpring Force . ST IFF NESS _ MEDIUM , ĊĠĠĠĠĠĠĠ Ġd amping : ĠFloat Ġ= ĠSpring Force . DA MP ING _ RATIO _ NO _ BOUN CY , ĊĠĠĠĠĠĠĠ Ġstart Velocity : ĠFloat ? Ġ= Ġnull Ċ ): ĠSpring Animation Ġ{ ĊĠĠĠ Ġval Ġkey Ġ= ĠgetKey ( property ) ĊĠĠĠ Ġvar Ġspring Anim Ġ= Ġget Tag ( key ) Ġas ? ĠSpring Animation ? ĊĠĠĠ Ġif Ġ( spring Anim Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġspring Anim Ġ= ĠSpring Animation ( this , Ġproperty ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspring Ġ= ĠSpring Force (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . d amping Ratio Ġ= Ġd amping ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . st iff ness Ġ= Ġst iff ness ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Velocity ?. let (:: set Start Velocity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Tag ( key , Ġspring Anim ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġspring Anim Ċ }