package Ġcom . erik rio set i awan . cin em am ov ies . ui . tv show Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . erik rio set i awan . cin em am ov ies . Build Config Ċ import Ġcom . erik rio set i awan . cin em am ov ies . api . Api Repository Ċ import Ġcom . erik rio set i awan . cin em am ov ies . api . The Movie DB Api Ċ import Ġcom . erik rio set i awan . cin em am ov ies . model . Tv Show Ċ import Ġcom . erik rio set i awan . cin em am ov ies . model . Tv Show Response Ċ import Ġcom . google . gson . Gson Ċ import Ġorg . jetbrains . ank o . do Async Ċ import Ġorg . jetbrains . ank o . ui Thread Ċ Ċ class ĠT v Show ViewModel Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġmutable LiveData Tv Shows : ĠMutable LiveData < List < Tv Show >> Ġ= ĠMutable LiveData () ĊĠĠĠ Ġprivate Ġvar Ġis Fetching Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġprivate Ġval ĠapiKey Ġ= ĠBuild Config . TM DB _ API _ KEY ĊĠĠĠ Ġprivate Ġval Ġlanguage Ġ= Ġ" en - US " ĊĊĠĠĠ Ġfun Ġget Tv Shows (): ĠLive Data < List < Tv Show >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmutable LiveData Tv Shows ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Is Fetching (): ĠLive Data < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis Fetching ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetIs Fetching ( is Fetching : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . is Fetching . post Value ( is Fetching ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopen () Ġ{ ĊĠĠĠĠĠĠĠ ĠsetIs Fetching ( true ) ĊĠĠĠĠĠĠĠ Ġdo Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapi Repository Ġ= ĠApi Repository () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġgson . fromJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Repository . do Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThe Movie DB Api . get Tv Show ( apiKey , Ġlanguage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĠT v Show Response :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable LiveData Tv Shows . value Ġ= Ġdata . results ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( mutable LiveData Tv Shows . value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetIs Fetching ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }