Refactor desktop window management and tray
This commit is contained in:
39
lib/features/connection/widget/connection_wrapper.dart
Normal file
39
lib/features/connection/widget/connection_wrapper.dart
Normal 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();
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user