fix:1,优化绑定星图配置流程—修复重复绑定问题

2,登录后增加星图相关配置本地存储处理—以免重复注册节点问题
	3,退出登录销毁星图相关资源处理
This commit is contained in:
“DaisyWu” 2024-12-12 16:27:50 +08:00
parent f9bf6a15bb
commit 909b2a7d49
5 changed files with 37 additions and 15 deletions

View File

@ -1,3 +1,5 @@
import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart';
class LoginData { class LoginData {
LoginData( LoginData(
{this.accessToken, {this.accessToken,
@ -10,7 +12,8 @@ class LoginData {
this.nickname, this.nickname,
this.haveSafeAnswer, this.haveSafeAnswer,
this.uid, this.uid,
this.isVip}); this.isVip,
this.starchart});
LoginData.fromJson(dynamic json) { LoginData.fromJson(dynamic json) {
accessToken = json['accessToken']; accessToken = json['accessToken'];
@ -24,6 +27,9 @@ class LoginData {
haveSafeAnswer = json['haveSafeAnswer']; haveSafeAnswer = json['haveSafeAnswer'];
uid = json['uid']; uid = json['uid'];
isVip = json['isVip']; isVip = json['isVip'];
starchart = json['starchart'] != null
? Starchart.fromJson(json['starchart'])
: null;
} }
String? accessToken; String? accessToken;
int? userid; int? userid;
@ -36,6 +42,7 @@ class LoginData {
bool? haveSafeAnswer; bool? haveSafeAnswer;
int? uid; int? uid;
int? isVip; int? isVip;
Starchart? starchart;
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final map = <String, dynamic>{}; final map = <String, dynamic>{};
@ -50,6 +57,9 @@ class LoginData {
map['haveSafeAnswer'] = haveSafeAnswer; map['haveSafeAnswer'] = haveSafeAnswer;
map['uid'] = uid; map['uid'] = uid;
map['isVip'] = isVip; map['isVip'] = isVip;
if (starchart != null) {
map['starchart'] = starchart!.toJson();
}
return map; return map;
} }
} }

View File

@ -6,6 +6,8 @@ import 'package:star_lock/blue/blue_manage.dart';
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/login/login/entity/LoginEntity.dart';
import 'package:star_lock/mine/mine/starLockMine_state.dart'; import 'package:star_lock/mine/mine/starLockMine_state.dart';
import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart';
import 'package:star_lock/talk/startChart/entity/star_chart_register_node_entity.dart';
import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/baseGetXController.dart';
import 'package:umeng_common_sdk/umeng_common_sdk.dart'; import 'package:umeng_common_sdk/umeng_common_sdk.dart';
@ -58,6 +60,13 @@ class StarLockLoginLogic extends BaseGetXController {
Storage.saveLoginData(entity.data); Storage.saveLoginData(entity.data);
Storage.setBool(saveIsVip, entity.data!.isVip == 1); Storage.setBool(saveIsVip, entity.data!.isVip == 1);
//
final Starchart starChart = entity.data!.starchart!;
await Storage.saveStarChartRegisterNodeInfo(StarChartRegisterNodeEntity(
peer: PeerData(
id: starChart.starchartId,
publicKey: starChart.starchartPeerPublicKey,
privateKey: starChart.starchartPeerPrivateKey)));
eventBus.fire(MineInfoChangeRefreshUI()); eventBus.fire(MineInfoChangeRefreshUI());
if (Get.isRegistered<LockMainLogic>()) { if (Get.isRegistered<LockMainLogic>()) {
Get.find<LockMainLogic>().getStarLockInfo(isUnShowLoading: true); Get.find<LockMainLogic>().getStarLockInfo(isUnShowLoading: true);

View File

@ -63,21 +63,22 @@ class StarChartLogic extends BaseGetXController {
// //
void initiateAnswerCommand() { void initiateAnswerCommand() {
state.answerTimer = Timer.periodic(const Duration(seconds: 1), (timer) { // state.answerTimer = Timer.periodic(const Duration(seconds: 1), (timer) {
StartChartManage().sendTalkAcceptMessage(); // StartChartManage().sendTalkAcceptMessage();
state.answerSeconds++; // state.answerSeconds++;
if (state.talkStatus.value == TalkStatus.duringCall.index) { // if (state.talkStatus.value == TalkStatus.duringCall.index) {
state.answerTimer.cancel(); // state.answerTimer.cancel();
return; // return;
} // }
if (state.answerSeconds >= 6) { // if (state.answerSeconds >= 6) {
state.answerTimer.cancel(); // state.answerTimer.cancel();
showToast('接听失败'.tr); // showToast('接听失败'.tr);
initiateHangUpCommand(); // initiateHangUpCommand();
} // }
}); // });
StartChartManage().sendTalkAcceptMessage();
} }
// //

View File

@ -9,6 +9,7 @@ import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireElect
import 'package:star_lock/mine/mineSet/mineSet/mineSet_state.dart'; import 'package:star_lock/mine/mineSet/mineSet/mineSet_state.dart';
import 'package:star_lock/mine/mineSet/mineSet/userSettingInfoEntity.dart'; import 'package:star_lock/mine/mineSet/mineSet/userSettingInfoEntity.dart';
import 'package:star_lock/mine/mineSet/mineSet/weChatQRCodeEntity.dart'; import 'package:star_lock/mine/mineSet/mineSet/weChatQRCodeEntity.dart';
import 'package:star_lock/talk/startChart/start_chart_manage.dart';
import 'package:star_lock/tools/push/xs_jPhush.dart'; import 'package:star_lock/tools/push/xs_jPhush.dart';
import 'package:star_lock/tools/showCupertinoAlertView.dart'; import 'package:star_lock/tools/showCupertinoAlertView.dart';
import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/tools/storage.dart';
@ -150,6 +151,7 @@ class MineSetLogic extends BaseGetXController {
BlueManage().disconnect(); BlueManage().disconnect();
XSJPushProvider().initLocalNotification(isCancelLocalPush: true); XSJPushProvider().initLocalNotification(isCancelLocalPush: true);
StartChartManage().destruction();
Get.offNamedUntil(Routers.starLockLoginPage, (Route route) => false); Get.offNamedUntil(Routers.starLockLoginPage, (Route route) => false);
} else { } else {
UmengCommonSdk.onEvent('logout', { UmengCommonSdk.onEvent('logout', {

View File

@ -111,8 +111,8 @@ class StartChartManage {
await _requestStarChartRegisterNode(); await _requestStarChartRegisterNode();
await _saveStarChartRegisterNodeToStorage(requestStarChartRegisterNode); await _saveStarChartRegisterNodeToStorage(requestStarChartRegisterNode);
FromPeerId = requestStarChartRegisterNode.peer!.id ?? ''; FromPeerId = requestStarChartRegisterNode.peer!.id ?? '';
bindUserStarchart();
} }
bindUserStarchart();
} }
// //