diff --git a/src/main/java/com/b44t/messenger/DcContext.java b/src/main/java/com/b44t/messenger/DcContext.java
index ffc30e9b5..90d3b7683 100644
--- a/src/main/java/com/b44t/messenger/DcContext.java
+++ b/src/main/java/com/b44t/messenger/DcContext.java
@@ -68,8 +68,10 @@ public class DcContext {
public final static int DC_QR_ERROR = 400;
public final static int DC_QR_WITHDRAW_VERIFYCONTACT = 500;
public final static int DC_QR_WITHDRAW_VERIFYGROUP = 502;
+ public final static int DC_QR_WITHDRAW_JOINBROADCAST = 504;
public final static int DC_QR_REVIVE_VERIFYCONTACT = 510;
public final static int DC_QR_REVIVE_VERIFYGROUP = 512;
+ public final static int DC_QR_REVIVE_JOINBROADCAST = 514;
public final static int DC_QR_LOGIN = 520;
public final static int DC_SOCKET_AUTO = 0;
diff --git a/src/main/java/org/thoughtcrime/securesms/qr/QrCodeHandler.java b/src/main/java/org/thoughtcrime/securesms/qr/QrCodeHandler.java
index cc5424cf5..e2cf69561 100644
--- a/src/main/java/org/thoughtcrime/securesms/qr/QrCodeHandler.java
+++ b/src/main/java/org/thoughtcrime/securesms/qr/QrCodeHandler.java
@@ -112,8 +112,10 @@ public class QrCodeHandler {
case DcContext.DC_QR_WITHDRAW_VERIFYCONTACT:
case DcContext.DC_QR_WITHDRAW_VERIFYGROUP:
+ case DcContext.DC_QR_WITHDRAW_JOINBROADCAST:
String message = qrParsed.getState() == DcContext.DC_QR_WITHDRAW_VERIFYCONTACT ? activity.getString(R.string.withdraw_verifycontact_explain)
- : activity.getString(R.string.withdraw_verifygroup_explain, qrParsed.getText1());
+ : qrParsed.getState() == DcContext.DC_QR_WITHDRAW_VERIFYCONTACT ? activity.getString(R.string.withdraw_verifygroup_explain, qrParsed.getText1())
+ : activity.getString(R.string.withdraw_joinbroadcast_explain, qrParsed.getText1());
builder.setTitle(R.string.qrshow_title);
builder.setMessage(message);
builder.setNeutralButton(R.string.reset, (dialog, which) -> {
@@ -126,6 +128,7 @@ public class QrCodeHandler {
case DcContext.DC_QR_REVIVE_VERIFYCONTACT:
case DcContext.DC_QR_REVIVE_VERIFYGROUP:
+ case DcContext.DC_QR_REVIVE_JOINBROADCAST:
builder.setTitle(R.string.qrshow_title);
builder.setMessage(activity.getString(R.string.revive_verifycontact_explain));
builder.setNeutralButton(R.string.revive_qr_code, (dialog, which) -> {
diff --git a/src/main/java/org/thoughtcrime/securesms/qr/QrShowFragment.java b/src/main/java/org/thoughtcrime/securesms/qr/QrShowFragment.java
index 398277049..d888bb029 100644
--- a/src/main/java/org/thoughtcrime/securesms/qr/QrShowFragment.java
+++ b/src/main/java/org/thoughtcrime/securesms/qr/QrShowFragment.java
@@ -17,6 +17,7 @@ import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
+import com.b44t.messenger.DcChat;
import com.b44t.messenger.DcContext;
import com.b44t.messenger.DcEvent;
import com.caverock.androidsvg.SVG;
@@ -143,8 +144,17 @@ public class QrShowFragment extends Fragment implements DcEventCenter.DcEventDel
public void withdrawQr() {
Activity activity = getActivity();
- String message = chatId == 0 ? activity.getString(R.string.withdraw_verifycontact_explain)
- : activity.getString(R.string.withdraw_verifygroup_explain, dcContext.getChat(chatId).getName());
+ String message;
+ if (chatId == 0) {
+ message = activity.getString(R.string.withdraw_verifycontact_explain);
+ } else {
+ DcChat chat = dcContext.getChat(chatId);
+ if (chat.getType() == DcChat.DC_CHAT_TYPE_GROUP) {
+ message = activity.getString(R.string.withdraw_verifygroup_explain, chat.getName());
+ } else {
+ message = activity.getString(R.string.withdraw_joinbroadcast_explain, chat.getName());
+ }
+ }
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle(R.string.withdraw_qr_code);
builder.setMessage(message);
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 5297e99bd..295b71c43 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -1011,9 +1011,11 @@
Fingerprint
This QR code can be scanned by others to contact you.\n\nYou can reset it, so that the existing QR code or invite link will no longer work.
This QR code can be scanned by others to join the group \"%1$s\".\n\nYou can reset it, so that the existing QR code or invite link will no longer work.
+ This QR code can be scanned by others to join the channel \"%1$s\".\n\nYou can reset it, so that the existing QR code or invite link will no longer work.
Reset QR Code
This QR code has been reset and is no longer active.
This QR code to join group \"%1$s\" has been reset and is no longer active.
+ This QR code to join channel \"%1$s\" has been reset and is no longer active.
Activate QR Code
QR Invite Code
%1$s joins.