allow to paste from clipboard in RegistrationQrActivity

This commit is contained in:
adbenitez
2024-10-21 21:31:06 +02:00
parent a7647e18e2
commit 5954b13440
4 changed files with 36 additions and 9 deletions
@@ -194,9 +194,15 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements
break;
case IntentIntegrator.REQUEST_CODE:
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (scanResult != null && scanResult.getFormatName() != null) {
setProviderFromQr(scanResult.getContents());
String qrRaw = data.getStringExtra(RegistrationQrActivity.QRDATA_EXTRA);
if (qrRaw == null) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (scanResult != null && scanResult.getFormatName() != null) {
qrRaw = scanResult.getContents();
}
}
if (qrRaw != null) {
setProviderFromQr(qrRaw);
}
break;
}
@@ -336,20 +336,29 @@ public class WelcomeActivity extends BaseActionBarActivity implements DcEventCen
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != RESULT_OK) {
return;
}
if (requestCode==IntentIntegrator.REQUEST_CODE) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (scanResult == null || scanResult.getFormatName() == null) {
return; // aborted
String qrRaw = data.getStringExtra(RegistrationQrActivity.QRDATA_EXTRA);
if (qrRaw == null) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (scanResult == null || scanResult.getFormatName() == null) {
return; // aborted
}
qrRaw = scanResult.getContents();
}
String qrRaw = scanResult.getContents();
DcLot qrParsed = dcContext.checkQr(qrRaw);
switch (qrParsed.getState()) {
case DcContext.DC_QR_BACKUP:
case DcContext.DC_QR_BACKUP2:
new AlertDialog.Builder(this)
final String finalQrRaw = qrRaw;
new AlertDialog.Builder(this)
.setTitle(R.string.multidevice_receiver_title)
.setMessage(R.string.multidevice_receiver_scanning_ask)
.setPositiveButton(R.string.perm_continue, (dialog, which) -> startBackupTransfer(qrRaw))
.setPositiveButton(R.string.perm_continue, (dialog, which) -> startBackupTransfer(finalQrRaw))
.setNegativeButton(R.string.cancel, null)
.setCancelable(false)
.show();
@@ -18,10 +18,12 @@ import org.thoughtcrime.securesms.BaseActionBarActivity;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.connect.DcHelper;
import org.thoughtcrime.securesms.permissions.Permissions;
import org.thoughtcrime.securesms.util.Util;
public class RegistrationQrActivity extends BaseActionBarActivity {
public static final String ADD_AS_SECOND_DEVICE_EXTRA = "add_as_second_device";
public static final String QRDATA_EXTRA = "qrdata";
private CaptureManager capture;
@@ -82,6 +84,12 @@ public class RegistrationQrActivity extends BaseActionBarActivity {
case R.id.troubleshooting:
DcHelper.openHelp(this, "#multiclient");
return true;
case R.id.menu_paste:
Intent intent = new Intent();
intent.putExtra(QRDATA_EXTRA, Util.getTextFromClipboard(this));
setResult(Activity.RESULT_OK, intent);
finish();
return true;
}
return false;