package Ġcom . swap card . apps . mov i eb rowser . android . ui . view model Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġcom . swap card . apps . mov i eb rowser . android . R Ċ import Ġcom . swap card . apps . mov i eb rowser . android . repository . Movie DataSource . Similar Movies Load State Ċ Ċ class ĠSimilar Movies Load State ViewModel ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsimilar Movies Load State : ĠSimilar Movies Load State , ĊĠĠĠĠĠĠĠ Ġretry : Ġ() Ġ-> ĠUnit Ċ ) Ġ: ĠLoad State ViewModel ( retry ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġloading Visibility (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( similar Movies Load State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimilar Movies Load State . Loading Ġ-> ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġempty Visibility (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( similar Movies Load State Ġis ĠSimilar Movies Load State . Loaded Ġ&& Ġsimilar Movies Load State . movies . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġerror Visibility (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( similar Movies Load State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSimilar Movies Load State . Error Ġ-> ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġempty Message ( context : ĠContext ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . getString ( R . string . description _ empty _ similar _ movies ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠerrorMessage ( context : ĠContext ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= Ġsimilar Movies Load State Ġas ? ĠSimilar Movies Load State . Error ĊĠĠĠĠĠĠĠ Ġerror ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġerror . throwable . localized Message Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠ Ġ} Ċ } Ċ