From df7d80319ca1eee563bcf5e2ad57218889d09c71 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Wed, 4 Feb 2026 19:36:34 +0100 Subject: [PATCH] show menu to select audio/video call modes --- .../securesms/ConversationActivity.java | 7 +++++-- .../thoughtcrime/securesms/calls/CallUtil.java | 6 +++--- src/main/res/menu/conversation.xml | 17 ++++++++++++++--- src/main/res/values/strings.xml | 2 ++ 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java b/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java index b11340984..d481dd062 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java @@ -566,8 +566,11 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } else if (itemId == R.id.menu_show_map) { WebxdcActivity.openMaps(this, chatId); return true; - } else if (itemId == R.id.menu_start_call) { - CallUtil.startCall(this, chatId); + } else if (itemId == R.id.menu_start_audio_call) { + CallUtil.startCall(this, chatId, true); + return true; + } else if (itemId == R.id.menu_start_video_call) { + CallUtil.startCall(this, chatId, false); return true; } else if (itemId == R.id.menu_all_media) { handleAllMedia(); diff --git a/src/main/java/org/thoughtcrime/securesms/calls/CallUtil.java b/src/main/java/org/thoughtcrime/securesms/calls/CallUtil.java index f84e2385b..b1494f786 100644 --- a/src/main/java/org/thoughtcrime/securesms/calls/CallUtil.java +++ b/src/main/java/org/thoughtcrime/securesms/calls/CallUtil.java @@ -18,19 +18,19 @@ import java.nio.charset.StandardCharsets; public class CallUtil { private static final String TAG = CallUtil.class.getSimpleName(); - public static void startCall(Activity activity, int chatId) { + public static void startCall(Activity activity, int chatId, boolean audioOnly) { Permissions.with(activity) .request(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO) .ifNecessary() .withPermanentDenialDialog(activity.getString(R.string.perm_explain_access_to_camera_denied)) .onAllGranted(() -> { int accId = DcHelper.getContext(activity).getAccountId(); - startCall(activity, accId, chatId); + startCall(activity, accId, chatId, audioOnly); }) .execute(); } - public static void startCall(Context context, int accId, int chatId) { + public static void startCall(Context context, int accId, int chatId, boolean audioOnly) { Intent intent = new Intent(context, CallActivity.class); intent.setAction(Intent.ACTION_VIEW); intent.putExtra(CallActivity.EXTRA_ACCOUNT_ID, accId); diff --git a/src/main/res/menu/conversation.xml b/src/main/res/menu/conversation.xml index cbe09e6f7..678d48f3d 100644 --- a/src/main/res/menu/conversation.xml +++ b/src/main/res/menu/conversation.xml @@ -26,9 +26,20 @@ app:showAsAction="always"/> + android:title="@string/start_call" + app:showAsAction="always" + android:icon="@drawable/baseline_call_24"> + + + + + Call + Audio Call + Video Call Answer