feat(app-glasses): жесты RayNeo SDK (TempleAction) + отключение звуков трекпада

Перенос из pair-view (проверено на железе): RayNeoARSDK V0.1.3 (aar в
libs/, MercurySDK.init в GlassesApp), MainActivity → BaseEventActivity,
templeActionViewModel.state → команды (Click=пауза/плей, SlideForward/
Backward=±30с), dispatchTouchEvent→onTouchEvent + toggleSoundEffect(0..3,
false) — системные щелчки трекпада отключены.

Фиксы по ходу (железо):
- applyMediaCommand(msg, onDone) — sendPlaybackPositionNow после seekTo
  (иначе телефон получал позицию ДО seek)
- догонка seekTo через 1с на телефоне (первый seekTo в ogg неточен)
- playbackPosition: isPlaying → playWhenReady — ложное playing=false при
  буферизации после seekTo паузило звук на телефоне (~5с «пропажи»);
  pauseIfPlaying тоже по playWhenReady

Тесты: glasses 59+5, phone 71. Железо: клик пауза/плей ✓, свайпы ±30с ✓,
звук при seek не пропадает ✓ (подтверждено пользователем)
This commit is contained in:
Hermes Agent
2026-08-19 23:38:45 +03:00
parent 654a5f9e26
commit 345e7b74fa
7 changed files with 196 additions and 9 deletions
@@ -1,6 +1,7 @@
package pw.binom.viewmate.glasses
import android.app.Application
import com.rayneo.arsdk.android.MercurySDK
import java.io.File
/** Конфигурация очков: адрес WS-сервера телефона. Креды не нужны — очки просто экран. */
@@ -29,6 +30,7 @@ class GlassesApp : Application() {
override fun onCreate() {
super.onCreate()
instance = this
MercurySDK.init(this)
movieController = MovieController(applicationContext)
movieController.eventLogger = { msg -> logToFile("mc: $msg") }
downloadManager = GlassesDownloadManager(applicationContext) { msg -> hostConnection.sendToHost(msg) }