From aca14bfb7051c5d14b3dade58eca1cdfe9a5b898 Mon Sep 17 00:00:00 2001 From: evgeny Date: Mon, 19 Oct 2026 14:25:27 +0200 Subject: [PATCH] Select the radio ringtone in both Android ringtone playback paths --- .../main/java/com/utun/chat/data/IncomingCallManager.kt | 4 ++-- .../src/main/java/com/utun/chat/data/RingtonePlayer.kt | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/IncomingCallManager.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/IncomingCallManager.kt index 24124566..8ad3dbc4 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/IncomingCallManager.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/IncomingCallManager.kt @@ -63,9 +63,9 @@ object IncomingCallManager { stopRinging() activeCallId = callId activeRadio = radio; activeChannel = channelId; activePeer = peerNodeId - LogManager.addLog("INFO", "InCall", "incoming call id=$callId peer=$peerNodeId ch=$channelId") + LogManager.addLog("INFO", "InCall", "incoming call id=$callId peer=$peerNodeId ch=$channelId radio=$radio") acquireWakeLock() - ringtone.play() + ringtone.play(if (radio) R.raw.radio_incoming else R.raw.ringtone) showNotification(callId, channelId, peerNodeId) } diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/RingtonePlayer.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/RingtonePlayer.kt index 6bdd2259..df0cfb36 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/RingtonePlayer.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/RingtonePlayer.kt @@ -13,6 +13,7 @@ import android.os.Handler import android.os.Looper import android.os.VibrationEffect import android.os.Vibrator +import androidx.annotation.RawRes import com.utun.chat.ChatApplication import com.utun.chat.R @@ -49,7 +50,7 @@ class RingtonePlayer { } } - fun play() { + fun play(@RawRes resourceId: Int = R.raw.ringtone) { stop() val ctx = ChatApplication.instance val am = try { @@ -64,11 +65,11 @@ class RingtonePlayer { val playVibrate = ringerMode != AudioManager.RINGER_MODE_SILENT LogManager.addLog("INFO", "Ringtone", - "ringerMode=%d sound=%b vibrate=%b".format(ringerMode, playSound, playVibrate)) + "ringerMode=%d sound=%b vibrate=%b resource=%d".format(ringerMode, playSound, playVibrate, resourceId)) if (playSound) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - val uri = Uri.parse("android.resource://${ctx.packageName}/${R.raw.ringtone}") + val uri = Uri.parse("android.resource://${ctx.packageName}/$resourceId") val r = try { RingtoneManager.getRingtone(ctx, uri) } catch (e: Exception) { @@ -86,7 +87,7 @@ class RingtonePlayer { LogManager.addLog("INFO", "Ringtone", "sound started (Ringtone, STREAM_RING)") } else { val mp = try { - MediaPlayer.create(ctx, R.raw.ringtone) + MediaPlayer.create(ctx, resourceId) } catch (e: Exception) { LogManager.addLog("ERROR", "Ringtone", "MediaPlayer.create failed: ${e.message}") null