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: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();
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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])
|
||||||
|
|||||||
@@ -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';
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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),
|
||||||
)
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -95,6 +95,8 @@ 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 {
|
||||||
|
loggy.debug("updating preference [$key] to [$value]");
|
||||||
|
try {
|
||||||
if (mapTo != null && mapFrom != null) {
|
if (mapTo != null && mapFrom != null) {
|
||||||
await prefs.setString(key, mapTo!(value));
|
await prefs.setString(key, mapTo!(value));
|
||||||
} else {
|
} else {
|
||||||
@@ -111,10 +113,14 @@ mixin _Prefs<T> implements LoggerMixin {
|
|||||||
await prefs.setStringList(key, value);
|
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;
|
||||||
|
|||||||
16
pubspec.lock
16
pubspec.lock
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user