Fix general issues

This commit is contained in:
problematicconsumer
2023-09-06 21:03:43 +03:30
parent 42ea79c7e5
commit b03d8cba99
10 changed files with 40 additions and 42 deletions

View File

@@ -17,7 +17,6 @@ import 'package:hiddify/utils/utils.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:loggy/loggy.dart'; import 'package:loggy/loggy.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'package:stack_trace/stack_trace.dart' as stack_trace;
import 'package:window_manager/window_manager.dart'; import 'package:window_manager/window_manager.dart';
final _loggy = Loggy('bootstrap'); final _loggy = Loggy('bootstrap');
@@ -26,13 +25,6 @@ final _stopWatch = Stopwatch();
Future<void> lazyBootstrap(WidgetsBinding widgetsBinding) async { Future<void> lazyBootstrap(WidgetsBinding widgetsBinding) async {
_stopWatch.start(); _stopWatch.start();
// temporary solution: https://github.com/rrousselGit/riverpod/issues/1874
FlutterError.demangleStackTrace = (StackTrace stack) {
if (stack is stack_trace.Trace) return stack.vmTrace;
if (stack is stack_trace.Chain) return stack.toTrace().vmTrace;
return stack;
};
FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding); FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
if (PlatformUtils.isDesktop) await windowManager.ensureInitialized(); if (PlatformUtils.isDesktop) await windowManager.ensureInitialized();

View File

@@ -1,5 +1,4 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:hiddify/core/core_providers.dart'; import 'package:hiddify/core/core_providers.dart';
import 'package:hiddify/core/prefs/prefs.dart'; import 'package:hiddify/core/prefs/prefs.dart';
@@ -29,6 +28,6 @@ class AppView extends HookConsumerWidget with PresLogger {
theme: theme.light(), theme: theme.light(),
darkTheme: theme.dark(), darkTheme: theme.dark(),
title: 'Hiddify Next', title: 'Hiddify Next',
).animate().fadeIn(); );
} }
} }

View File

@@ -7,7 +7,7 @@ part 'core_providers.g.dart';
TranslationsEn translations(TranslationsRef ref) => TranslationsEn translations(TranslationsRef ref) =>
ref.watch(localeProvider).translations(); ref.watch(localeProvider).translations();
@riverpod @Riverpod(keepAlive: true)
AppTheme theme(ThemeRef ref) => AppTheme( AppTheme theme(ThemeRef ref) => AppTheme(
ref.watch(themeModeProvider), ref.watch(themeModeProvider),
ref.watch(trueBlackThemeProvider), ref.watch(trueBlackThemeProvider),

View File

@@ -10,7 +10,7 @@ part 'profiles_dao.g.dart';
Map<SortMode, OrderingMode> orderMap = { Map<SortMode, OrderingMode> orderMap = {
SortMode.ascending: OrderingMode.asc, SortMode.ascending: OrderingMode.asc,
SortMode.descending: OrderingMode.desc SortMode.descending: OrderingMode.desc,
}; };
@DriftAccessor(tables: [ProfileEntries]) @DriftAccessor(tables: [ProfileEntries])

View File

@@ -2,7 +2,8 @@ import 'dart:io';
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:drift/native.dart'; import 'package:drift/native.dart';
import 'package:hiddify/data/local/dao/dao.dart'; // import 'package:hiddify/data/local/dao/dao.dart';
import 'package:hiddify/data/local/dao/profiles_dao.dart'; // TODO https://github.com/simolus3/drift/issues/2589
import 'package:hiddify/data/local/tables.dart'; import 'package:hiddify/data/local/tables.dart';
import 'package:hiddify/data/local/type_converters.dart'; import 'package:hiddify/data/local/type_converters.dart';
import 'package:hiddify/services/files_editor_service.dart'; import 'package:hiddify/services/files_editor_service.dart';

View File

@@ -129,7 +129,7 @@ class SubscriptionInfo with _$SubscriptionInfo {
final values = header.split(';'); final values = header.split(';');
final map = { final map = {
for (final v in values) for (final v in values)
v.split('=').first: int.tryParse(v.split('=').second) v.split('=').first: int.tryParse(v.split('=').second),
}; };
return SubscriptionInfo.fromJson(map); return SubscriptionInfo.fromJson(map);
} }

View File

@@ -23,7 +23,7 @@ class EmptyProfilesHomeBody extends HookConsumerWidget {
onPressed: () => const AddProfileRoute().push(context), onPressed: () => const AddProfileRoute().push(context),
icon: const Icon(Icons.add), icon: const Icon(Icons.add),
label: Text(t.profile.add.buttonText.titleCase), label: Text(t.profile.add.buttonText.titleCase),
) ),
], ],
), ),
); );
@@ -47,7 +47,7 @@ class EmptyActiveProfileHomeBody extends HookConsumerWidget {
OutlinedButton( OutlinedButton(
onPressed: () => const ProfilesRoute().push(context), onPressed: () => const ProfilesRoute().push(context),
child: Text(t.profile.overviewPageTitle.titleCase), child: Text(t.profile.overviewPageTitle.titleCase),
) ),
], ],
), ),
); );

View File

@@ -95,26 +95,32 @@ mixin _Prefs<T> implements LoggerMixin {
/// Updates the value asynchronously. /// Updates the value asynchronously.
Future<void> update(T value) async { Future<void> update(T value) async {
if (mapTo != null && mapFrom != null) { loggy.debug("updating preference [$key] to [$value]");
await prefs.setString(key, mapTo!(value)); try {
} else { if (mapTo != null && mapFrom != null) {
switch (value) { await prefs.setString(key, mapTo!(value));
case String _: } else {
await prefs.setString(key, value); switch (value) {
case bool _: case String _:
await prefs.setBool(key, value); await prefs.setString(key, value);
case int _: case bool _:
await prefs.setInt(key, value); await prefs.setBool(key, value);
case double _: case int _:
await prefs.setDouble(key, value); await prefs.setInt(key, value);
case List<String> _: case double _:
await prefs.setStringList(key, value); await prefs.setDouble(key, value);
case List<String> _:
await prefs.setStringList(key, value);
}
} }
} catch (e) {
loggy.warning("error updating preference[$key]: $e");
} }
} }
T getValue() { T getValue() {
try { try {
loggy.debug("getting persisted preference [$key]");
if (mapTo != null && mapFrom != null) { if (mapTo != null && mapFrom != null) {
final persisted = prefs.getString(key); final persisted = prefs.getString(key);
return persisted != null ? mapFrom!(persisted) : defaultValue; return persisted != null ? mapFrom!(persisted) : defaultValue;

View File

@@ -593,10 +593,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: hooks_riverpod name: hooks_riverpod
sha256: ad7b877c3687e38764633d221a1f65491bc7a540e724101e9a404a84db2a4276 sha256: "04a8a526db4c04139f6e5d318ef5079832daa1327a485ad391faf1b6bb203960"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.4.0" version: "2.3.10"
hotreloader: hotreloader:
dependency: transitive dependency: transitive
description: description:
@@ -993,26 +993,26 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: riverpod_annotation name: riverpod_annotation
sha256: "6294fe7e7d1875f32bdf04c8fce7620e718070273703097847df8f3bf16995ea" sha256: fefc51f8888839a597abe3c813c764404c85c0100a0676d242f358cc92bf5e23
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.5" version: "2.1.4"
riverpod_generator: riverpod_generator:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: riverpod_generator name: riverpod_generator
sha256: d132b1ccb476e60f99989caa6ba9b1c4d88409806c93d880d1633c60c382454d sha256: "3cbeb22926bb70c9c250fd0ed061b3086729404b0e4e89e209f46ef5393ccba4"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.2" version: "2.3.1"
riverpod_lint: riverpod_lint:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: riverpod_lint name: riverpod_lint
sha256: "74123a5f0a8e809ab80078dbc02061ecf02e09647a2c3231c87b7342bcf8d399" sha256: a26fbbd4b948c1a009264418bd6f9b153be75317ac61a2c37ed3920af2e135e4
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.4" version: "2.0.3"
rxdart: rxdart:
dependency: "direct main" dependency: "direct main"
description: description:

View File

@@ -27,9 +27,9 @@ dependencies:
json_annotation: ^4.8.1 json_annotation: ^4.8.1
# state management # state management
hooks_riverpod: ^2.4.0 hooks_riverpod: 2.3.10
flutter_hooks: ^0.20.1 flutter_hooks: ^0.20.1
riverpod_annotation: ^2.1.5 riverpod_annotation: 2.1.4
rxdart: ^0.27.7 rxdart: ^0.27.7
# persistence # persistence
@@ -84,14 +84,14 @@ dev_dependencies:
build_runner: ^2.4.6 build_runner: ^2.4.6
json_serializable: ^6.7.1 json_serializable: ^6.7.1
freezed: ^2.4.2 freezed: ^2.4.2
riverpod_generator: ^2.3.2 riverpod_generator: 2.3.1
drift_dev: ^2.11.1 drift_dev: ^2.11.1
ffigen: ^8.0.2 ffigen: ^8.0.2
slang_build_runner: ^3.23.0 slang_build_runner: ^3.23.0
flutter_gen_runner: ^5.3.1 flutter_gen_runner: ^5.3.1
go_router_builder: ^2.3.1 go_router_builder: ^2.3.1
custom_lint: ^0.5.3 custom_lint: ^0.5.3
riverpod_lint: ^2.0.4 riverpod_lint: 2.0.3
icons_launcher: ^2.1.3 icons_launcher: ^2.1.3
dependency_overrides: dependency_overrides: