package Ġcom . dm ot pan . k ata _ mv vm . current weather Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View . GONE Ċ import Ġandroid . view . View . VISIBLE Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . dm ot pan . k ata _ mv vm . api . ApiService Ċ import Ġcom . dm ot pan . k ata _ mv vm . api . Ret rofit Provider Ċ import Ġcom . dm ot pan . k ata _ mv vm . api . model . Weather Response Ċ import Ġcom . dm ot pan . k ata _ mv vm . api . status . Resource Ċ import Ġcom . dm ot pan . k ata _ mv vm . databinding . Activity Current Weather Binding Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġnl . d ion se gi jn . kon f et ti . models . Shape Ċ import Ġnl . d ion se gi jn . kon f et ti . models . Size Ċ Ċ @ Experimental Cor outines Api Ċ class ĠCurrent Weather Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠviewModel Factory Ġ= Ġobject Ġ: ĠViewModel Provider . Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCurrent Weather ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCurrent Weather Interactor ( Ret rofit Provider . get (). create ( ApiService :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠCurrent Weather ViewModel Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠViewModel Provider ( this , ĠviewModel Factory ). get ( Current Weather ViewModel :: class . java ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġbinding Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠActivity Current Weather Binding . inflate ( layout Inflater ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġbinding . degrees . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Temperature Click () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠTODO ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Kon f et ti () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . kon f et ti . build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Colors ( Color . YELLOW , ĠColor . GREEN , ĠColor . MAG ENT A ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Direction ( 0 . 0 , Ġ 3 5 9 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Speed ( 1 f , Ġ 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Fade Out Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTime To Live ( 2 0 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Shapes ( Shape . Square , ĠShape . Circle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Sizes ( Size ( 1 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setPosition (- 5 0 f , Ġbinding . kon f et ti . width Ġ+ Ġ 5 0 f , Ġ- 5 0 f , Ġ- 5 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. stream For ( 3 0 0 , Ġ 3 5 0 0 L ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Loading () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . error . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠ Ġbinding . progress . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠ Ġbinding . degrees . visibility Ġ= ĠG ONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Success ( weather : ĠResource < Weather Response >) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . error . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠ Ġbinding . progress . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠ Ġbinding . degrees . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠ Ġval Ġdegrees Ġ= Ġweather . data ?. current Weather ?. temp C els ius ?. toInt ()?. toString () ĊĠĠĠĠĠĠĠ Ġbinding . degrees . text Ġ= Ġdegrees ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . degrees . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠ Ġbinding . progress . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠ Ġbinding . error . visibility Ġ= ĠVIS IBLE ĊĠĠĠ Ġ} Ċ } Ċ