diff --git a/app-glasses/src/main/AndroidManifest.xml b/app-glasses/src/main/AndroidManifest.xml index f14276a..733063b 100644 --- a/app-glasses/src/main/AndroidManifest.xml +++ b/app-glasses/src/main/AndroidManifest.xml @@ -12,13 +12,20 @@ + + + + android:exported="true" + android:screenOrientation="landscape"> diff --git a/app-glasses/src/main/kotlin/pw/binom/viewmate/glasses/GlassesApp.kt b/app-glasses/src/main/kotlin/pw/binom/viewmate/glasses/GlassesApp.kt index 04821f5..bbc618e 100644 --- a/app-glasses/src/main/kotlin/pw/binom/viewmate/glasses/GlassesApp.kt +++ b/app-glasses/src/main/kotlin/pw/binom/viewmate/glasses/GlassesApp.kt @@ -1,6 +1,7 @@ package pw.binom.viewmate.glasses import android.app.Application +import android.content.Context import com.rayneo.arsdk.android.MercurySDK import java.io.File import kotlinx.coroutines.flow.MutableStateFlow @@ -28,12 +29,24 @@ class GlassesApp : Application() { lateinit var downloadManager: GlassesDownloadManager private set - /** Масштаб экрана очков (0.5..1.0); задаётся пультом телефона. */ + private val prefs by lazy { + getSharedPreferences("viewmate_prefs", Context.MODE_PRIVATE) + } + + /** Масштаб экрана очков (0.5..1.0). Загружается в onCreate (prefs — после привязки контекста). */ val scale = MutableStateFlow(1f) + /** Применить и сохранить масштаб. */ + fun applyScale(value: Float) { + val v = value.coerceIn(0.5f, 1f) + scale.value = v + prefs.edit().putFloat("scale", v).apply() + } + override fun onCreate() { super.onCreate() instance = this + scale.value = prefs.getFloat("scale", 1f).coerceIn(0.5f, 1f) MercurySDK.init(this) movieController = MovieController(applicationContext) movieController.eventLogger = { msg -> logToFile("mc: $msg") } diff --git a/app-glasses/src/main/kotlin/pw/binom/viewmate/glasses/HostConnection.kt b/app-glasses/src/main/kotlin/pw/binom/viewmate/glasses/HostConnection.kt index 947f5f6..9d798ac 100644 --- a/app-glasses/src/main/kotlin/pw/binom/viewmate/glasses/HostConnection.kt +++ b/app-glasses/src/main/kotlin/pw/binom/viewmate/glasses/HostConnection.kt @@ -223,7 +223,7 @@ class HostConnection( is SetMode -> addMessage("SetMode: ${msg.mode}") is SetScale -> { - GlassesApp.instance.scale.value = msg.scale.coerceIn(0.5f, 1f) + GlassesApp.instance.applyScale(msg.scale) log("app", "scale → ${msg.scale}") } diff --git a/app-glasses/src/main/res/values/themes.xml b/app-glasses/src/main/res/values/themes.xml new file mode 100644 index 0000000..95b9796 --- /dev/null +++ b/app-glasses/src/main/res/values/themes.xml @@ -0,0 +1,9 @@ + + + + +