1 package host.exp.exponent.headless
2 
3 import android.os.Handler
4 import host.exp.exponent.taskManager.AppRecordInterface
5 import host.exp.exponent.RNObject
6 import android.os.Looper
7 
8 class HeadlessAppRecord : AppRecordInterface {
9   private var reactInstanceManager: RNObject? = null
10 
setReactInstanceManagernull11   fun setReactInstanceManager(reactInstanceManager: RNObject?) {
12     this.reactInstanceManager = reactInstanceManager
13   }
14 
invalidatenull15   override fun invalidate() {
16     val reactInstanceManagerTemp = reactInstanceManager
17     if (reactInstanceManagerTemp != null) {
18       this.reactInstanceManager = null
19 
20       // `destroy` must be called on UI thread.
21       Handler(Looper.getMainLooper()).post {
22         if (reactInstanceManagerTemp.isNotNull) {
23           reactInstanceManagerTemp.call("destroy")
24         }
25       }
26     }
27   }
28 }
29