mirror of
https://github.com/ArcaneChat/android.git
synced 2026-07-03 14:05:24 +02:00
fix bug: open WelcomeActivity when scanning backup from chatlist
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user