diff --git a/CHANGELOG.md b/CHANGELOG.md index d44ead353..7e72924a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ * Truncate file names in the middle, not at the end; important information are more often at the end * Remove email address from user profile * Mark external links with " ↗" to make them clear +* Make QR code larger on "Add Second Device" screen * Fix: Show dialog if pasted QR codes are invalid * Update to core 2.36.0 diff --git a/jni/dc_wrapper.c b/jni/dc_wrapper.c index e83891946..b51257bdb 100644 --- a/jni/dc_wrapper.c +++ b/jni/dc_wrapper.c @@ -1927,7 +1927,7 @@ JNIEXPORT jstring Java_com_b44t_messenger_DcBackupProvider_getQr(JNIEnv *env, jo JNIEXPORT jstring Java_com_b44t_messenger_DcBackupProvider_getQrSvg(JNIEnv *env, jobject obj) { - char* temp = dc_backup_provider_get_qr_svg(get_dc_backup_provider(env, obj)); + char* temp = dc_create_qr_svg(dc_backup_provider_get_qr(get_dc_backup_provider(env, obj))); jstring ret = JSTRING_NEW(temp); dc_str_unref(temp); return ret; diff --git a/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java b/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java index 53e4a1961..c70ae2119 100644 --- a/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java @@ -35,6 +35,7 @@ import org.thoughtcrime.securesms.qr.QrCodeHandler; import org.thoughtcrime.securesms.qr.RegistrationQrActivity; import org.thoughtcrime.securesms.service.GenericForegroundService; import org.thoughtcrime.securesms.service.NotificationController; +import org.thoughtcrime.securesms.util.Prefs; import org.thoughtcrime.securesms.util.StorageUtil; import org.thoughtcrime.securesms.util.StreamUtil; import org.thoughtcrime.securesms.util.Util; @@ -76,8 +77,7 @@ public class WelcomeActivity extends BaseActionBarActivity implements DcEventCen .setNegativeButton(R.string.cancel, null) .create(); view.findViewById(R.id.add_as_second_device_button).setOnClickListener((v) -> { - startAddAsSecondDeviceActivity(); - signInDialog.dismiss(); + showSignInDialogWithPermission(signInDialog); }); view.findViewById(R.id.backup_button).setOnClickListener((v) -> { startImportBackup(); @@ -93,6 +93,28 @@ public class WelcomeActivity extends BaseActionBarActivity implements DcEventCen DcHelper.maybeShowMigrationError(this); } + private void showSignInDialogWithPermission(AlertDialog signInDialog) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU + && !Prefs.getBooleanPreference(this, Prefs.ASKED_FOR_NOTIFICATION_PERMISSION, false)) { + Prefs.setBooleanPreference(this, Prefs.ASKED_FOR_NOTIFICATION_PERMISSION, true); + Permissions.with(this) + .request(Manifest.permission.POST_NOTIFICATIONS) + .ifNecessary() + .onAllGranted(() -> { + startAddAsSecondDeviceActivity(); + signInDialog.dismiss(); + }) + .onAnyDenied(() -> { + startAddAsSecondDeviceActivity(); + signInDialog.dismiss(); + }) + .execute(); + } else { + startAddAsSecondDeviceActivity(); + signInDialog.dismiss(); + } + } + protected void initializeActionBar() { ActionBar supportActionBar = getSupportActionBar(); if (supportActionBar == null) throw new AssertionError();