This commit is contained in:
2026-09-25 13:24:56 +03:00
parent 45066a65a1
commit 987f9e5547
47 changed files with 4998 additions and 1 deletions
@@ -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"
}
}