package Ġcom . cat Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġcom . cat . Loading Factory . HIDE Ċ import Ġcom . cat . Loading Factory . LOAD FAIL Ċ import Ġcom . cat . Loading Factory . LOADING Ċ import Ġcom . cat . loading helper . R ĊĊ Ċ class ĠPlace Holder Adapter IMPL Ġ: ĠPlace Holder Adapter Ġ{ ĊĊĠĠĠ Ġvar Ġm Reload : ĠRunnable ? Ġ= Ġnull ĊĠĠĠ Ġlateinit Ġvar Ġcontainer : ĠViewGroup ĊĠĠĠ Ġvar Ġloading Layout : ĠI Loading View ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġerror Layout : ĠI Loading View ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġnet Error Layout : ĠI Loading View ? Ġ= Ġnull ĊĠĠĠ Ġlateinit Ġvar ĠviewHolder : ĠView IMPL ĊĊĠĠĠ Ġfun Ġinit ( view : ĠViewGroup , Ġreload : ĠRunnable ?, Ġloading : ĠI Loading View , Ġerror : ĠI Loading View , Ġnet Error : ĠI Loading View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m Reload Ġ= Ġreload ĊĠĠĠĠĠĠĠ Ġthis . container Ġ= Ġview ĊĠĠĠĠĠĠĠ Ġthis . loading Layout Ġ= Ġloading ĊĠĠĠĠĠĠĠ Ġthis . error Layout Ġ= Ġerror ĊĠĠĠĠĠĠĠ Ġthis . net Error Layout Ġ= Ġnet Error ĊĠĠĠĠĠĠĠ Ġinit view Holder () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Reload ( reload : ĠRunnable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m Reload Ġ= Ġreload ĊĠĠĠĠĠĠĠ ĠviewHolder . reload Ġ= Ġreload ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Lod ing Layout ( loading : ĠI Loading View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . loading Layout Ġ= Ġloading ĊĠĠĠĠĠĠĠ Ġinit view Holder () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Error Layout ( error : ĠI Loading View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . error Layout Ġ= Ġerror ĊĠĠĠĠĠĠĠ Ġinit view Holder () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Net Error Layout ( error : ĠI Loading View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . net Error Layout Ġ= Ġerror ĊĠĠĠĠĠĠĠ Ġinit view Holder () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġinit view Holder () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġview Ġ= Ġ Ġcontainer . findViewById ( R . id . loading _ utils _ view _ holder ) Ġas ĠView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . remove View ( view ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠviewHolder Ġ= ĠView IMPL (). init ( container . context , Ġthis , Ġloading Layout , Ġerror Layout , Ġnet Error Layout ) ĊĠĠĠĠĠĠĠ ĠviewHolder . m View . id Ġ= ĠR . id . loading _ utils _ view _ holder ĊĠĠĠĠĠĠĠ Ġcontainer . addView ( view Holder . m View ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Loading () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewHolder . m Type Ġ= ĠLO ADING ĊĠĠĠĠĠĠĠ ĠviewHolder . update View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Load err () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewHolder . m Type Ġ= ĠLOAD FAIL ĊĠĠĠĠĠĠĠ ĠviewHolder . update View () ĊĠĠĠ Ġ} ĊĊĊĊĊĠĠĠ Ġoverride Ġfun Ġhide () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewHolder . m Type Ġ= ĠH IDE ĊĠĠĠĠĠĠĠ ĠviewHolder . update View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Valid view Holder ") ĊĠĠĠ Ġclass ĠView IMPL () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġm Loading View : ĠView ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġm Error View : ĠView ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġm Net Error View : ĠView ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġloading View : ĠI Loading View ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġerror View : ĠI Loading View ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġnet Error View : ĠI Loading View ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġm Type : ĠInt Ġ= ĠH IDE ĊĠĠĠĠĠĠĠ Ġvar Ġreload : ĠRunnable ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġm View : ĠViewGroup ĊĊĠĠĠĠĠĠĠ Ġfun Ġinit ( context : ĠContext , Ġadapter IMPL : ĠPlace Holder Adapter IMPL , Ġloading View : ĠI Loading View ?, Ġerror View : ĠI Loading View ?, Ġnet Error View : ĠI Loading View ?): ĠView IMPL Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . loading View Ġ= Ġloading View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . error View Ġ= Ġerror View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . net Error View Ġ= Ġnet Error View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . reload Ġ= Ġadapter IMPL . m Reload ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġinflater Ġ= ĠLayoutInflater . from ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Loading View Ġ== Ġnull Ġ|| Ġm Error View Ġ== Ġnull Ġ|| Ġm Net Error View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . m Loading View Ġ= Ġloading View ?. onCreate View ( in flater . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . m Error View Ġ= Ġerror View ?. onCreate View ( in flater . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . m Net Error View Ġ= Ġnet Error View ?. onCreate View ( in flater . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm View Ġ= ĠFrame Layout ( in flater . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Loading View ?. parent Ġis ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Loading View ?. parent Ġas ĠViewGroup ). remove View ( m Loading View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Error View ?. parent Ġis ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Error View ?. parent Ġas ĠViewGroup ). remove View ( m Error View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Net Error View ?. parent Ġis ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Net Error View ?. parent Ġas ĠViewGroup ). remove View ( m Net Error View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Loading View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Error View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Net Error View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm View . addView ( m Loading View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm View . addView ( m Error View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm View . addView ( m Net Error View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmetrics Ġ= Ġcontext . resources . display Metrics ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm View . minimum Width Ġ= Ġmetrics . width Pixels ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm View . minimum Height Ġ= Ġmetrics . height Pixels ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġupdate View () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Error View ?. setOnClickListener Ġ{ Ġ Ġreload ?. run () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Net Error View ?. setOnClickListener Ġ{ Ġ Ġreload ?. run () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( m Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLO ADING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Loading View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Error View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Net Error View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOAD FAIL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Loading View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Network Valid ( m View . context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Error View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Net Error View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Error View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Net Error View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Loading View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Error View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Net Error View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }