package Ġcom . dev _ vl ad . mot iv q Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġcom . dev _ vl ad . mot iv q . async _ tasks . Async Fetch Quote Ċ import Ġcom . dev _ vl ad . mot iv q . async _ tasks . Async Internet Checker Ċ import Ġcom . dev _ vl ad . mot iv q . models . Quotes Ċ import Ġcom . dev _ vl ad . mot iv q . ui . Info Pop Up Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ, ĠInfo Pop Up . Operation Feedback Dialog Listener { ĊĊĊĠĠĠ Ġprivate Ġvar Ġinfo Pop Up Ġ: ĠInfo Pop Up ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġto days Quote F etched Ġ Ġ= Ġfalse Ġ Ġ// ensure Ġthat Ġtoday 's Ġquote Ġis Ġfetched Ġonly Ġonce ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( main _ act _ toolbar ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Quote Of The Day () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// get Ġtoday 's Ġquote ĊĠĠĠĠĠĠĠ Ġval Ġfetch Today Quote Task Ġ= ĠAsync Fetch Quote ( fetch Random Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġfetch Today Quote Task . delegate Result Ġ= Ġobject Ġ: ĠAsync Fetch Quote . Async Response { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfetching Complete ( quote : ĠQu otes ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( quote Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto days Quote F etched Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe _ quote _ tv . text Ġ= Ġquote . quote ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġauthor Prefix ed Ġ= ĠgetString ( R . string . author _ prefix _ txt )+ Ġ" Ġ" Ġ+ Ġquote . author ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe _ author _ tv . text Ġ= Ġ Ġauthor Prefix ed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe _ author _ tv . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , ĠR . string . err _ fetch ing _ quote , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfetch Today Quote Task . execute () ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġ/ ******** * ĠON ĠVIEW ĠACTION ĠLIST EN ERS Ġ********* ******/ ĊĊĠĠĠ Ġfun Ġon Get Random Quote Btn Clicked ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// show Ġprogress Ġbar ĊĠĠĠĠĠĠĠ Ġprogress _ circular . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġview . visibility Ġ= ĠView . IN VISIBLE ĊĊĠĠĠĠĠĠĠ Ġval Ġfetch Random Quote Task Ġ= ĠAsync Fetch Quote ( fetch Random Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġfetch Random Quote Task . delegate Result Ġ= Ġobject Ġ: ĠAsync Fetch Quote . Async Response { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfetching Complete ( quote : ĠQu otes ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( quote Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrandom Quote Ġ= Ġquote . quote Ġ+ Ġ" Ġ" Ġ+ ĠgetString ( R . string . author _ prefix _ txt ) Ġ+ Ġ" Ġ" Ġ+ Ġquote . author ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Info As Pop Up ( getString ( R . string . random _ quote _ title ), Ġrandom Quote , Ġ Ġis Positive Msg Ġ= Ġtrue , Ġclose Act On Dismiss Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠerrMsg Ġ= ĠgetString ( ĠR . string . err _ fetch ing _ quote ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Info As Pop Up ( getString ( R . string . random _ quote _ title ), ĠerrMsg , Ġ Ġis Positive Msg Ġ= Ġfalse , Ġclose Act On Dismiss Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ circular . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfetch Random Quote Task . execute () ĊĠĠĠ Ġ} ĊĊĊĊĊĊĊ ĊĊĠĠĠ Ġ/ ******** ĠM EN US Ġ********* *****/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// inflate Ġmenu ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . home _ menu , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . itemId Ġ Ġ== Ġ ĠR . id . show _ credits _ item -> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpop Up Title Ġ= ĠgetString ( R . string . credits _ txt ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcredits Ġ= ĠgetString ( R . string . app _ credits ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Info As Pop Up ( pop Up Title , Ġmessage Ġ= Ġcredits , Ġis Positive Msg Ġ= Ġtrue , Ġclose Act On Dismiss Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĊĠĠĠ Ġ/ ******** ****** ĠL IF E ĠCY CLE ĠMETHO DS Ġ***************** ***/ ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġcheck For Internet Connection () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġcheck For Internet Connection () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġasync Internet Checker Ġ Ġ= ĠAsync Internet Checker () ĊĠĠĠĠĠĠĠ Ġasync Internet Checker . delegate Result Ġ= Ġobject Ġ: ĠAsync Internet Checker . Async Response { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġchecking Complete ( isConnected : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! isConnected ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Info As Pop Up ( getString ( R . string . internet _ connection _ title ) Ġ, ĠgetString ( R . string . internet _ connection _ err ), Ġis Positive Msg Ġ= Ġfalse Ġ, Ġclose Act On Dismiss Ġ= Ġtrue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif (! tod ays Quote F etched ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Quote Of The Day () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġasync Internet Checker . execute () ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġ/ ******** ***** ĠPOP ĠUP ĠMESS AGES Ġ************************* **/ ĊĊĠĠĠ Ġprivate Ġfun Ġdisplay Info As Pop Up ( pop Up Title Ġ: ĠString , Ġmessage Ġ: ĠString , Ġis Positive Msg Ġ: ĠBoolean , Ġclose Act On Dismiss Ġ: ĠBoolean ){ ĊĠĠĠĠĠĠĠ Ġinfo Pop Up Ġ= ĠInfo Pop Up ( pop Up Title , Ġmessage , Ġis Positive Msg , Ġclose Act On Dismiss ) ĊĠĠĠĠĠĠĠ Ġinfo Pop Up !!. show ( support FragmentManager , Ġ" tag _ name _ mot iv - q _ info ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Info Pop Up Closed ( close Act Ġ: ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinfo Pop Up !!. dismiss () ĊĠĠĠĠĠĠĠ Ġif ( close Act ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĊ Ċ } Ċ