/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 Ġ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 . demos Ċ Ċ import Ġandroidx . compose . animation . core . Float Prop Key Ċ import Ġandroidx . compose . animation . core . Linear E asing Ċ import Ġandroidx . compose . animation . core . repeat able Ċ import Ġandroidx . compose . animation . core . transition Definition Ċ import Ġandroidx . compose . animation . core . t ween Ċ import Ġandroidx . compose . animation . transition Ċ import Ġandroidx . compose . foundation . Canvas Ċ import Ġandroidx . compose . foundation . Text Ċ import Ġandroidx . compose . foundation . layout . Arrange ment Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . foundation . layout . preferred Size Ċ import Ġandroidx . compose . foundation . layout . wrap Content Size Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . gesture . tap Gesture Filter Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . graphics . draw scope . rotate Ċ import Ġandroidx . compose . ui . text . TextStyle Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . compose . ui . unit . sp Ċ Ċ @ Composable Ċ fun ĠRe peated Rotation Demo () Ġ{ ĊĠĠĠ Ġval Ġstate Ġ= Ġremember Ġ{ Ġmutable State Of ( Rotation States . Original ) Ġ} ĊĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠ ĠModifier . fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. wrap Content Size ( Alignment . Center ), ĊĠĠĠĠĠĠĠ Ġvertical Arrange ment Ġ= ĠArrange ment . Space Even ly ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Style Ġ= ĠTextStyle ( fontSize Ġ= Ġ 1 8 . sp ) ĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . tap Gesture Filter ( on Tap Ġ= Ġ{ Ġstate . value Ġ= ĠRotation States . Rot ated Ġ}), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Rotate Ġ 1 0 Ġtimes ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġtext Style ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . tap Gesture Filter ( on Tap Ġ= Ġ{ Ġstate . value Ġ= ĠRotation States . Original Ġ}), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Reset ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġtext Style ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġtransition State Ġ= Ġtransition ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefinition Ġ= Ġdefinition , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto State Ġ= Ġstate . value ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠCanvas ( Modifier . preferred Size ( 1 0 0 . dp )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrotate ( transition State [ rotation ], Ġ 0 . 0 f , Ġ 0 . 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Rect ( Color ( 0 xFF 0 0 FF 0 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġenum Ġclass ĠRotation States Ġ{ ĊĠĠĠ ĠOriginal , ĊĠĠĠ ĠRot ated Ċ } Ċ Ċ private Ġval Ġrotation Ġ= ĠFloat Prop Key () Ċ Ċ private Ġval Ġdefinition Ġ= Ġtransition Definition < Rotation States > Ġ{ ĊĠĠĠ Ġstate ( Rotation States . Original ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis [ rotation ] Ġ= Ġ 0 f ĊĠĠĠ Ġ} ĊĠĠĠ Ġstate ( Rotation States . Rot ated ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis [ rotation ] Ġ= Ġ 3 6 0 f ĊĠĠĠ Ġ} ĊĠĠĠ Ġtransition ( Rotation States . Original Ġto ĠRotation States . Rot ated ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrotation Ġusing Ġrepeat able ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiterations Ġ= Ġ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimation Ġ= Ġt ween ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeasing Ġ= ĠLinear E asing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration Millis Ġ= Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġtransition ( Rotation States . Rot ated Ġto ĠRotation States . Original ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrotation Ġusing Ġt ween ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration Millis Ġ= Ġ 3 0 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ