package Ġapp . sandbox . xp . ui . news Ċ Ċ import Ġandroid . view . View Ċ import Ġapp . sandbox . xp . App Experiment s Ċ import Ġapp . sandbox . xp . Xp Ċ import Ġapp . sandbox . xp . api . News Ċ import Ġapp . sandbox . xp . api . News Errors Ċ import Ġapp . sandbox . xp . api . Response Ċ import Ġapp . sandbox . xp . databinding . Activity Main Binding Ċ import Ġapp . sandbox . xp . plugin . Plugin Factory Ċ import Ġapp . sandbox . xp . ui . News Adapter Ċ import Ġapp . sandbox . xp . ui . News Response Handler Plugin Ċ import Ġapp . sandbox . xp . ui . Retry News Request Stream Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ Ċ class ĠGeneric Response Handler Plugin Factory ( ĊĠĠĠ Ġprivate Ġval Ġparent Component : ĠParent Component Ċ ) Ġ: ĠPlugin Factory < Response < List < News >, ĠNews Errors >, ĠNews Response Handler Plugin > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġkill Switch : ĠX p ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠApp Experiment s . NE WS _ GENERIC _ ERROR _ HANDLER ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Plugin ( dynamic Dependency : ĠResponse < List < News >, ĠNews Errors >): ĠNews Response Handler Plugin Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPlugin ( parent Component ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Applicable ( dynamic Dependency : ĠResponse < List < News >, ĠNews Errors >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠParent Component Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġretry News Request Stream (): ĠRetry News Request Stream ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠPlugin ( private Ġval Ġparent Component : ĠParent Component ) Ġ: ĠNews Response Handler Plugin Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( binding : ĠActivity Main Binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( binding . list ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( adapter Ġas ĠNews Adapter ). update ( emptyList ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . un authenticated Error . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . empty Error . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( binding . root , Ġ" F al ha Ġao Ġobter Ġnot ÃŃ cias ", ĠSn ackbar . LENGTH _ IN DEFIN ITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction (" Retry ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġparent Component . retry News Request Stream (). retry () Ġ}. show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }