package Ġorg . red byte . anim at ron . card Ċ Ċ import Ġandroid . animation . Animator Inflater Ċ import Ġandroid . animation . Animator Set Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġkotlinx . android . synt hetic . main . go _ card _ back .* Ċ import Ġkotlinx . android . synt hetic . main . go _ card _ front .* Ċ import Ġorg . red byte . anim at ron . R Ċ import Ġorg . red byte . anim at ron . trig an . Trig an Activity Ċ Ċ class ĠGo Card Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Set Right Out : ĠAn imator Set ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Set Left In : ĠAn imator Set ĊĠĠĠ Ġprivate Ġvar Ġm Is Back Visible Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ go _ card ) ĊĠĠĠĠĠĠĠ Ġsetup Animation () ĊĠĠĠĠĠĠĠ Ġsetup Views () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġcv Go Card Front . setOnClickListener Ġ{ Ġflip Card () Ġ} ĊĠĠĠĠĠĠĠ Ġcv Go Card Back . setOnClickListener Ġ{ Ġflip Card () Ġ} ĊĠĠĠĠĠĠĠ Ġsc v . setColor ( getColor ( R . color . color Yellow )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Animation () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Set Right Out Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAn imator Inflater . load Animator ( this , ĠR . anim ator . flip _ out _ animation ) Ġas ĠAn imator Set ĊĠĠĠĠĠĠĠ Ġm Set Left In Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAn imator Inflater . load Animator ( this , ĠR . anim ator . flip _ in _ animation ) Ġas ĠAn imator Set ĊĠĠĠĠĠĠĠ Ġchange Camera Distance () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchange Camera Distance () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdistance Ġ= Ġ 1 8 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġresources . display Metrics . density Ġ* Ġdistance ĊĠĠĠĠĠĠĠ Ġcv Go Card Front . camera Distance Ġ= Ġscale ĊĠĠĠĠĠĠĠ Ġcv Go Card Back . camera Distance Ġ= Ġscale ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġflip Card () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Is Back Visible Ġ= Ġif Ġ(! m Is Back Visible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Set Right Out . setTarget ( cv Go Card Front ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Set Left In . setTarget ( cv Go Card Back ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Set Right Out . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Set Left In . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Set Right Out . setTarget ( cv Go Card Back ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Set Left In . setTarget ( cv Go Card Front ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Set Right Out . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Set Left In . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġfun Ġopen ( context : ĠContext ): ĠIntent Ġ= ĠIntent ( context , ĠGo Card Activity :: class . java ) ĊĠĠĠ Ġ} Ċ }