Fix general issues
This commit is contained in:
@@ -17,7 +17,6 @@ import 'package:hiddify/utils/utils.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:loggy/loggy.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';
|
||||
|
||||
final _loggy = Loggy('bootstrap');
|
||||
@@ -26,13 +25,6 @@ final _stopWatch = Stopwatch();
|
||||
Future<void> lazyBootstrap(WidgetsBinding widgetsBinding) async {
|
||||
_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);
|
||||
if (PlatformUtils.isDesktop) await windowManager.ensureInitialized();
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_animate/flutter_animate.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:hiddify/core/core_providers.dart';
|
||||
import 'package:hiddify/core/prefs/prefs.dart';
|
||||
@@ -29,6 +28,6 @@ class AppView extends HookConsumerWidget with PresLogger {
|
||||
theme: theme.light(),
|
||||
darkTheme: theme.dark(),
|
||||
title: 'Hiddify Next',
|
||||
).animate().fadeIn();
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ part 'core_providers.g.dart';
|
||||
TranslationsEn translations(TranslationsRef ref) =>
|
||||
ref.watch(localeProvider).translations();
|
||||
|
||||
@riverpod
|
||||
@Riverpod(keepAlive: true)
|
||||
AppTheme theme(ThemeRef ref) => AppTheme(
|
||||
ref.watch(themeModeProvider),
|
||||
ref.watch(trueBlackThemeProvider),
|
||||
|
||||
@@ -10,7 +10,7 @@ part 'profiles_dao.g.dart';
|
||||
|
||||
Map<SortMode, OrderingMode> orderMap = {
|
||||
SortMode.ascending: OrderingMode.asc,
|
||||
SortMode.descending: OrderingMode.desc
|
||||
SortMode.descending: OrderingMode.desc,
|
||||
};
|
||||
|
||||
@DriftAccessor(tables: [ProfileEntries])
|
||||
|
||||
@@ -2,7 +2,8 @@ import 'dart:io';
|
||||
|
||||
import 'package:drift/drift.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/type_converters.dart';
|
||||
import 'package:hiddify/services/files_editor_service.dart';
|
||||
|
||||
@@ -129,7 +129,7 @@ class SubscriptionInfo with _$SubscriptionInfo {
|
||||
final values = header.split(';');
|
||||
final map = {
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ class EmptyProfilesHomeBody extends HookConsumerWidget {
|
||||
onPressed: () => const AddProfileRoute().push(context),
|
||||
icon: const Icon(Icons.add),
|
||||
label: Text(t.profile.add.buttonText.titleCase),
|
||||
)
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
@@ -47,7 +47,7 @@ class EmptyActiveProfileHomeBody extends HookConsumerWidget {
|
||||
OutlinedButton(
|
||||
onPressed: () => const ProfilesRoute().push(context),
|
||||
child: Text(t.profile.overviewPageTitle.titleCase),
|
||||
)
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
@@ -95,6 +95,8 @@ mixin _Prefs<T> implements LoggerMixin {
|
||||
|
||||
/// Updates the value asynchronously.
|
||||
Future<void> update(T value) async {
|
||||
loggy.debug("updating preference [$key] to [$value]");
|
||||
try {
|
||||
if (mapTo != null && mapFrom != null) {
|
||||
await prefs.setString(key, mapTo!(value));
|
||||
} else {
|
||||
@@ -111,10 +113,14 @@ mixin _Prefs<T> implements LoggerMixin {
|
||||
await prefs.setStringList(key, value);
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
loggy.warning("error updating preference[$key]: $e");
|
||||
}
|
||||
}
|
||||
|
||||
T getValue() {
|
||||
try {
|
||||
loggy.debug("getting persisted preference [$key]");
|
||||
if (mapTo != null && mapFrom != null) {
|
||||
final persisted = prefs.getString(key);
|
||||
return persisted != null ? mapFrom!(persisted) : defaultValue;
|
||||
|
||||
16
pubspec.lock
16
pubspec.lock
@@ -593,10 +593,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: hooks_riverpod
|
||||
sha256: ad7b877c3687e38764633d221a1f65491bc7a540e724101e9a404a84db2a4276
|
||||
sha256: "04a8a526db4c04139f6e5d318ef5079832daa1327a485ad391faf1b6bb203960"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.0"
|
||||
version: "2.3.10"
|
||||
hotreloader:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -993,26 +993,26 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: riverpod_annotation
|
||||
sha256: "6294fe7e7d1875f32bdf04c8fce7620e718070273703097847df8f3bf16995ea"
|
||||
sha256: fefc51f8888839a597abe3c813c764404c85c0100a0676d242f358cc92bf5e23
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.5"
|
||||
version: "2.1.4"
|
||||
riverpod_generator:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: riverpod_generator
|
||||
sha256: d132b1ccb476e60f99989caa6ba9b1c4d88409806c93d880d1633c60c382454d
|
||||
sha256: "3cbeb22926bb70c9c250fd0ed061b3086729404b0e4e89e209f46ef5393ccba4"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.2"
|
||||
version: "2.3.1"
|
||||
riverpod_lint:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: riverpod_lint
|
||||
sha256: "74123a5f0a8e809ab80078dbc02061ecf02e09647a2c3231c87b7342bcf8d399"
|
||||
sha256: a26fbbd4b948c1a009264418bd6f9b153be75317ac61a2c37ed3920af2e135e4
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.4"
|
||||
version: "2.0.3"
|
||||
rxdart:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
||||
@@ -27,9 +27,9 @@ dependencies:
|
||||
json_annotation: ^4.8.1
|
||||
|
||||
# state management
|
||||
hooks_riverpod: ^2.4.0
|
||||
hooks_riverpod: 2.3.10
|
||||
flutter_hooks: ^0.20.1
|
||||
riverpod_annotation: ^2.1.5
|
||||
riverpod_annotation: 2.1.4
|
||||
rxdart: ^0.27.7
|
||||
|
||||
# persistence
|
||||
@@ -84,14 +84,14 @@ dev_dependencies:
|
||||
build_runner: ^2.4.6
|
||||
json_serializable: ^6.7.1
|
||||
freezed: ^2.4.2
|
||||
riverpod_generator: ^2.3.2
|
||||
riverpod_generator: 2.3.1
|
||||
drift_dev: ^2.11.1
|
||||
ffigen: ^8.0.2
|
||||
slang_build_runner: ^3.23.0
|
||||
flutter_gen_runner: ^5.3.1
|
||||
go_router_builder: ^2.3.1
|
||||
custom_lint: ^0.5.3
|
||||
riverpod_lint: ^2.0.4
|
||||
riverpod_lint: 2.0.3
|
||||
icons_launcher: ^2.1.3
|
||||
|
||||
dependency_overrides:
|
||||
|
||||
Reference in New Issue
Block a user