package Ġcom . demo . skeleton Ċ Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġcom . demo . dem ol ib . Api Callback Ċ import Ġcom . demo . dem ol ib . controller . Api Controller Ċ import Ġcom . eth anh ua . skeleton . Skeleton Ċ import Ġcom . eth anh ua . skeleton . Skeleton Screen Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġm My Adapter Ġ: ĠMy Adapter ĊĠĠĠ Ġlateinit Ġvar Ġskeleton Screen Ġ: ĠS keleton Screen ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġm My Adapter = ĠMy Adapter () ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġlayout Manager . orientation = Linear LayoutManager . HORIZONTAL ĊĠĠĠĠĠĠĠ Ġre cycler . layout Manager = layout Manager ĊĠĠĠĠĠĠĠ Ġm My Adapter . open Load Animation () ĊĠĠĠĠĠĠĠ Ġm My Adapter . is First Only ( false ) Ċ // ĠĠĠĠĠĠĠ Ġm My Adapter . set Not Do Animation Count ( 3 ) Ċ // ĠĠĠĠĠĠĠ Ġre cycler . adapter = m My Adapter ĊĠĠĠĠĠĠĠ Ġskeleton Screen Ġ= ĠS keleton . bind ( recycler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. adapter ( m My Adapter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( R . layout . skeleton _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠ Ġre cycler . post Delayed ( Runnable Ġ{ Ġget Nav List () Ġ}, Ġ 3 0 0 0 ) Ċ // ĠĠĠĠĠĠĠ Ġget Nav List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Nav List (){ ĊĠĠĠĠĠĠĠ ĠApi Controller . get Nav List ( object Ġ: ĠApi Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( response : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsingle JsonObject Ġ= ĠGson Util . fromJson ( response , ĠSingle JsonObject :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( single JsonObject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( 1 == single JsonObject . code ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnav Objects Ġ= ĠGson Util . from Object < List < Nav Object >>( single JsonObject . data , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠType Token < List < Nav Object >>() Ġ{} . type ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Recycler ( nav Objects . to Mutable List ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskeleton Screen . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm My Adapter . set New Data ( nav Objects ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( throwable : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrowable . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ Ċ } Ċ