From 9becdac3318c4a4c3d2744178042a391e9673e97 Mon Sep 17 00:00:00 2001 From: evgeny Date: Wed, 14 Oct 2026 22:46:10 +0200 Subject: [PATCH] Add explicit device instrumentation for call codec verification --- .../app/src/debug/AndroidManifest.xml | 4 ++++ .../java/com/utun/chat/data/CallVideoProbe.kt | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 tools/chatgui-android/app/src/debug/AndroidManifest.xml create mode 100644 tools/chatgui-android/app/src/debug/java/com/utun/chat/data/CallVideoProbe.kt diff --git a/tools/chatgui-android/app/src/debug/AndroidManifest.xml b/tools/chatgui-android/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..32a234df --- /dev/null +++ b/tools/chatgui-android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + diff --git a/tools/chatgui-android/app/src/debug/java/com/utun/chat/data/CallVideoProbe.kt b/tools/chatgui-android/app/src/debug/java/com/utun/chat/data/CallVideoProbe.kt new file mode 100644 index 00000000..8d4ea2b5 --- /dev/null +++ b/tools/chatgui-android/app/src/debug/java/com/utun/chat/data/CallVideoProbe.kt @@ -0,0 +1,19 @@ +package com.utun.chat.data + +import android.app.Instrumentation +import android.os.Bundle + +/** Запускается только явно через adb am instrument; камера и реальные звонки не затрагиваются. */ +class CallVideoProbe : Instrumentation() { + override fun onCreate(arguments: Bundle?) { super.onCreate(arguments); start() } + override fun onStart() { + try { + val codecs = CallVideoCodec.probe() + check(codecs.isNotEmpty()) { "No conforming encoder/decoder pair" } + finish(0, Bundle().apply { putString("codecs", codecs.toString()) }) + } catch (e: Exception) { + android.util.Log.e("CallVideoProbe", "probe failed", e) + finish(1, Bundle().apply { putString("error", e.toString()) }) + } + } +}