Browse Source

Declare stream camera permissions and cancel capture at core restart

master
evgeny 1 week ago
parent
commit
f2a5dde761
  1. 3
      tools/chatgui-android/app/src/main/AndroidManifest.xml
  2. 8
      tools/chatgui-android/app/src/main/java/com/utun/chat/data/NativeLib.kt

3
tools/chatgui-android/app/src/main/AndroidManifest.xml

@ -12,6 +12,7 @@
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_PHONE_CALL" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
@ -83,6 +84,8 @@
android:exported="false"
android:foregroundServiceType="phoneCall|microphone" />
<service android:name=".data.StreamService" android:exported="false" android:foregroundServiceType="camera|microphone" />
<service
android:name=".data.UtunConnectionService"
android:exported="true"

8
tools/chatgui-android/app/src/main/java/com/utun/chat/data/NativeLib.kt

@ -43,7 +43,7 @@ object NativeLib {
fun stop() {
runBlocking(Dispatchers.Main.immediate) {
CallController.reset(); ChatApplication.instance.avatars.stop(); ChatApplication.instance.memberFiles.cancel()
StreamController.reset(); CallController.reset(); ChatApplication.instance.avatars.stop(); ChatApplication.instance.memberFiles.cancel()
}
if (!isReady()) return
nativeStop()
@ -58,7 +58,7 @@ object NativeLib {
fun destroy() {
runBlocking(Dispatchers.Main.immediate) {
CallController.reset(); ChatApplication.instance.avatars.stop(); ChatApplication.instance.memberFiles.cancel()
StreamController.reset(); CallController.reset(); ChatApplication.instance.avatars.stop(); ChatApplication.instance.memberFiles.cancel()
}
nativeDestroy()
runBlocking(Dispatchers.Main.immediate) { ChatApplication.instance.memberFiles.coreStopped() }
@ -66,7 +66,7 @@ object NativeLib {
fun restart(dbPath: String, controlPort: Int, configText: String): Boolean {
runBlocking(Dispatchers.Main.immediate) {
CallController.reset(); ChatApplication.instance.avatars.stop(); ChatApplication.instance.memberFiles.cancel()
StreamController.reset(); CallController.reset(); ChatApplication.instance.avatars.stop(); ChatApplication.instance.memberFiles.cancel()
}
return nativeRestart(configText)
}
@ -172,7 +172,7 @@ object NativeLib {
/* ── Voice recording ── */
fun voiceStart(channelId: String, replyTo: String = "", requestId: Long = 0): Boolean =
nativeVoiceStart(channelId, messageIdBytes(replyTo), requestId)
!StreamController.blocksCapture() && nativeVoiceStart(channelId, messageIdBytes(replyTo), requestId)
fun voiceFeed(samples: ShortArray): Boolean = nativeVoiceFeed(samples)
fun voiceStop(): Int = nativeVoiceStop()
fun voiceCancel() { nativeVoiceCancel() }

Loading…
Cancel
Save