fix bug: open WelcomeActivity when scanning backup from chatlist

This commit is contained in:
adbenitez
2024-05-06 17:44:06 +02:00
parent dda5754e38
commit cd9203bda5
3 changed files with 24 additions and 1 deletions
@@ -50,6 +50,7 @@ import java.io.InputStream;
import java.io.OutputStream;
public class WelcomeActivity extends BaseActionBarActivity implements DcEventCenter.DcEventDelegate {
public static final String BACKUP_QR_EXTRA = "backup_qr_extra";
public static final int PICK_BACKUP = 20574;
private final static String TAG = WelcomeActivity.class.getSimpleName();
public static final String TMP_BACKUP_FILE = "tmp-backup-file";
@@ -138,6 +139,16 @@ public class WelcomeActivity extends BaseActionBarActivity implements DcEventCen
setIntent(intent);
}
@Override
public void onStart() {
super.onStart();
String backupQr = getIntent().getStringExtra(BACKUP_QR_EXTRA);
if (backupQr != null) {
getIntent().removeExtra(BACKUP_QR_EXTRA);
startQrAccountCreation(backupQr);
}
}
@Override
public void onDestroy() {
super.onDestroy();
@@ -8,6 +8,7 @@ import android.content.Intent;
import android.preference.PreferenceManager;
import android.util.Log;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
import com.b44t.messenger.DcAccounts;
@@ -116,6 +117,10 @@ public class AccountManager {
}
public void switchAccountAndStartActivity(Activity activity, int destAccountId) {
switchAccountAndStartActivity(activity, destAccountId, null);
}
private void switchAccountAndStartActivity(Activity activity, int destAccountId, @Nullable String backupQr) {
if (destAccountId==0) {
beginAccountCreation(activity);
} else {
@@ -125,6 +130,9 @@ public class AccountManager {
activity.finishAffinity();
if (destAccountId==0) {
Intent intent = new Intent(activity, WelcomeActivity.class);
if (backupQr != null) {
intent.putExtra(WelcomeActivity.BACKUP_QR_EXTRA, backupQr);
}
activity.startActivity(intent);
} else {
activity.startActivity(new Intent(activity.getApplicationContext(), ConversationListActivity.class));
@@ -167,4 +175,8 @@ public class AccountManager {
intent.putExtra(InstantOnboardingActivity.QR_ACCOUNT_EXTRA, qr);
activity.startActivity(intent);
}
public void addAccountFromSecondDevice(Activity activity, String backupQr) {
switchAccountAndStartActivity(activity, 0, backupQr);
}
}
@@ -79,7 +79,7 @@ public class QrCodeHandler {
builder.setTitle(R.string.multidevice_receiver_title);
builder.setMessage(activity.getString(R.string.multidevice_receiver_scanning_ask) + "\n\n" + activity.getString(R.string.multidevice_same_network_hint));
builder.setPositiveButton(R.string.perm_continue, (dialog, which) -> {
AccountManager.getInstance().addAccountFromQr(activity, rawString);
AccountManager.getInstance().addAccountFromSecondDevice(activity, rawString);
});
builder.setNegativeButton(R.string.cancel, null);
builder.setCancelable(false);