package Ġcom . ee Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Application Ċ import Ġandroid . app . Application . Activity Lifecycle Callbacks Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . annotation . Any Thread Ċ import Ġcom . ee . internal . Message Bridge Ċ import Ġcom . ee . internal . Message Bridge Handler Ċ import Ġcom . ee . internal . Native Thread Ċ import Ġcom . ee . internal . Thread Impl Ċ import Ġjava . util . concurrent . Concurrent HashMap Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠZ inge Ġon Ġ 6 / 5 / 1 6 . Ċ Ġ*/ Ċ class ĠPlugin Manager Ġprivate Ġconstructor () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġk Tag Ġ= ĠPlugin Manager :: class . java . name ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġ_ shared Instance Ġ= ĠPlugin Manager () ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġval Ġinstance : ĠPlugin Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Any Thread Ġget () Ġ= Ġ_ shared Instance ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinterface ĠPlugin Executor Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġexecute ( plugin : ĠI Plugin ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġ_ logger Ġ= ĠLogger (" ee - x ") ĊĠĠĠ Ġprivate Ġval Ġ_ plugins : ĠMutable Map < String , ĠI Plugin > Ġ= ĠConcurrent HashMap () ĊĠĠĠ Ġprivate Ġval Ġ_ lifecycle Callbacks : ĠActivity Lifecycle Callbacks ĊĊĠĠĠ Ġprivate Ġvar Ġ_ bridge : ĠI Message Bridge ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ application : ĠApplication ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ activity : ĠActivity ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ activity Class : ĠClass < out ĠActivity >? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ lifecycle Callbacks Ġ= Ġobject Ġ: ĠActivity Lifecycle Callbacks Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Created ( activity : ĠActivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity :: class . java Ġ== Ġ_ activity Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ activity Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity . is Task Root ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ activity Ġ= Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Plugins Ġ{ Ġplugin Ġ-> Ġplugin . onCreate ( activity ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ logger . warn ("$ k Tag : Ġon Activity Created : Ġis Ġnot Ġroot Ġactivity ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ logger . warn ("$ k Tag : Ġon Activity Created : Ġinvalid Ġactivity ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Started ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity :: class . java Ġ== Ġ_ activity Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ activity Ġ=== Ġactivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Plugins ( I Plugin :: onStart ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ logger . warn ("$ k Tag : Ġon Activity Started : Ġinvalid Ġactivity ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Res umed ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity :: class . java Ġ== Ġ_ activity Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ activity Ġ=== Ġactivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Plugins ( I Plugin :: on Resume ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ logger . warn ("$ k Tag : Ġon Activity Res umed : Ġinvalid Ġactivity ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Paused ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity :: class . java Ġ== Ġ_ activity Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ activity Ġ=== Ġactivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Plugins ( I Plugin :: on Pause ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ logger . warn ("$ k Tag : Ġon Activity Paused : Ġinvalid Ġactivity ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Stopped ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity :: class . java Ġ== Ġ_ activity Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ activity Ġ=== Ġactivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Plugins ( I Plugin :: on Stop ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ logger . warn ("$ k Tag : Ġon Activity Stopped : Ġinvalid Ġactivity ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Save InstanceState ( activity : ĠActivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Destroyed ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity :: class . java Ġ== Ġ_ activity Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ activity Ġ=== Ġactivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ activity Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Plugins ( I Plugin :: on Destroy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ logger . warn ("$ k Tag : Ġon Activity Destroyed : Ġinvalid Ġactivity ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġapplication : ĠApplication ? ĊĠĠĠĠĠĠĠ Ġ@ Any Thread Ġget () Ġ= Ġ_ application ĊĊĠĠĠ Ġvar Ġactivity : ĠActivity ? ĊĠĠĠĠĠĠĠ Ġ@ Any Thread Ġget () Ġ= Ġ_ activity ĊĠĠĠĠĠĠĠ Ġ@ Any Thread Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġvalue Ġ?: Ġthrow ĠIllegalArgumentException (" Null Ġactivity ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapplication Ġ= Ġactivity . application ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ application Ġ= Ġapplication ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ activity Ġ= Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ activity Class Ġ= Ġactivity :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication . register Activity Lifecycle Callbacks (_ lifecycle Callbacks ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġbridge : ĠI Message Bridge ? ĊĠĠĠĠĠĠĠ Ġ@ Any Thread Ġget () Ġ= Ġ_ bridge ĊĊĠĠĠ Ġval Ġlogger : ĠILogger ĊĠĠĠĠĠĠĠ Ġ@ Any Thread Ġget () Ġ= Ġ_ logger ĊĊĠĠĠ Ġ@ Any Thread ĊĠĠĠ Ġfun Ġinitialize Plugins ( version : ĠString , Ġmessage Handler : ĠMessage Bridge Handler ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Version Ġ= Ġ" 2 . 1 0 . 3 " ĊĠĠĠĠĠĠĠ Ġif Ġ( version Ġ!= Ġexpected Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Version Ġmis matched : Ġfound Ġ$ version Ġexpected Ġ$ expected Version ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ_ logger . info (" Initialize Ġee - x Ġplugin Ġversion Ġ$ version ") ĊĠĠĠĠĠĠĠ Ġval Ġapplication Ġ= Ġ_ application ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ k Tag : ĠPlease Ġset Ġactivity Ġvia ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlugin Manager . getInstance (). set Activity () Ġ( kotlin ) Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġee :: PluginManager :: set Activity () Ġ( c ++) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠĠĠĠĠĠĠ Ġval Ġbridge Ġ= ĠMessage Bridge (_ logger , Ġmessage Handler ) ĊĠĠĠĠĠĠĠ Ġ_ bridge Ġ= Ġbridge ĊĠĠĠĠĠĠĠ ĠThread . register Impl ( Thread Impl (_ logger )) ĊĠĠĠĠĠĠĠ ĠPlatform . register Handlers ( bridge , Ġapplication ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Any Thread ĊĠĠĠ Ġfun Ġset LogLevel ( level : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ logger . logLevel Ġ= Ġlevel ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Any Thread ĊĠĠĠ Ġfun Ġadd Plugin ( name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ logger . info ("$ k Tag : Ġ${ this :: add Plugin . name }: Ġ$ name ") ĊĠĠĠĠĠĠĠ Ġif Ġ(_ plugins . containsKey ( name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException ("$ k Tag : Ġ${ this :: add Plugin . name }: Ġ$ name Ġalready Ġexists !") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠclassName Ġ= Ġ" com . ee .${ name } Bridge " ĊĠĠĠĠĠĠĠ Ġval Ġclazz Ġ= ĠClass . forName ( className ) ĊĠĠĠĠĠĠĠ Ġval Ġconstructor Ġ= Ġclazz . get Constructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠI Message Bridge :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠILogger :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApplication :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġplugin Ġ= Ġconstructor . newInstance (_ bridge , Ġ_ logger , Ġ_ application , Ġ_ activity ) ĊĠĠĠĠĠĠĠ Ġ_ plugins [ name ] Ġ= Ġplugin Ġas ĠI Plugin ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Any Thread ĊĠĠĠ Ġfun Ġremove Plugin ( name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ logger . info ("$ k Tag : Ġ${ this :: remove Plugin . name }: Ġ$ name ") ĊĠĠĠĠĠĠĠ Ġval Ġplugin Ġ= Ġ_ plugins [ name ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException ("$ k Tag : Ġ${ this :: remove Plugin . name }: Ġ$ name Ġdoesn 't Ġexist !") ĊĠĠĠĠĠĠĠ Ġplugin . destroy () ĊĠĠĠĠĠĠĠ Ġ_ plugins . remove ( name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Any Thread ĊĠĠĠ Ġinternal Ġfun Ġget Plugin ( name : ĠString ): ĠI Plugin ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ_ plugins [ name ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Any Thread ĊĠĠĠ Ġprivate Ġfun Ġdestroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbridge Ġ= Ġ_ bridge ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalArgumentException ("${ this :: destroy . name }: Ġbridge Ġis Ġnull ") ĊĠĠĠĠĠĠĠ ĠPlatform . dere gister Handlers ( bridge ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( entry Ġin Ġ_ plugins ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentry . value . destroy () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ_ application Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexecute Plugins ( executor : ĠPlugin Executor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( entry Ġin Ġ_ plugins ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecutor . execute ( entry . value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexecute Plugins ( executor : Ġ( plugin : ĠI Plugin ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute Plugins ( object Ġ: ĠPlugin Executor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute ( plugin : ĠI Plugin ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecutor ( plugin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Suppress (" FunctionName ") Ċ private Ġexternal Ġfun Ġee _ call Cpp Internal ( tag : ĠString , Ġmessage : ĠString ) Ċ Ċ @ Native Thread Ċ @ Suppress (" FunctionName ", Ġ" unused ") Ċ private Ġfun Ġee _ static Initialize Plugins ( version : ĠString ) Ġ{ ĊĠĠĠ ĠPlugin Manager . instance . initialize Plugins ( version ) Ġ{ Ġtag , Ġmessage Ġ-> ĊĠĠĠĠĠĠĠ Ġee _ call Cpp Internal ( tag , Ġmessage ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Native Thread Ċ @ Suppress (" FunctionName ", Ġ" unused ") Ċ private Ġfun Ġee _ static Set LogLevel ( level : ĠInt ) Ġ{ ĊĠĠĠ ĠPlugin Manager . instance . set LogLevel ( level ) Ċ } Ċ Ċ @ Native Thread Ċ @ Suppress (" FunctionName ", Ġ" unused ") Ċ private Ġfun Ġee _ static Add Plugin ( name : ĠString ) Ġ{ ĊĠĠĠ ĠPlugin Manager . instance . add Plugin ( name ) Ċ } Ċ Ċ @ Native Thread Ċ @ Suppress (" FunctionName ", Ġ" unused ") Ċ private Ġfun Ġee _ static Remove Plugin ( name : ĠString ) Ġ{ ĊĠĠĠ ĠPlugin Manager . instance . remove Plugin ( name ) Ċ } Ċ Ċ @ Native Thread Ċ @ Suppress (" FunctionName ", Ġ" unused ") Ċ private Ġfun Ġee _ static Get Activity (): ĠAny ? Ġ{ ĊĠĠĠ Ġreturn ĠPlugin Manager . instance . activity Ċ } Ċ Ċ @ Native Thread Ċ @ Suppress (" FunctionName ", Ġ" unused ") Ċ private Ġfun Ġee _ static Set Activity ( activity : ĠAny ) Ġ{ ĊĠĠĠ Ġval Ġitem Ġ= Ġactivity Ġas ? ĠActivity Ġ?: Ġthrow ĠIllegalArgumentException (" Invalid Ġactivity ") ĊĠĠĠ ĠPlugin Manager . instance . activity Ġ= Ġitem Ċ } Ċ Ċ /// ĠLegacy Ġmethod Ġused Ġby ĠSo om la . Ċ @ Suppress (" FunctionName ") Ċ fun Ġee _ get Store Plugin (): ĠI Plugin ? Ġ{ ĊĠĠĠ Ġreturn ĠPlugin Manager . instance . get Plugin (" Store ") Ċ }