From c12ed8060cd7af9d336d248fafc7a5b83979717f Mon Sep 17 00:00:00 2001 From: adbenitez Date: Thu, 17 Oct 2024 22:48:44 +0200 Subject: [PATCH] add "invite link dialog" --- .../securesms/qr/QrShowFragment.java | 16 ++++++- .../res/layout/dialog_share_invite_link.xml | 47 +++++++++++++++++++ src/main/res/values/strings.xml | 1 + 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 src/main/res/layout/dialog_share_invite_link.xml diff --git a/src/main/java/org/thoughtcrime/securesms/qr/QrShowFragment.java b/src/main/java/org/thoughtcrime/securesms/qr/QrShowFragment.java index 3f51729cf..4e6f3fa24 100644 --- a/src/main/java/org/thoughtcrime/securesms/qr/QrShowFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/qr/QrShowFragment.java @@ -10,6 +10,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.Button; +import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; @@ -98,7 +99,7 @@ public class QrShowFragment extends Fragment implements DcEventCenter.DcEventDel e.printStackTrace(); } - view.findViewById(R.id.share_link_button).setOnClickListener((v) -> shareInviteURL()); + view.findViewById(R.id.share_link_button).setOnClickListener((v) -> showInviteLinkDialog()); Button scanBtn = view.findViewById(R.id.scan_qr_button); if (scanClicklistener != null) { scanBtn.setVisibility(View.VISIBLE); @@ -148,6 +149,19 @@ public class QrShowFragment extends Fragment implements DcEventCenter.DcEventDel builder.create().show(); } + public void showInviteLinkDialog() { + View view = View.inflate(getActivity(), R.layout.dialog_share_invite_link, null); + String inviteURL = Util.QrDataToInviteURL(dcContext.getSecurejoinQr(chatId)); + ((TextView)view.findViewById(R.id.invite_link)).setText(inviteURL); + new AlertDialog.Builder(getActivity()) + .setView(view) + .setNegativeButton(R.string.cancel, null) + .setNeutralButton(R.string.menu_copy_to_clipboard, (d, b) -> copyQrData()) + .setPositiveButton(R.string.menu_share, (d, b) -> shareInviteURL()) + .create() + .show(); + } + @Override public void onResume() { super.onResume(); diff --git a/src/main/res/layout/dialog_share_invite_link.xml b/src/main/res/layout/dialog_share_invite_link.xml new file mode 100644 index 000000000..c2e3c99fa --- /dev/null +++ b/src/main/res/layout/dialog_share_invite_link.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 4edb91410..479a9198b 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -232,6 +232,7 @@ Message Info Copy to Clipboard Share Invite Link + Anyone with this link can view your username and start a chat with you. Only share it with people you trust. Invite Friends Contact me on Delta Chat:\n%1$s