Refactor service wrappers
This commit is contained in:
@@ -17,13 +17,13 @@ import 'package:hiddify/core/preferences/preferences_migration.dart';
|
|||||||
import 'package:hiddify/core/preferences/preferences_provider.dart';
|
import 'package:hiddify/core/preferences/preferences_provider.dart';
|
||||||
import 'package:hiddify/features/app/widget/app.dart';
|
import 'package:hiddify/features/app/widget/app.dart';
|
||||||
import 'package:hiddify/features/auto_start/notifier/auto_start_notifier.dart';
|
import 'package:hiddify/features/auto_start/notifier/auto_start_notifier.dart';
|
||||||
|
import 'package:hiddify/features/deep_link/notifier/deep_link_notifier.dart';
|
||||||
import 'package:hiddify/features/geo_asset/data/geo_asset_data_providers.dart';
|
import 'package:hiddify/features/geo_asset/data/geo_asset_data_providers.dart';
|
||||||
import 'package:hiddify/features/log/data/log_data_providers.dart';
|
import 'package:hiddify/features/log/data/log_data_providers.dart';
|
||||||
import 'package:hiddify/features/profile/data/profile_data_providers.dart';
|
import 'package:hiddify/features/profile/data/profile_data_providers.dart';
|
||||||
import 'package:hiddify/features/profile/notifier/active_profile_notifier.dart';
|
import 'package:hiddify/features/profile/notifier/active_profile_notifier.dart';
|
||||||
import 'package:hiddify/features/system_tray/notifier/system_tray_notifier.dart';
|
import 'package:hiddify/features/system_tray/notifier/system_tray_notifier.dart';
|
||||||
import 'package:hiddify/features/window/notifier/window_notifier.dart';
|
import 'package:hiddify/features/window/notifier/window_notifier.dart';
|
||||||
import 'package:hiddify/services/deep_link_service.dart';
|
|
||||||
import 'package:hiddify/singbox/service/singbox_service_provider.dart';
|
import 'package:hiddify/singbox/service/singbox_service_provider.dart';
|
||||||
import 'package:hiddify/utils/utils.dart';
|
import 'package:hiddify/utils/utils.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
@@ -144,7 +144,7 @@ Future<void> lazyBootstrap(
|
|||||||
);
|
);
|
||||||
await _safeInit(
|
await _safeInit(
|
||||||
"deep link service",
|
"deep link service",
|
||||||
() => container.read(deepLinkServiceProvider.future),
|
() => container.read(deepLinkNotifierProvider.future),
|
||||||
timeout: 1000,
|
timeout: 1000,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:hiddify/core/preferences/general_preferences.dart';
|
import 'package:hiddify/core/preferences/general_preferences.dart';
|
||||||
import 'package:hiddify/core/router/routes.dart';
|
import 'package:hiddify/core/router/routes.dart';
|
||||||
import 'package:hiddify/services/deep_link_service.dart';
|
import 'package:hiddify/features/deep_link/notifier/deep_link_notifier.dart';
|
||||||
import 'package:hiddify/utils/utils.dart';
|
import 'package:hiddify/utils/utils.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:sentry_flutter/sentry_flutter.dart';
|
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||||
@@ -21,7 +21,7 @@ final GlobalKey<NavigatorState> rootNavigatorKey = GlobalKey<NavigatorState>();
|
|||||||
GoRouter router(RouterRef ref) {
|
GoRouter router(RouterRef ref) {
|
||||||
final notifier = ref.watch(routerListenableProvider.notifier);
|
final notifier = ref.watch(routerListenableProvider.notifier);
|
||||||
final deepLink = ref.listen(
|
final deepLink = ref.listen(
|
||||||
deepLinkServiceProvider,
|
deepLinkNotifierProvider,
|
||||||
(_, next) async {
|
(_, next) async {
|
||||||
if (next case AsyncData(value: final link?)) {
|
if (next case AsyncData(value: final link?)) {
|
||||||
await ref.state.push(AddProfileRoute(url: link.url).location);
|
await ref.state.push(AddProfileRoute(url: link.url).location);
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ import 'package:hiddify/core/theme/theme_preferences.dart';
|
|||||||
import 'package:hiddify/features/app_update/notifier/app_update_notifier.dart';
|
import 'package:hiddify/features/app_update/notifier/app_update_notifier.dart';
|
||||||
import 'package:hiddify/features/connection/widget/connection_wrapper.dart';
|
import 'package:hiddify/features/connection/widget/connection_wrapper.dart';
|
||||||
import 'package:hiddify/features/profile/notifier/profiles_update_notifier.dart';
|
import 'package:hiddify/features/profile/notifier/profiles_update_notifier.dart';
|
||||||
|
import 'package:hiddify/features/shortcut/shortcut_wrapper.dart';
|
||||||
import 'package:hiddify/features/system_tray/widget/system_tray_wrapper.dart';
|
import 'package:hiddify/features/system_tray/widget/system_tray_wrapper.dart';
|
||||||
import 'package:hiddify/features/window/widget/window_wrapper.dart';
|
import 'package:hiddify/features/window/widget/window_wrapper.dart';
|
||||||
import 'package:hiddify/features/wrapper/shortcut/shortcut_wrapper.dart';
|
|
||||||
import 'package:hiddify/utils/utils.dart';
|
import 'package:hiddify/utils/utils.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:upgrader/upgrader.dart';
|
import 'package:upgrader/upgrader.dart';
|
||||||
|
|||||||
@@ -4,17 +4,16 @@ import 'package:hiddify/utils/utils.dart';
|
|||||||
import 'package:protocol_handler/protocol_handler.dart';
|
import 'package:protocol_handler/protocol_handler.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
|
|
||||||
part 'deep_link_service.g.dart';
|
part 'deep_link_notifier.g.dart';
|
||||||
|
|
||||||
typedef NewProfileLink = ({String? url, String? name});
|
typedef NewProfileLink = ({String? url, String? name});
|
||||||
|
|
||||||
@Riverpod(keepAlive: true)
|
@Riverpod(keepAlive: true)
|
||||||
class DeepLinkService extends _$DeepLinkService
|
class DeepLinkNotifier extends _$DeepLinkNotifier
|
||||||
with ProtocolListener, InfraLogger {
|
with ProtocolListener, InfraLogger {
|
||||||
@override
|
@override
|
||||||
Future<NewProfileLink?> build() async {
|
Future<NewProfileLink?> build() async {
|
||||||
if (Platform.isLinux) return null;
|
if (Platform.isLinux) return null;
|
||||||
loggy.debug("initializing");
|
|
||||||
for (final protocol in LinkParser.protocols) {
|
for (final protocol in LinkParser.protocols) {
|
||||||
await protocolHandler.register(protocol);
|
await protocolHandler.register(protocol);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user