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/widgets/dialogs/hi_dialog.dart';
|
||||||
import 'package:kaer_with_panels/app/common/app_config.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/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> {
|
class HIUserInfoView extends GetView<HIUserInfoController> {
|
||||||
const HIUserInfoView({super.key});
|
const HIUserInfoView({super.key});
|
||||||
@ -75,7 +78,8 @@ class HIUserInfoView extends GetView<HIUserInfoController> {
|
|||||||
.value;
|
.value;
|
||||||
final isDeviceLogin = account != null &&
|
final isDeviceLogin = account != null &&
|
||||||
account.startsWith('9000');
|
account.startsWith('9000');
|
||||||
final accountText = (account ==null || isDeviceLogin)
|
final accountText = (account == null ||
|
||||||
|
isDeviceLogin)
|
||||||
? '待绑定'
|
? '待绑定'
|
||||||
: '${KRAppRunData.getInstance().kr_account.value.toString()}';
|
: '${KRAppRunData.getInstance().kr_account.value.toString()}';
|
||||||
return Text(
|
return Text(
|
||||||
@ -316,6 +320,8 @@ class HIUserInfoView extends GetView<HIUserInfoController> {
|
|||||||
cancelText: '确认',
|
cancelText: '确认',
|
||||||
confirmText: '返回',
|
confirmText: '返回',
|
||||||
onCancel: () async {
|
onCancel: () async {
|
||||||
|
// 如果删的是当前设备,应该先关闭vpn的连接
|
||||||
|
await _stopVpnIfRunning();
|
||||||
final currentDevice =
|
final currentDevice =
|
||||||
controller.devices.firstWhere(
|
controller.devices.firstWhere(
|
||||||
(device) => device['is_current'] == true,
|
(device) => device['is_current'] == true,
|
||||||
@ -500,7 +506,7 @@ class HIUserInfoView extends GetView<HIUserInfoController> {
|
|||||||
confirmText: KRAppRunData.getInstance().isDeviceLogin() ? '前往' : null,
|
confirmText: KRAppRunData.getInstance().isDeviceLogin() ? '前往' : null,
|
||||||
cancelText: KRAppRunData.getInstance().isDeviceLogin() ? '取消' : null,
|
cancelText: KRAppRunData.getInstance().isDeviceLogin() ? '取消' : null,
|
||||||
onConfirm: () {
|
onConfirm: () {
|
||||||
if(KRAppRunData.getInstance().isDeviceLogin()) {
|
if (KRAppRunData.getInstance().isDeviceLogin()) {
|
||||||
Get.toNamed(
|
Get.toNamed(
|
||||||
Routes.MR_LOGIN,
|
Routes.MR_LOGIN,
|
||||||
arguments: {'entry': 'bind_email'},
|
arguments: {'entry': 'bind_email'},
|
||||||
@ -606,4 +612,16 @@ class HIUserInfoView extends GetView<HIUserInfoController> {
|
|||||||
return Icons.devices;
|
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