feat: 退出登录增加vpn是否连接判断
This commit is contained in:
parent
1b996f0c53
commit
bfa67e8a73
@ -20,6 +20,9 @@ import 'package:kaer_with_panels/app/modules/kr_home/controllers/kr_home_control
|
||||
import 'package:kaer_with_panels/app/widgets/dialogs/hi_dialog.dart';
|
||||
import 'package:kaer_with_panels/app/common/app_config.dart';
|
||||
import 'package:kaer_with_panels/app/widgets/kr_subscription_expiry_text.dart';
|
||||
import 'package:kaer_with_panels/singbox/model/singbox_status.dart';
|
||||
import 'package:kaer_with_panels/app/services/singbox_imp/kr_sing_box_imp.dart';
|
||||
import 'package:kaer_with_panels/app/utils/kr_log_util.dart';
|
||||
|
||||
class HIUserInfoView extends GetView<HIUserInfoController> {
|
||||
const HIUserInfoView({super.key});
|
||||
@ -75,7 +78,8 @@ class HIUserInfoView extends GetView<HIUserInfoController> {
|
||||
.value;
|
||||
final isDeviceLogin = account != null &&
|
||||
account.startsWith('9000');
|
||||
final accountText = (account ==null || isDeviceLogin)
|
||||
final accountText = (account == null ||
|
||||
isDeviceLogin)
|
||||
? '待绑定'
|
||||
: '${KRAppRunData.getInstance().kr_account.value.toString()}';
|
||||
return Text(
|
||||
@ -316,6 +320,8 @@ class HIUserInfoView extends GetView<HIUserInfoController> {
|
||||
cancelText: '确认',
|
||||
confirmText: '返回',
|
||||
onCancel: () async {
|
||||
// 如果删的是当前设备,应该先关闭vpn的连接
|
||||
await _stopVpnIfRunning();
|
||||
final currentDevice =
|
||||
controller.devices.firstWhere(
|
||||
(device) => device['is_current'] == true,
|
||||
@ -500,7 +506,7 @@ class HIUserInfoView extends GetView<HIUserInfoController> {
|
||||
confirmText: KRAppRunData.getInstance().isDeviceLogin() ? '前往' : null,
|
||||
cancelText: KRAppRunData.getInstance().isDeviceLogin() ? '取消' : null,
|
||||
onConfirm: () {
|
||||
if(KRAppRunData.getInstance().isDeviceLogin()) {
|
||||
if (KRAppRunData.getInstance().isDeviceLogin()) {
|
||||
Get.toNamed(
|
||||
Routes.MR_LOGIN,
|
||||
arguments: {'entry': 'bind_email'},
|
||||
@ -606,4 +612,16 @@ class HIUserInfoView extends GetView<HIUserInfoController> {
|
||||
return Icons.devices;
|
||||
}
|
||||
}
|
||||
|
||||
/// 停止VPN如果正在运行
|
||||
Future<void> _stopVpnIfRunning() async {
|
||||
try {
|
||||
if (KRSingBoxImp.instance.kr_status.value is SingboxStarted) {
|
||||
KRLogUtil.kr_i('正在删除当前设备,先停止 VPN 连接...', tag: 'HIUserInfoView');
|
||||
await KRSingBoxImp.instance.kr_stop();
|
||||
}
|
||||
} catch (e) {
|
||||
KRLogUtil.kr_e('停止 VPN 失败: $e', tag: 'HIUserInfoView');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user