Change initialization and logging
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:hiddify/core/analytics/analytics_controller.dart';
|
||||
import 'package:hiddify/core/localization/locale_extensions.dart';
|
||||
import 'package:hiddify/core/localization/locale_preferences.dart';
|
||||
import 'package:hiddify/core/localization/translations.dart';
|
||||
@@ -103,7 +104,7 @@ class EnableAnalyticsPrefTile extends HookConsumerWidget {
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final t = ref.watch(translationsProvider);
|
||||
|
||||
final autoReport = ref.watch(enableAnalyticsProvider);
|
||||
final autoReport = ref.watch(analyticsControllerProvider);
|
||||
|
||||
return SwitchListTile(
|
||||
title: Text(t.settings.general.enableAnalytics),
|
||||
@@ -117,7 +118,15 @@ class EnableAnalyticsPrefTile extends HookConsumerWidget {
|
||||
if (onChanged != null) {
|
||||
return onChanged!(value);
|
||||
}
|
||||
return ref.read(enableAnalyticsProvider.notifier).update(value);
|
||||
if (autoReport) {
|
||||
await ref
|
||||
.read(analyticsControllerProvider.notifier)
|
||||
.disableAnalytics();
|
||||
} else {
|
||||
await ref
|
||||
.read(analyticsControllerProvider.notifier)
|
||||
.enableAnalytics();
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import 'package:hiddify/core/directories/directories_provider.dart';
|
||||
import 'package:hiddify/features/config_option/data/config_option_data_providers.dart';
|
||||
import 'package:hiddify/features/connection/data/connection_platform_source.dart';
|
||||
import 'package:hiddify/features/connection/data/connection_repository.dart';
|
||||
import 'package:hiddify/features/geo_asset/data/geo_asset_data_providers.dart';
|
||||
import 'package:hiddify/features/profile/data/profile_data_providers.dart';
|
||||
import 'package:hiddify/services/service_providers.dart';
|
||||
import 'package:hiddify/singbox/service/singbox_service_provider.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
@@ -14,7 +14,7 @@ ConnectionRepository connectionRepository(
|
||||
ConnectionRepositoryRef ref,
|
||||
) {
|
||||
return ConnectionRepositoryImpl(
|
||||
directories: ref.watch(filesEditorServiceProvider).dirs,
|
||||
directories: ref.watch(appDirectoriesProvider).requireValue,
|
||||
configOptionRepository: ref.watch(configOptionRepositoryProvider),
|
||||
singbox: ref.watch(singboxServiceProvider),
|
||||
platformSource: ConnectionPlatformSourceImpl(),
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import 'package:hiddify/core/database/database_provider.dart';
|
||||
import 'package:hiddify/core/directories/directories_provider.dart';
|
||||
import 'package:hiddify/core/http_client/http_client_provider.dart';
|
||||
import 'package:hiddify/features/geo_asset/data/geo_asset_data_source.dart';
|
||||
import 'package:hiddify/features/geo_asset/data/geo_asset_path_resolver.dart';
|
||||
import 'package:hiddify/features/geo_asset/data/geo_asset_repository.dart';
|
||||
import 'package:hiddify/services/service_providers.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'geo_asset_data_providers.g.dart';
|
||||
@@ -27,6 +27,6 @@ GeoAssetDataSource geoAssetDataSource(GeoAssetDataSourceRef ref) {
|
||||
@Riverpod(keepAlive: true)
|
||||
GeoAssetPathResolver geoAssetPathResolver(GeoAssetPathResolverRef ref) {
|
||||
return GeoAssetPathResolver(
|
||||
ref.watch(filesEditorServiceProvider).dirs.workingDir,
|
||||
ref.watch(appDirectoriesProvider).requireValue.workingDir,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
import 'package:hiddify/core/analytics/analytics_controller.dart';
|
||||
import 'package:hiddify/core/localization/translations.dart';
|
||||
import 'package:hiddify/core/model/constants.dart';
|
||||
import 'package:hiddify/core/preferences/general_preferences.dart';
|
||||
@@ -9,7 +10,6 @@ import 'package:hiddify/features/common/general_pref_tiles.dart';
|
||||
import 'package:hiddify/gen/assets.gen.dart';
|
||||
import 'package:hiddify/utils/utils.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||
import 'package:sliver_tools/sliver_tools.dart';
|
||||
|
||||
class IntroPage extends HookConsumerWidget with PresLogger {
|
||||
@@ -73,10 +73,12 @@ class IntroPage extends HookConsumerWidget with PresLogger {
|
||||
onPressed: () async {
|
||||
if (isStarting.value) return;
|
||||
isStarting.value = true;
|
||||
if (!ref.read(enableAnalyticsProvider)) {
|
||||
if (!ref.read(analyticsControllerProvider)) {
|
||||
loggy.info("disabling analytics per user request");
|
||||
try {
|
||||
await Sentry.close();
|
||||
await ref
|
||||
.read(analyticsControllerProvider.notifier)
|
||||
.disableAnalytics();
|
||||
} catch (error, stackTrace) {
|
||||
loggy.error(
|
||||
"could not disable analytics",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:hiddify/core/directories/directories_provider.dart';
|
||||
import 'package:hiddify/features/log/data/log_path_resolver.dart';
|
||||
import 'package:hiddify/features/log/data/log_repository.dart';
|
||||
import 'package:hiddify/services/service_providers.dart';
|
||||
import 'package:hiddify/singbox/service/singbox_service_provider.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
@@ -19,6 +19,6 @@ Future<LogRepository> logRepository(LogRepositoryRef ref) async {
|
||||
@Riverpod(keepAlive: true)
|
||||
LogPathResolver logPathResolver(LogPathResolverRef ref) {
|
||||
return LogPathResolver(
|
||||
ref.watch(filesEditorServiceProvider).dirs.workingDir,
|
||||
ref.watch(appDirectoriesProvider).requireValue.workingDir,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import 'package:hiddify/core/database/database_provider.dart';
|
||||
import 'package:hiddify/core/directories/directories_provider.dart';
|
||||
import 'package:hiddify/core/http_client/http_client_provider.dart';
|
||||
import 'package:hiddify/features/profile/data/profile_data_source.dart';
|
||||
import 'package:hiddify/features/profile/data/profile_path_resolver.dart';
|
||||
import 'package:hiddify/features/profile/data/profile_repository.dart';
|
||||
import 'package:hiddify/services/service_providers.dart';
|
||||
import 'package:hiddify/singbox/service/singbox_service_provider.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
@@ -29,6 +29,6 @@ ProfileDataSource profileDataSource(ProfileDataSourceRef ref) {
|
||||
@Riverpod(keepAlive: true)
|
||||
ProfilePathResolver profilePathResolver(ProfilePathResolverRef ref) {
|
||||
return ProfilePathResolver(
|
||||
ref.watch(filesEditorServiceProvider).dirs.workingDir,
|
||||
ref.watch(appDirectoriesProvider).requireValue.workingDir,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
import 'package:hiddify/core/app_info/app_info_provider.dart';
|
||||
import 'package:hiddify/core/directories/directories_provider.dart';
|
||||
import 'package:hiddify/core/localization/translations.dart';
|
||||
import 'package:hiddify/core/model/constants.dart';
|
||||
import 'package:hiddify/core/model/failures.dart';
|
||||
@@ -10,7 +11,6 @@ import 'package:hiddify/features/app_update/notifier/app_update_state.dart';
|
||||
import 'package:hiddify/features/app_update/widget/new_version_dialog.dart';
|
||||
import 'package:hiddify/features/common/nested_app_bar.dart';
|
||||
import 'package:hiddify/gen/assets.gen.dart';
|
||||
import 'package:hiddify/services/service_providers.dart';
|
||||
import 'package:hiddify/utils/utils.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
|
||||
@@ -65,7 +65,8 @@ class AboutPage extends HookConsumerWidget {
|
||||
title: Text(t.settings.general.openWorkingDir),
|
||||
trailing: const Icon(Icons.arrow_outward_outlined),
|
||||
onTap: () async {
|
||||
final path = ref.read(filesEditorServiceProvider).workingDir.uri;
|
||||
final path =
|
||||
ref.watch(appDirectoriesProvider).requireValue.workingDir.uri;
|
||||
await UriUtils.tryLaunch(path);
|
||||
},
|
||||
),
|
||||
|
||||
@@ -23,28 +23,7 @@ class GeneralSettingTiles extends HookConsumerWidget {
|
||||
return Column(
|
||||
children: [
|
||||
const LocalePrefTile(),
|
||||
EnableAnalyticsPrefTile(
|
||||
onChanged: (value) async {
|
||||
await showDialog<bool>(
|
||||
context: context,
|
||||
builder: (context) {
|
||||
return AlertDialog(
|
||||
title: Text(t.settings.general.enableAnalytics),
|
||||
content: Text(t.settings.requiresRestartMsg),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () => context.pop(true),
|
||||
child: Text(
|
||||
MaterialLocalizations.of(context).okButtonLabel,
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
return ref.read(enableAnalyticsProvider.notifier).update(value);
|
||||
},
|
||||
),
|
||||
const EnableAnalyticsPrefTile(),
|
||||
ListTile(
|
||||
title: Text(t.settings.general.themeMode),
|
||||
subtitle: Text(themeMode.present(t)),
|
||||
|
||||
Reference in New Issue
Block a user