init
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package pw.binom.rayneovm.glasses
|
||||
|
||||
import android.app.Application
|
||||
import android.util.Log
|
||||
import pw.binom.rayneovm.glasses.protocol.ControllerProvider
|
||||
import pw.binom.rayneovm.glasses.protocol.VmGlassesController
|
||||
|
||||
/**
|
||||
* Application-класс GlassesApp.
|
||||
*
|
||||
* Запускает [VmService] при создании (foreground-сервис держит WebSocket сервер + mDNS,
|
||||
* и продолжает работать после сворачивания Activity).
|
||||
*/
|
||||
class GlassesVmApp : Application(), ControllerProvider {
|
||||
|
||||
private val controller: VmGlassesController by lazy { VmGlassesController() }
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
Log.i(TAG, "GlassesVmApp onCreate, uid=${android.os.Process.myUid()}")
|
||||
// Инициализация RayNeo Mercury SDK.
|
||||
com.ffalcon.mercury.android.sdk.MercurySDK.init(this)
|
||||
Log.i(TAG, "MercurySDK initialized")
|
||||
controller.setAppContext(this)
|
||||
// Регистрируем debug-receiver для тестирования через adb.
|
||||
val filter = android.content.IntentFilter(pw.binom.rayneovm.glasses.protocol.DebugTestReceiver.ACTION)
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) {
|
||||
registerReceiver(pw.binom.rayneovm.glasses.protocol.DebugTestReceiver(), filter, android.content.Context.RECEIVER_EXPORTED)
|
||||
} else {
|
||||
@Suppress("UnspecifiedRegisterReceiverFlag")
|
||||
registerReceiver(pw.binom.rayneovm.glasses.protocol.DebugTestReceiver(), filter)
|
||||
}
|
||||
VmService.start(this)
|
||||
}
|
||||
|
||||
override fun onTerminate() {
|
||||
super.onTerminate()
|
||||
VmService.stop(this)
|
||||
}
|
||||
|
||||
override fun provideController(): VmGlassesController = controller
|
||||
|
||||
companion object {
|
||||
private const val TAG = "GlassesVmApp"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user