package Ġcom . bad oo . ri bs . routing . transition . effect . slide Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . bad oo . ri bs . routing . transition . Transition Element Ċ import Ġcom . bad oo . ri bs . routing . transition . effect . Gravity Ċ import Ġcom . bad oo . ri bs . routing . transition . effect . helper . Animation Container Ċ import Ġcom . bad oo . ri bs . routing . transition . effect . helper . Animation Container . Find Parent ById Ċ import Ġcom . bad oo . ri bs . routing . transition . effect . helper . Animation Container . Parent Ċ import Ġcom . bad oo . ri bs . routing . transition . effect . helper . Animation Container . Root View Ċ import Ġcom . bad oo . ri bs . routing . transition . effect . helper . End Values Ċ import Ġcom . bad oo . ri bs . routing . transition . effect . helper . find Parent ById ĊĊ Ċ internal Ġfun Ġ< T > ĠTransition Element < out ĠT >. slide End Values ( ĊĠĠĠ Ġanimation Container : ĠAnimation Container , ĊĠĠĠ Ġgravity : ĠGr avity Ċ ): ĠEnd Values Ġ{ ĊĠĠĠ Ġval Ġcontainer Ġ= Ġwhen Ġ( animation Container ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠRoot View Ġ-> Ġview . root View Ġas ĠViewGroup ĊĠĠĠĠĠĠĠ Ġis ĠParent Ġ-> Ġview . parent Ġas ĠViewGroup ĊĠĠĠĠĠĠĠ Ġis ĠFind Parent ById Ġ-> Ġview . find Parent ById ( animation Container . id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġrequire NotNull ( container ) ĊĊĠĠĠ Ġval Ġdiff To Animation Container : ĠInt Ġ= Ġdiff To Animation Container ( animation Container , Ġgravity , Ġcontainer ) ĊĊĠĠĠ Ġreturn Ġwhen Ġ( gravity ) Ġ{ ĊĠĠĠĠĠĠĠ ĠGr avity . LEFT Ġ-> ĠEnd Values ( 0 f , Ġ-( view . width Ġ+ Ġdiff To Animation Container ). toFloat ()) ĊĠĠĠĠĠĠĠ ĠGr avity . RIGHT Ġ-> ĠEnd Values ( 0 f , Ġ( view . width Ġ+ Ġdiff To Animation Container ). toFloat ()) ĊĠĠĠĠĠĠĠ ĠGr avity . TOP Ġ-> ĠEnd Values ( 0 f , Ġ-( view . height Ġ+ Ġdiff To Animation Container ). toFloat ()) ĊĠĠĠĠĠĠĠ ĠGr avity . BOTTOM Ġ-> ĠEnd Values ( 0 f , Ġ( view . height Ġ+ Ġdiff To Animation Container ). toFloat ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġ< T > ĠTransition Element < out ĠT >. diff To Animation Container ( ĊĠĠĠ Ġanimation Container : ĠAnimation Container , ĊĠĠĠ Ġgravity : ĠGr avity , ĊĠĠĠ Ġcontainer : ĠViewGroup Ċ ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġlocation Ġ= ĠInt Array ( 2 ) ĊĠĠĠ Ġwhen Ġ( animation Container ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠRoot View Ġ-> Ġ{ Ġ/* Ġno - op , Ġlocation Ġstays Ġ[ 0 , 0 ] Ġ*/ Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠParent , ĊĠĠĠĠĠĠĠ Ġis ĠFind Parent ById Ġ-> Ġcontainer . getLocation In Window ( location ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcontainer Abs X Ġ= Ġlocation [ 0 ] ĊĠĠĠ Ġval Ġcontainer Abs Y Ġ= Ġlocation [ 1 ] ĊĠĠĠ Ġview . getLocation In Window ( location ) ĊĠĠĠ Ġval Ġview Abs X Ġ= Ġlocation [ 0 ] ĊĠĠĠ Ġval Ġview Abs Y Ġ= Ġlocation [ 1 ] ĊĊĠĠĠ Ġreturn Ġwhen Ġ( gravity ) Ġ{ ĊĠĠĠĠĠĠĠ ĠGr avity . LEFT Ġ-> Ġview Abs X Ġ- Ġcontainer Abs X ĊĠĠĠĠĠĠĠ ĠGr avity . RIGHT Ġ-> Ġcontainer Abs X Ġ+ Ġcontainer . width Ġ- Ġ( view Abs X Ġ+ Ġview . width ) ĊĠĠĠĠĠĠĠ ĠGr avity . TOP Ġ-> Ġview Abs Y Ġ- Ġcontainer Abs Y ĊĠĠĠĠĠĠĠ ĠGr avity . BOTTOM Ġ-> Ġcontainer Abs Y Ġ+ Ġcontainer . height Ġ- Ġ( view Abs Y Ġ+ Ġview . height ) ĊĠĠĠ Ġ} Ċ } Ċ