package Ġcom . vm en on . mp o . view Ċ Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . os . System Clock Ċ import Ġandroid . view . View Ċ Ċ class ĠLoading State Helper Ġinternal Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġloading View : ĠView , ĊĠĠĠ Ġprivate Ġval Ġcontent View : ĠView ?, ĊĠĠĠ Ġprivate Ġval Ġuse Overlay : ĠBoolean Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġhandler Ġ= ĠHandler ( Looper . get Main Looper ()) ĊĊĠĠĠ Ġprivate Ġval Ġshow Loading State Runnable Ġ= ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠ Ġtoggle Loading State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġshow Content State Runnable Ġ= ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠ Ġtoggle Content State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġtime Loading Started : ĠLong Ġ= Ġ- 1 L ĊĊĠĠĠ Ġfun Ġshow Loading State () Ġ{ ĊĠĠĠĠĠĠĠ Ġhandler . post Delayed ( show Loading State Runnable , ĠMIN _ DELAY _ TO _ SHOW _ LOADING _ MS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Content State () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( has Loading State Been Show Long En ough ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . remove Callbacks ( show Loading State Runnable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Content State () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post Delayed ( show Content State Runnable , Ġget Show Content Delay Ms ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreset () Ġ{ ĊĠĠĠĠĠĠĠ Ġhandler . remove Callbacks ( show Content State Runnable ) ĊĠĠĠĠĠĠĠ Ġhandler . remove Callbacks ( show Loading State Runnable ) ĊĠĠĠĠĠĠĠ Ġtime Loading Started Ġ= Ġ- 1 L ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtoggle Loading State () Ġ{ ĊĠĠĠĠĠĠĠ Ġloading View . visibility Ġ= ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! use Overlay ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtime Loading Started Ġ= ĠSystem Clock . elapsed Realtime () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtoggle Content State () Ġ{ ĊĠĠĠĠĠĠĠ Ġloading View . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġcontent View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhas Loading State Been Show Long En ough (): ĠBoolean Ġ= Ġtime Loading Started Ġ== Ġ- 1 L Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( System Clock . elapsed Realtime () Ġ- Ġtime Loading Started ) Ġ> ĠMIN _ SHOW _ LOADING _ MS ĊĊĠĠĠ Ġprivate Ġfun Ġget Show Content Delay Ms (): ĠLong Ġ= ĊĠĠĠĠĠĠĠ ĠMIN _ DELAY _ TO _ SHOW _ LOADING _ MS Ġ- Ġ( System Clock . elapsed Realtime () Ġ- Ġtime Loading Started ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġswitch With Content ( content View : ĠView , Ġloading View : ĠView ) Ġ= ĠLoading State Helper ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent View Ġ= Ġcontent View , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading View Ġ= Ġloading View , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Overlay Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġoverlay Content ( loading View : ĠView ) Ġ= ĠLoading State Helper ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading View Ġ= Ġloading View , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent View Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Overlay Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMIN _ DELAY _ TO _ SHOW _ LOADING _ MS Ġ= Ġ 5 0 0 L ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMIN _ SHOW _ LOADING _ MS Ġ= Ġ 5 0 0 L ĊĠĠĠ Ġ} Ċ }