/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 Ġ- Ġpresent ĠIn structure , ĠInc . Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ package Ġin structure . android blueprint Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . loader . app . Loader Manager Ċ import Ġandroidx . loader . content . Loader Ċ Ċ /** Ċ Ġ* ĠThe ĠPres enter Ġwill Ġdecide Ġwhat Ġto Ġdo Ġfor Ġevery Ġincoming Ġevent , Ċ Ġ* Ġretrieving Ġor Ġupdating Ġdata Ġfrom Ġthe ĠModel Ġand Ġpre paring Ġthe Ġdata Ġso Ġthe ĠView Ġcan Ġdisplay Ġit . Ċ Ġ*/ Ċ abstract Ġclass ĠPres enter Activity < PRES ENTER Ġ: ĠPres enter < VIEW >, ĠVIEW > Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġpoint Ġin Ġtime Ġwe Ġhave Ġa Ġpresenter Ġprepared Ġand Ġthe Ġview Ġinterface Ġhas Ġbeen Ġinitialized ĊĠĠĠĠ Ġ* ĠWe Ġare Ġready Ġto Ġgo Ġgo Ġgo ĊĠĠĠĠ Ġ* ĠThe Ġsame Ġas Ġsetting Ġviews Ġin ĠonStart () Ġbut Ġalso Ġprovides Ġa ĠPres enter ĊĠĠĠĠ Ġ* Ġ@ param Ġpresenter ĠAn Ġimplementation Ġof Ġthe ĠPres enter Ġinterface ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġon Ready Set Go ( presenter : ĠP RES ENTER ) ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġget Presenter Factory (): ĠPres enter Factory < VIEW , ĠP RES ENTER > ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġon Presenter Prepared ( presenter : ĠP RES ENTER ) ĊĊĠĠĠ Ġvar Ġpresenter : ĠP RES ENTER ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġ/* ĠWe Ġnormally Ġinvoke Ġon Ready Set Go () Ġas Ġpart Ġof ĠonStart (), Ġbut Ġthis Ġrequires Ġa Ġvalid Ġpresenter Ġwhich Ġnot Ġavailable ĊĠĠĠ Ġuntil ĠLoader Callback . on Load Finished () Ġis Ġcalled . ĠBecause Ġthe Ġorder Ġof ĠonStart () Ġand ĠonLoad Finished () Ġis Ġnot ĊĠĠĠ Ġguaranteed , Ġwe Ġneed Ġto Ġtrack Ġthe Ġcase Ġwhere ĠonStart () Ġis Ġcalled Ġfirst Ġso Ġwe Ġcan Ġensure Ġthat Ġon Ready Set Go () ĊĠĠĠ Ġis Ġinvoked Ġas Ġsoon Ġas Ġthe Ġpresenter Ġis Ġready . Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġready Set Go Skipped Ġ= Ġfalse ĊĠĠĠ Ġpublic Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠLoader Manager . getInstance ( this ). init Loader ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLO ADER _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠLoader Manager . Loader Callbacks < PRES ENTER > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate Loader ( id : ĠInt , Ġargs : ĠBundle ?): ĠLoader < PRES ENTER > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPres enter Loader ( this @ Presenter Activity , Ġget Presenter Factory ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Finished ( loader : ĠLoader < PRES ENTER >, Ġpresenter : ĠP RES ENTER ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Presenter Activity . presenter Ġ= Ġpresenter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent ?. extras ?. let Ġ{ Ġun Bundle ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Presenter Prepared ( presenter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ready Set Go Skipped ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMake Ġsure Ġto Ġinvoke Ġon Ready Set Go () Ġif Ġit Ġhad Ġto Ġbe Ġskipped Ġin ĠonStart () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Ready Set Go ( presenter . on View Attached ( presenter View ) Ġas ĠP RES ENTER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġready Set Go Skipped Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Loader Reset ( loader : ĠLoader < PRES ENTER >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Presenter Destroyed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġif Ġ( presenter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ready Set Go ( presenter !!. on View Attached ( presenter View ) Ġas ĠP RES ENTER ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġready Set Go Skipped Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter ?. on View Detached () ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġon Presenter Destroyed () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġhook Ġfor Ġsubclasses ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠOverride Ġin Ġcase Ġof ĠActivity Ġnot Ġimplementing ĠPres enter < View > Ġinterface ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġprotected Ġval Ġpresenter View : ĠVIEW ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis Ġas ĠVIEW ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOnly Ġgets Ġcalled Ġif Ġextras Ġis Ġnot Ġnull ĊĠĠĠĠ Ġ* Ġ@ param Ġextras ĠA Ġnon - null Ġgroup Ġof Ġextras Ġin ĠBundle Ġform ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġun Bundle ( extras : ĠBundle ) Ġ{} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLO ADER _ ID Ġ= Ġ 1 0 0 1 ĊĠĠĠ Ġ} Ċ } Ċ