fix: scan qr login

This commit is contained in:
xtaodada 2023-01-20 19:43:24 +08:00
parent 9be44a4118
commit 3cda7c27b5
Signed by: xtaodada
GPG Key ID: 4CBB3F4FA8C85659
2 changed files with 6 additions and 77 deletions

View File

@ -3463,47 +3463,11 @@ public class LaunchActivity extends BasePermissionsActivity implements INavigati
} }
return; return;
} else if (loginToken != null) { } else if (loginToken != null) {
BottomBuilder builder = new BottomBuilder(this); AlertDialog.Builder builder = new AlertDialog.Builder(LaunchActivity.this);
builder.addTitle(LocaleController.getString("AuthAnotherClientScan", R.string.AuthAnotherClientScan), LocaleController.getString("QRLoginNotice", R.string.QRLoginNotice)); builder.setTitle(LocaleController.getString("AuthAnotherClient", R.string.AuthAnotherClient));
builder.addItem(LocaleController.getString("QRLoginConfirm", R.string.QRLoginConfirm), R.drawable.baseline_security_24, true, (c) -> { builder.setMessage(LocaleController.getString("AuthAnotherClientUrl", R.string.AuthAnotherClientUrl));
AlertDialog progressDialog = new AlertDialog(this, 3); builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null);
progressDialog.setCanCancel(false); showAlertDialog(builder);
progressDialog.show();
byte[] token = Base64.decode(loginToken, Base64.URL_SAFE);
TLRPC.TL_auth_acceptLoginToken req = new TLRPC.TL_auth_acceptLoginToken();
req.token = token;
ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> {
try {
progressDialog.dismiss();
} catch (Exception ignore) {
}
if (response instanceof TLRPC.TL_authorization) {
SessionsActivity fragment = new SessionsActivity(0);
fragment.newAuthorizationToOpen = (TLRPC.TL_authorization) response;
presentFragment(fragment, false, false);
if (AndroidUtilities.isTablet()) {
actionBarLayout.showLastFragment();
rightActionBarLayout.showLastFragment();
drawerLayoutContainer.setAllowOpenDrawer(false, false);
} else {
drawerLayoutContainer.setAllowOpenDrawer(true, false);
}
} else {
AndroidUtilities.runOnUIThread(() -> {
final String text;
if (error.text.equals("AUTH_TOKEN_EXCEPTION")) {
text = LocaleController.getString("AccountAlreadyLoggedIn", R.string.AccountAlreadyLoggedIn);
} else {
text = LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + error.text;
}
AlertUtil.showSimpleAlert(this, LocaleController.getString("AuthAnotherClient", R.string.AuthAnotherClient), text);
});
}
}));
return Unit.INSTANCE;
});
builder.addCancelItem();
builder.show();
return; return;
} }
final AlertDialog progressDialog = new AlertDialog(this, AlertDialog.ALERT_TYPE_SPINNER); final AlertDialog progressDialog = new AlertDialog(this, AlertDialog.ALERT_TYPE_SPINNER);

View File

@ -33,8 +33,6 @@ import androidx.recyclerview.widget.RecyclerView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.AndroidUtilities;
import org.telegram.messenger.ApplicationLoader; import org.telegram.messenger.ApplicationLoader;
@ -54,8 +52,6 @@ import org.telegram.tgnet.ConnectionsManager;
import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLObject;
import org.telegram.tgnet.TLRPC; import org.telegram.tgnet.TLRPC;
import org.telegram.ui.ActionBar.ActionBar; import org.telegram.ui.ActionBar.ActionBar;
import org.telegram.ui.ActionBar.ActionBarMenu;
import org.telegram.ui.ActionBar.ActionBarMenuItem;
import org.telegram.ui.ActionBar.AlertDialog; import org.telegram.ui.ActionBar.AlertDialog;
import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.BaseFragment;
import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.ActionBar.Theme;
@ -84,8 +80,6 @@ import org.telegram.ui.Components.voip.CellFlickerDrawable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Objects; import java.util.Objects;
import tw.nekomimi.nekogram.utils.ProxyUtil;
public class SessionsActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate { public class SessionsActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate {
private ListAdapter listAdapter; private ListAdapter listAdapter;
@ -189,35 +183,6 @@ public class SessionsActivity extends BaseFragment implements NotificationCenter
} }
} }
}); });
ActionBarMenu menu = actionBar.createMenu();
ActionBarMenuItem item = menu.addItem(0, R.drawable.msg_qrcode);
actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() {
@Override
public void onItemClick(int id) {
if (id == -1) {
finishFragment();
} else if (id == 0) {
if (Build.VERSION.SDK_INT >= 23) {
if (getParentActivity().checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
getParentActivity().requestPermissions(new String[]{Manifest.permission.CAMERA}, 22);
return;
}
}
CameraScanActivity.showAsSheet(SessionsActivity.this, false, CameraScanActivity.TYPE_QR_LOGIN, new CameraScanActivity.CameraScanActivityDelegate() {
@Override
public void didFindQr(String text) {
ProxyUtil.showLinkAlert(getParentActivity(), text);
}
@Override
public boolean processQr(String text, Runnable onLoadEnd) {
onLoadEnd.run();
return false;
}
});
}
}
});
listAdapter = new ListAdapter(context); listAdapter = new ListAdapter(context);
fragmentView = new FrameLayout(context); fragmentView = new FrameLayout(context);
@ -744,7 +709,7 @@ public class SessionsActivity extends BaseFragment implements NotificationCenter
ttlRow = -1; ttlRow = -1;
ttlDivideRow = -1; ttlDivideRow = -1;
if (currentType == 0 && getMessagesController().qrLoginCamera) { if (currentType == 0) {
qrCodeRow = rowCount++; qrCodeRow = rowCount++;
qrCodeDividerRow = rowCount++; qrCodeDividerRow = rowCount++;
} }