Files
MWClash/lib/common/launch.dart
chen08209 2742c570ce Optimize desktop view
Optimize logs, requests, connection pages

Update core
2025-07-24 10:28:33 +08:00

51 lines
1014 B
Dart

import 'dart:async';
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:launch_at_startup/launch_at_startup.dart';
import 'constant.dart';
import 'system.dart';
class AutoLaunch {
static AutoLaunch? _instance;
AutoLaunch._internal() {
launchAtStartup.setup(
appName: appName,
appPath: Platform.resolvedExecutable,
);
}
factory AutoLaunch() {
_instance ??= AutoLaunch._internal();
return _instance!;
}
Future<bool> get isEnable async {
return await launchAtStartup.isEnabled();
}
Future<bool> enable() async {
return await launchAtStartup.enable();
}
Future<bool> disable() async {
return await launchAtStartup.disable();
}
Future<void> updateStatus(bool isAutoLaunch) async {
if (kDebugMode) {
return;
}
if (await isEnable == isAutoLaunch) return;
if (isAutoLaunch == true) {
enable();
} else {
disable();
}
}
}
final autoLaunch = system.isDesktop ? AutoLaunch() : null;