package Ġme . gi ac op po . remote config Ċ Ċ class ĠTest Application Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Ġ= ĠTest Application () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp . demo () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġremote AppConfig Ġby Ġlazy Ġ{ Ġremote Config < AppConfig >() Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Remote Config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote Resource < AppConfig >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstorage ("./ configs "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork (" https :// demo 7 8 6 5 7 6 8 . mock able . io / messages . json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresource Name Ġ= Ġ" welcome - config " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdemo () Ġ{ ĊĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠ Ġprint Current Config () ĊĠĠĠĠĠĠĠ Ġshow Default () ĊĠĠĠĠĠĠĠ Ġshow Fresh () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġremote AppConfig . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Default () Ġ{ ĊĠĠĠĠĠĠĠ Ġremote AppConfig . setDefault Config ( AppConfig (" This Ġis Ġthe Ġdefault Ġwelcome Ġmessage .")) ĊĠĠĠĠĠĠĠ Ġprint Current Config () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Fresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġremote AppConfig . fetch ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Fetch Ġis Ġsuccessful ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote AppConfig . activate F etched () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint Current Config () ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Fetch Ġis Ġfailed : Ġ${ it . message }") ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprint Current Config () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Config : Ġ${ remote AppConfig . get () }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠApp Config ( ĊĠĠĠĠĠĠĠ Ġval Ġwelcome Message : ĠString ? ĊĠĠĠ Ġ) Ċ } Ċ