package Ġcom . omega _ r . base . dialogs Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġcom . omega _ r . base . components . Omega Dialog Ċ import Ġcom . omega _ r . libs . ome gat ypes . Text Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠAnt on ĠK ny az ev Ġon Ġ 0 2 . 1 2 . 2 0 2 0 . Ċ Ġ*/ Ċ private Ġconst Ġval ĠKEY _ LOCK ING _ DIALOG _ SHOW ING Ġ= Ġ" O ME GA _ LOCK ING _ DIALOG _ SHOW ING " Ċ open Ġclass ĠWaiting Controller Ġ( private Ġval Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġdialog Manager : ĠDialog Manager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġshow Waiting Delay : ĠLong Ġ= Ġ 5 5 5 L ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġhandler Ġ= ĠHandler ( Looper . get Main Looper ()) ĊĊĠĠĠ Ġprivate Ġvar Ġlocking Dialog : ĠLock Screen Dialog ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Manager . remove Dialog ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ Ġdialog Manager . add Dialog ( it , ĠDialog Category . WAIT ING ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġvar Ġwaiting Dialog : ĠO mega Dialog ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Manager . remove Dialog ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ Ġdialog Manager . add Dialog ( it , ĠDialog Category . WAIT ING ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġwaiting Text : ĠText ? Ġ= Ġnull ĊĊĊĠĠĠ Ġprivate Ġval Ġwaiting Runnable Ġ= ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠ Ġlocking Dialog Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( waiting Dialog Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwaiting Dialog Ġ= Ġcreate Waiting Dialog ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( dialog Manager :: showMessageDialog ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġcreate Waiting Dialog ( context : ĠContext ): ĠO mega Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠWaiting Dialog ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwaiting Text ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġset Waiting ( waiting : ĠBoolean , Ġtext : ĠText ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( waiting ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwaiting Text Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lock ing Dialog Ġ== Ġnull Ġ&& Ġwaiting Dialog Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocking Dialog Ġ= ĠLock Screen Dialog ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Manager . show Dialog ( this , ĠDialog Category . WAIT ING ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post Delayed ( waiting Runnable , Ġshow Waiting Delay ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwaiting Text ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( waiting Dialog Ġas ? ĠText able Omega Dialog )?. text Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . remove Callbacks ( waiting Runnable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwaiting Text Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocking Dialog Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwaiting Dialog Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( lock ing Dialog Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout State . put Boolean ( KEY _ LOCK ING _ DIALOG _ SHOW ING , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Restore InstanceState ( savedInstanceState : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocking Dialog Showing Ġ= ĠsavedInstanceState . getBoolean ( KEY _ LOCK ING _ DIALOG _ SHOW ING , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġif Ġ( lock ing Dialog Ġ!= Ġnull Ġ&& Ġ! lock ing Dialog Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . remove Callbacks ( waiting Runnable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwaiting Runnable . run () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }