/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġandroidx . compose . animation Ċ Ċ import Ġandroidx . compose . animation . core . Animation Clock Observable Ċ import Ġandroidx . compose . animation . core . Transition Definition Ċ import Ġandroidx . compose . animation . core . Transition State Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . platform . Animation Clock Ambient Ċ Ċ /** Ċ Ġ* Ġ__ Deprecated :__ Ġ[ Transition ] Ġhas Ġbeen Ġdeprecated . ĠPlease Ġuse Ġ[ transition ] Ġinstead . Ċ Ġ* Ċ Ġ* Ġ[ Transition ] Ġcomp osable Ġcreates Ġa Ġstate - based Ġtransition Ġusing Ġthe Ġanimation Ġconfiguration Ċ Ġ* Ġdefined Ġin Ġ[ Transition Definition ]. ĠThis Ġcan Ġbe Ġespecially Ġuseful Ġwhen Ġanim ating Ġmultiple Ċ Ġ* Ġvalues Ġfrom Ġa Ġpredefined Ġset Ġof Ġvalues Ġto Ġanother . ĠFor Ġanim ating Ġa Ġsingle Ġvalue , Ġconsider Ġusing Ċ Ġ* Ġ[ animated Value ], Ġ[ animated Float ], Ġ[ animated Color ] Ġor Ġthe Ġmore Ġlight - weight Ġ[ animate ] ĠAPIs . Ċ Ġ* Ċ Ġ* Ġ[ Transition ] Ġstarts Ġa Ġnew Ġanimation Ġor Ġchanges Ġthe Ġon - going Ġanimation Ġwhen Ġthe Ġ[ to State ] Ċ Ġ* Ġparameter Ġis Ġchanged Ġto Ġa Ġdifferent Ġvalue . ĠIt Ġd ut if ull y Ġensures Ġthat Ġthe Ġanimation Ġwill Ġhead Ċ Ġ* Ġtowards Ġnew Ġ[ to State ] Ġregardless Ġof Ġwhat Ġstate Ġ( or Ġin - between Ġstate ) Ġit âĢĻ s Ġcurrently Ġin : ĠIf Ġthe Ċ Ġ* Ġtransition Ġis Ġnot Ġcurrently Ġanim ating , Ġhaving Ġa Ġnew Ġ[ to State ] Ġvalue Ġwill Ġstart Ġa Ġnew Ġanimation , Ċ Ġ* Ġotherwise Ġthe Ġin - flight Ġanimation Ġwill Ġcorrect Ġcourse Ġand Ġanimate Ġtowards Ġthe Ġnew Ġ[ to State ] Ċ Ġ* Ġbased Ġon Ġthe Ġinter ruption Ġhandling Ġlogic . Ċ Ġ* Ċ Ġ* Ġ[ Transition ] Ġtakes Ġa Ġtransition Ġdefinition , Ġa Ġtarget Ġstate Ġand Ġchild Ġcomp os ables . Ċ Ġ* ĠThese Ġchild Ġcomp os ables Ġwill Ġbe Ġreceiving Ġa Ġ[ Transition State ] Ġobject Ġas Ġan Ġargument , Ġwhich Ċ Ġ* Ġcaptures Ġall Ġthe Ġcurrent Ġvalues Ġof Ġthe Ġanimation . ĠChild Ġcomp os ables Ġshould Ġread Ġthe Ġanimation Ċ Ġ* Ġvalues Ġfrom Ġthe Ġ[ Transition State ] Ġobject , Ġand Ġapply Ġthe Ġvalue Ġwhere ver Ġnecessary . Ċ Ġ* Ċ Ġ* Ġ@ sample Ġandroidx . compose . animation . samples . Transition Sample Ċ Ġ* Ċ Ġ* Ġ@ param Ġdefinition ĠTransition Ġdefinition Ġthat Ġdefines Ġstates Ġand Ġtransitions Ċ Ġ* Ġ@ param Ġto State ĠNew Ġstate Ġto Ġtransition Ġto Ċ Ġ* Ġ@ param Ġclock ĠOptional Ġanimation Ġclock Ġthat Ġpul ses Ġanimations Ġwhen Ġtime Ġchanges . ĠBy Ġdefault , Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe Ġsystem Ġuses Ġa Ġch oreo grapher Ġbased Ġclock Ġread Ġfrom Ġthe Ġ[ Animation Clock Ambient ]. Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġcustom Ġimplementation Ġof Ġthe Ġ[ Animation Clock Observable ] Ġ( such Ġas Ġa Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[ android x . compose . animation . core . Manual Animation Clock ]) Ġcan Ġbe Ġsupplied Ġhere Ġif Ġthere âĢĻ s Ġa Ġneed Ġto Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanually Ġcontrol Ġthe Ġclock Ġ( for Ġexample Ġin Ġtests ). Ċ Ġ* Ġ@ param Ġinit State ĠOptional Ġinitial Ġstate Ġfor Ġthe Ġtransition . ĠWhen Ġundefined , Ġthe Ġinitial Ġstate Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwill Ġbe Ġset Ġto Ġthe Ġfirst Ġ[ to State ] Ġseen Ġin Ġthe Ġtransition . Ċ Ġ* Ġ@ param Ġon StateChange Finished ĠAn Ġoptional Ġlistener Ġto Ġget Ġnotified Ġwhen Ġstate Ġchange Ġanimation Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Ġcompleted Ċ Ġ* Ġ@ param Ġchildren ĠThe Ġchildren Ġcomp os ables Ġthat Ġwill Ġbe Ġanimated Ċ Ġ* Ċ Ġ* Ġ@ see Ġ[ Transition Definition ] Ċ Ġ*/ Ċ @ Deprecated (" Transition Ġhas Ġbeen Ġrenamed Ġto Ġtransition , Ġwhich Ġreturns Ġa ĠTransition State Ġinstead Ġ" Ġ+ ĊĠĠĠĠĠĠĠ Ġ" of Ġpassing Ġit Ġto Ġchildren ", ĊĠĠĠ Ġreplace With Ġ= ĠReplace With ( ĊĠĠĠĠĠĠĠ Ġ" transition ( definition , Ġto State , Ġclock , Ġinit State , Ġnull , Ġon StateChange Finished )", ĊĠĠĠĠĠĠĠ Ġ" android x . compose . animation . transition ")) Ċ @ Composable Ċ fun Ġ< T > ĠTransition ( ĊĠĠĠ Ġdefinition : ĠTransition Definition < T >, ĊĠĠĠ Ġto State : ĠT , ĊĠĠĠ Ġclock : ĠAnimation Clock Observable Ġ= ĠAnimation Clock Ambient . current , ĊĠĠĠ Ġinit State : ĠT Ġ= Ġto State , ĊĠĠĠ Ġon StateChange Finished : Ġ(( T ) Ġ-> ĠUnit )? Ġ= Ġnull , ĊĠĠĠ Ġchildren : Ġ@ Composable Ġ( state : ĠTransition State ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġval Ġstate Ġ= Ġtransition ( definition , Ġto State , Ġclock , Ġinit State , Ġnull , Ġon StateChange Finished ) ĊĠĠĠ Ġchildren ( state ) Ċ }