diff --git a/res/menu/qr_show.xml b/res/menu/qr_show.xml index 65ba8336f..3bbd0773f 100644 --- a/res/menu/qr_show.xml +++ b/res/menu/qr_show.xml @@ -11,4 +11,8 @@ android:id="@+id/copy" app:showAsAction="never"/> + + diff --git a/src/org/thoughtcrime/securesms/qr/QrActivity.java b/src/org/thoughtcrime/securesms/qr/QrActivity.java index 2ddb5181e..fe2f4cf68 100644 --- a/src/org/thoughtcrime/securesms/qr/QrActivity.java +++ b/src/org/thoughtcrime/securesms/qr/QrActivity.java @@ -139,6 +139,9 @@ public class QrActivity extends BaseActionBarActivity { case R.id.copy: qrShowFragment.copyQrData(); break; + case R.id.withdraw: + qrShowFragment.withdrawQr(); + break; case R.id.load_from_image: AttachmentManager.selectImage(this, REQUEST_CODE_IMAGE); break; diff --git a/src/org/thoughtcrime/securesms/qr/QrShowActivity.java b/src/org/thoughtcrime/securesms/qr/QrShowActivity.java index 30cae9e03..e86799069 100644 --- a/src/org/thoughtcrime/securesms/qr/QrShowActivity.java +++ b/src/org/thoughtcrime/securesms/qr/QrShowActivity.java @@ -92,6 +92,9 @@ public class QrShowActivity extends AppCompatActivity { case R.id.copy: fragment.copyQrData(); break; + case R.id.withdraw: + fragment.withdrawQr(); + break; } return false; diff --git a/src/org/thoughtcrime/securesms/qr/QrShowFragment.java b/src/org/thoughtcrime/securesms/qr/QrShowFragment.java index 068cbfa68..ccb1535de 100644 --- a/src/org/thoughtcrime/securesms/qr/QrShowFragment.java +++ b/src/org/thoughtcrime/securesms/qr/QrShowFragment.java @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.qr; +import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Canvas; @@ -14,6 +15,7 @@ import android.view.WindowManager; import android.widget.Toast; import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import com.b44t.messenger.DcContext; @@ -131,6 +133,19 @@ public class QrShowFragment extends Fragment implements DcEventCenter.DcEventDel Toast.makeText(getActivity(), getString(R.string.copied_to_clipboard), Toast.LENGTH_SHORT).show(); } + public void withdrawQr() { + Activity activity = getActivity(); + AlertDialog.Builder builder = new AlertDialog.Builder(activity); + builder.setMessage(activity.getString(R.string.withdraw_verifycontact_explain)); + builder.setPositiveButton(R.string.withdraw_qr_code, (dialog, which) -> { + DcContext dcContext = DcHelper.getContext(activity); + dcContext.setConfigFromQr(dcContext.getSecurejoinQr(chatId)); + activity.finish(); + }); + builder.setNegativeButton(R.string.cancel, null); + builder.create().show(); + } + @Override public void onResume() { super.onResume();