opt: account

This commit is contained in:
My-Responsitories
2025-09-23 02:26:14 +08:00
parent f48f90b253
commit 8d818f9bf8
4 changed files with 31 additions and 24 deletions

View File

@@ -690,7 +690,11 @@ class LoginPageController extends GetxController
tokenInfo['refresh_token'],
);
await Future.wait([account.onChange(), AnonymousAccount().delete()]);
Accounts.accountMode.updateAll((_, a) => a == account ? account : a);
for (int i = 0; i < AccountType.values.length; i++) {
if (Accounts.accountMode[i].mid == account.mid) {
Accounts.accountMode[i] = account;
}
}
if (Accounts.main.isLogin) {
SmartDialog.showToast('登录成功');
} else {
@@ -704,7 +708,7 @@ class LoginPageController extends GetxController
SmartDialog.showToast('请先登录');
return Get.toNamed('/loginPage');
}
final selectAccount = Map.of(Accounts.accountMode);
final selectAccount = List.of(Accounts.accountMode);
final options = {
AnonymousAccount(): '0',
...Accounts.account.toMap().map(
@@ -729,9 +733,9 @@ class LoginPageController extends GetxController
.map(
(e) => Builder(
builder: (context) => RadioGroup(
groupValue: selectAccount[e],
groupValue: selectAccount[e.index],
onChanged: (v) {
selectAccount[e] = v!;
selectAccount[e.index] = v!;
(context as Element).markNeedsBuild();
},
child: WrapRadioOptionsGroup<Account>(
@@ -756,9 +760,9 @@ class LoginPageController extends GetxController
),
TextButton(
onPressed: () {
for (var i in selectAccount.entries) {
if (i.value != Accounts.get(i.key)) {
Accounts.set(i.key, i.value);
for (var (i, v) in selectAccount.indexed) {
if (v != Accounts.accountMode[i]) {
Accounts.set(AccountType.values[i], v);
}
}
Get.back();

View File

@@ -229,7 +229,8 @@ class MineController
}
res == true
? Accounts.set(AccountType.heartbeat, AnonymousAccount())
: Accounts.accountMode[AccountType.heartbeat] = AnonymousAccount();
: Accounts.accountMode[AccountType.heartbeat.index] =
AnonymousAccount();
});
} else {
Accounts.set(AccountType.heartbeat, Accounts.main);