Refactor desktop window management and tray

This commit is contained in:
problematicconsumer
2023-12-28 23:16:56 +03:30
parent 4345b97d72
commit a3a893d7aa
17 changed files with 334 additions and 253 deletions

View File

@@ -0,0 +1,39 @@
import 'package:flutter/material.dart';
import 'package:hiddify/core/preferences/service_preferences.dart';
import 'package:hiddify/features/connection/notifier/connection_notifier.dart';
import 'package:hiddify/utils/custom_loggers.dart';
import 'package:hiddify/utils/platform_utils.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
class ConnectionWrapper extends StatefulHookConsumerWidget {
const ConnectionWrapper(this.child, {super.key});
final Widget child;
@override
ConsumerState<ConsumerStatefulWidget> createState() =>
_ConnectionWrapperState();
}
class _ConnectionWrapperState extends ConsumerState<ConnectionWrapper>
with AppLogger {
@override
Widget build(BuildContext context) {
ref.listen(connectionNotifierProvider, (_, __) {});
return widget.child;
}
@override
void initState() {
super.initState();
Future.delayed(const Duration(seconds: 2)).then(
(_) async {
if (ref.read(startedByUserProvider) && PlatformUtils.isDesktop) {
loggy.debug("previously started by user, trying to connect");
return ref.read(connectionNotifierProvider.notifier).mayConnect();
}
},
);
}
}