package Ġtech . sk ot . core . components Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Persist able Bundle Ċ import Ġandroid . util . Typed Value Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . view . View Compat Ċ import Ġandroidx . core . view . Window Compat Ċ import Ġandroidx . core . view . Window Insets Compat Ċ import Ġandroidx . core . view . Window Insets Controller Compat Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġkotlinx . coroutines . launch Ċ import Ġtech . sk ot . core . SK Feature Initializer Ċ import Ġtech . sk ot . core . SK Log Ċ import Ġtech . sk ot . core . to SK Uri Ċ import Ġtech . sk ot . view . SK Permission Android Ċ import Ġtech . sk ot . view . SK Permissions Request Result Android Ċ import Ġtech . sk ot . view . extensions . update Padding Ċ Ċ abstract Ġclass ĠSK Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġvar Ġscreen Key : ĠLong ? Ġ= Ġnull ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġone Activity Already La unched Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġlaunch Activity Class : ĠClass < out ĠSK Activity >? Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon New Intent ( intent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on New Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġif Ġ( launch Activity Class ?. is Instance ( this ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeature Initializer . reset To Root () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent ?. data ?. to SK Uri ()?. let Ġ{ Ġfeature Initializer . on Deep Link ?. invoke ( it , Ġfalse ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġscreen : ĠSK Screen View < *> ? Ġ= Ġnull ĊĊĠĠĠ Ġabstract Ġval Ġfeature Initializer : ĠSK Feature Initializer ĊĊĠĠĠ Ġvar Ġstatus Bar Color : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġtheme Window Light StatusBar : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġvar Ġrequested StatusBar Color : ĠInt ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtyped Value Ġ= ĠTyped Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtheme . resolve Attribute ( android . R . attr . window Light StatusBar , Ġtyped Value , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtheme Window Light StatusBar Ġ= Ġtyped Value . data Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeature Initializer . initialize IfNeeded ( intent ?. data ?. to SK Uri ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Key Ġ= ĠgetKey For This Activity ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( SK Root Stack View Proxy . state LD . value . screens . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeature Initializer . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! one Activity Already La unched Ġ&& Ġview Key Ġ!= Ġ- 1 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġone Activity Already La unched Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSK Root Stack View Proxy . state LD . value . screens . get OrNull ( 0 )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Proxy ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscreen Proxy Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Key Ġ!= Ġ- 1 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS cre ens Manager . getInstance ( view Key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠSK Root Stack View Proxy . state LD . value . screens . get OrNull ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSK Root Stack View Proxy . state LD . value . screens . get OrNull ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġas ? ĠSK Screen View Proxy < *> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġone Activity Already La unched Ġ= Ġtrue ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Proxy ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Key Ġ= Ġkey ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbind To ( this @ SK Activity , Ġnull , Ġlayout Inflater ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetContentView ( this . view ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink To Root Stack () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink To Custom s () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( res umed Without Screen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres umed Without Screen Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Resume () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġstatus Bar Color Ġ= Ġwindow . status Bar Color ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġloading Insets Counter : ĠLong Ġ= Ġ 0 L ĊĊĊĠĠĠ Ġfun Ġset FullScreen ( ĊĠĠĠĠĠĠĠ Ġfull Screen : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġlight StatusBar : ĠBoolean ?, ĊĠĠĠĠĠĠĠ Ġon Window Insets : Ġ(( window Insets : ĠWindow Insets Compat ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġscreen ?. view ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Insets Controller Compat ( window , Ġit ). is Appearance Light StatusBar s Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlight StatusBar Ġ?: Ġtheme Window Light StatusBar ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Compat . set Decor Fits System Windows ( window , Ġ! full Screen ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Insets Counter ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloaded Insets Ġ= ĠView Compat . getRoot Window Insets ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( loaded Insets Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . update Padding ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Ġ= Ġif Ġ( full Screen ) Ġloaded Insets . get Insets ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Insets Compat . Type . system Bars () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). bottom Ġelse Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Window Insets ?. invoke ( loaded Insets ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . request Apply Insets () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloading Index Ġ= Ġloading Insets Counter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Compat . setOn Apply Window Insets Listener ( it ) Ġ{ Ġview , Ġwindow Insets Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( loading Insets Counter Ġ== Ġloading Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Compat . setOn Apply Window Insets Listener ( it , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . update Padding ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Ġ= Ġif Ġ( full Screen ) Ġwindow Insets . get Insets ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Insets Compat . Type . system Bars () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). bottom Ġelse Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Window Insets ?. invoke ( window Insets ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . request Apply Insets () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow Insets ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun ĠgetKey For This Activity ( savedInstanceState : ĠBundle ?) Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . has Extra ( Scre ens Manager . SK _ EXTRA _ VIEW _ KEY ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . getLong Extra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS cre ens Manager . SK _ EXTRA _ VIEW _ KEY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState ?. containsKey ( Scre ens Manager . SK _ EXTRA _ VIEW _ KEY ) Ġ== Ġtrue Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState . getLong ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS cre ens Manager . SK _ EXTRA _ VIEW _ KEY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ- 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġvar Ġres umed Without Screen Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġscreen . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres umed Without Screen Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . on Resume () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġscreen ?. on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġscreen Key ?. let Ġ{ ĠS cre ens Manager . getInstance ( it ) Ġ} ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave State () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle , Ġout Persistent State : ĠPers ist able Bundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State , Ġout Persistent State ) ĊĠĠĠĠĠĠĠ Ġscreen Key ?. let Ġ{ Ġout State . put Long ( Scre ens Manager . SK _ EXTRA _ VIEW _ KEY , Ġit ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġfinished Ask ed Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġfun Ġlink To Root Stack () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠSK Root Stack View Proxy . state LD . observe ( this ) Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! finished Ask ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthis Screen Position Ġ= Ġstate . screens . indexOf First Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . key Ġ== Ġscreen Key ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Task Root Before Finish Ġ= Ġis Task Root ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this Screen Position Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinished Ask ed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . transition ?. let Ġ{ Ġoverride Pending Transition ( it . enter Anim , Ġit . exit Anim ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( state . screens . size Ġ> Ġthis Screen Position Ġ+ Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Proxy ( state . screens . get ( this Screen Position Ġ+ Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . transition ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Pending Transition ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . enter Anim , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . exit Anim ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( finished Ask ed Ġ&& Ġis Task Root Before Finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . screens . first OrNull ()?. let Ġ{ Ġnew Screen Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlaunch Class Ġ= Ġlaunch Activity Class ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException (" You Ġhave Ġto Ġset ĠSK Activity . launch Activity Class Ġto Ġbe Ġallowed Ġto Ġchange Ġroot ĠScreen . ĠNew Ġroot Ġscreen Ġwill Ġbe Ġloaded Ġin Ġthis Ġactivity Ġeven Ġif Ġyou Ġhave Ġre defined ĠgetActivity Cl as Ġmethod ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ SK Activity , Ġlaunch Class ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġflags . or ( Intent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Scre ens Manager . SK _ EXTRA _ VIEW _ KEY , Ġnew Screen . key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġoverride Ġthis Ġmethod Ġto Ġregister Ġto Ġmessages Ġor ĠLive Data ĊĠĠĠĠ Ġ* Ġmain Ġuse Ġis Ġglobally , Ġfor Ġall Ġactivities , Ġfor Ġplatform Ġspecific Ġwork Ġ( sdk ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġlink To Custom s () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠstartActivity For Proxy ( proxy : ĠSK Screen View Proxy <* >) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , Ġproxy . getActivity Class ()). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Scre ens Manager . SK _ EXTRA _ VIEW _ KEY , Ġproxy . key ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// Pas Ġde Ġback Ġpar ĠdÃ© faut , Ġil Ġfa ut Ġfa ire Ġattention Ġavec ĠÃ§ a ĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ ĠS cre ens Manager . back Pressed . post ( Unit ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( ĊĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠ Ġpermissions : ĠArray < out ĠString >, ĊĠĠĠĠĠĠĠ Ġgrant Results : ĠInt Array ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠS cre ens Manager . permissions Results . post ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSK Permissions Request Result Android ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code Ġ= Ġrequest Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgranted Permissions Ġ= Ġpermissions . filter Indexed Ġ{ Ġindex , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrant Results [ index ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. map Ġ{ ĠSK Permission Android ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġsuper . on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) ĊĠĠĠ Ġ} Ċ Ċ }