package Ġme . t art ik ov . map . app Ċ Ċ import Ġandroidx . compose . animation . Animated Visibility Ċ import Ġandroidx . compose . animation . Experimental Animation Api Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . material . Button Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime .* Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġme . t art ik ov . map .* Ċ Ċ private Ġclass ĠPin With Overlay ( val Ġposition : ĠGeo Point ) Ġ{ ĊĠĠĠ Ġvar Ġoverlay Visible Ġby Ġmutable State Of ( true ) ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġfun ĠonClick () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverlay Visible Ġ= Ġ! overlay Visible ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠOverlay Screen ViewModel Ġ{ ĊĠĠĠ Ġval Ġpins Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠPin With Overlay ( Geo Point ( 5 5 . 8 2 9 5 6 3 5 9 8 1 3 0 8 2 , Ġ 3 7 . 4 3 3 1 5 2 6 7 3 7 6 6 0 2 )), ĊĠĠĠĠĠĠĠ ĠPin With Overlay ( Geo Point ( 5 5 . 8 7 0 6 9 8 0 2 0 7 6 8 8 9 , Ġ 3 7 . 6 3 7 2 1 4 9 6 7 9 8 0 9 8 )), ĊĠĠĠĠĠĠĠ ĠPin With Overlay ( Geo Point ( 5 5 . 7 7 3 5 6 9 3 6 8 5 0 7 8 3 6 , Ġ 3 7 . 8 1 0 8 3 2 4 2 9 6 7 7 2 5 )), ĊĠĠĠĠĠĠĠ ĠPin With Overlay ( Geo Point ( 5 5 . 7 0 0 3 3 1 6 4 9 3 6 1 2 5 , Ġ 3 7 . 3 9 2 0 1 1 1 0 7 8 7 6 9 )), ĊĠĠĠĠĠĠĠ ĠPin With Overlay ( Geo Point ( 5 5 . 7 0 2 6 5 1 4 2 1 7 0 9 9 3 , Ġ 3 7 . 6 2 5 6 9 5 2 9 9 3 5 7 1 7 6 )), ĊĠĠĠĠĠĠĠ ĠPin With Overlay ( Geo Point ( 5 5 . 5 7 7 6 5 2 9 4 9 0 6 8 8 3 5 , Ġ 3 7 . 7 6 7 2 2 2 3 0 9 4 8 5 0 8 )) ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠOverlay Screen () Ġ{ ĊĠĠĠ Ġval Ġvm Ġ= Ġremember Ġ{ ĠOverlay Screen ViewModel () Ġ} ĊĠĠĠ Ġval Ġpin Image Ġ= Ġimage From Resource ( R . drawable . ic _ pin ) ĊĠĠĠ ĠMap View Ġ{ ĊĠĠĠĠĠĠĠ Ġvm . pins . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPin With Overlay View ( it , Ġpin Image ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Opt In ( Experimental Animation Api :: class ) Ċ @ Composable Ċ private Ġfun ĠPin With Overlay View ( pin : ĠPin With Overlay , Ġicon : ĠImage ) Ġ{ ĊĠĠĠ Ġval Ġzoom Ġ= ĠCamera . zoom ĊĠĠĠ ĠAnimated Visibility ( ĊĠĠĠĠĠĠĠ Ġpin . overlay Visible Ġ&& Ġzoom Ġ> Ġ 8 . 5 f , ĊĠĠĠĠĠĠĠ ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. snap To Geo Point ( pin . position , ĠAlignment . Bottom Center ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 1 2 . dp ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠButton ( onClick Ġ= Ġpin :: onClick ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Click ĠMe ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ ĠMarker ( pin . position , Ġicon , ĠonClick Ġ= Ġpin :: onClick ) Ċ } Ċ