1 package expo.modules.test.core
2 
3 import expo.modules.kotlin.ModuleHolder
4 import expo.modules.kotlin.events.EventName
5 
6 interface ModuleController {
onCreatenull7   fun onCreate()
8   fun onDestroy()
9   fun onActivityEntersForeground()
10   fun onActivityEntersBackground()
11   fun onActivityDestroys()
12 }
13 
14 class ModuleControllerImpl(private val holder: ModuleHolder) : ModuleController {
15   override fun onCreate() {
16     holder.post(EventName.MODULE_CREATE)
17   }
18 
19   override fun onDestroy() {
20     holder.post(EventName.MODULE_DESTROY)
21   }
22 
23   override fun onActivityEntersForeground() {
24     holder.post(EventName.ACTIVITY_ENTERS_FOREGROUND)
25   }
26 
27   override fun onActivityEntersBackground() {
28     holder.post(EventName.ACTIVITY_ENTERS_BACKGROUND)
29   }
30 
31   override fun onActivityDestroys() {
32     holder.post(EventName.ACTIVITY_DESTROYS)
33   }
34 }
35