add basic routing options, auto update routing assets,use ruleset, remove geo assets

This commit is contained in:
hiddify-com
2024-07-04 21:04:44 +02:00
parent 93f4bbca32
commit c6d34e7455
27 changed files with 773 additions and 835 deletions

View File

@@ -6,8 +6,8 @@ import 'package:hiddify/core/database/connection/database_connection.dart';
import 'package:hiddify/core/database/converters/duration_converter.dart';
import 'package:hiddify/core/database/schema_versions.dart';
import 'package:hiddify/core/database/tables/database_tables.dart';
import 'package:hiddify/features/geo_asset/data/geo_asset_data_mapper.dart';
import 'package:hiddify/features/geo_asset/model/default_geo_assets.dart';
// import 'package:hiddify/features/geo_asset/data/geo_asset_data_mapper.dart';
// import 'package:hiddify/features/geo_asset/model/default_geo_assets.dart';
import 'package:hiddify/features/geo_asset/model/geo_asset_entity.dart';
import 'package:hiddify/features/profile/model/profile_entity.dart';
import 'package:hiddify/utils/custom_loggers.dart';
@@ -60,11 +60,11 @@ class AppDatabase extends _$AppDatabase with InfraLogger {
Future<void> _prePopulateGeoAssets() async {
loggy.debug("populating default geo assets");
await transaction(() async {
final geoAssets = defaultGeoAssets.map((e) => e.toEntry());
for (final geoAsset in geoAssets) {
await into(geoAssetEntries)
.insert(geoAsset, mode: InsertMode.insertOrIgnore);
}
// final geoAssets = defaultGeoAssets.map((e) => e.toEntry());
// for (final geoAsset in geoAssets) {
// await into(geoAssetEntries)
// .insert(geoAsset, mode: InsertMode.insertOrIgnore);
// }
});
}
}

View File

@@ -1,7 +1,7 @@
import 'package:flutter/foundation.dart';
import 'package:hiddify/core/app_info/app_info_provider.dart';
import 'package:hiddify/core/model/environment.dart';
import 'package:hiddify/core/model/region.dart';
// import 'package:hiddify/core/model/region.dart';
import 'package:hiddify/core/preferences/preferences_provider.dart';
import 'package:hiddify/core/utils/preferences_utils.dart';
import 'package:hiddify/features/per_app_proxy/model/per_app_proxy_mode.dart';
@@ -19,13 +19,6 @@ abstract class Preferences {
overrideValue: _debugIntroPage && kDebugMode ? false : null,
);
static final region = PreferencesNotifier.create<Region, String>(
"region",
Region.other,
mapFrom: Region.values.byName,
mapTo: (value) => value.name,
);
static final silentStart = PreferencesNotifier.create<bool, bool>(
"silent_start",
false,
@@ -37,8 +30,7 @@ abstract class Preferences {
PlatformUtils.isDesktop,
);
static final perAppProxyMode =
PreferencesNotifier.create<PerAppProxyMode, String>(
static final perAppProxyMode = PreferencesNotifier.create<PerAppProxyMode, String>(
"per_app_proxy_mode",
PerAppProxyMode.off,
mapFrom: PerAppProxyMode.values.byName,
@@ -103,10 +95,7 @@ class PerAppProxyList extends _$PerAppProxyList {
);
@override
List<String> build() =>
ref.watch(Preferences.perAppProxyMode) == PerAppProxyMode.include
? _include.read()
: _exclude.read();
List<String> build() => ref.watch(Preferences.perAppProxyMode) == PerAppProxyMode.include ? _include.read() : _exclude.read();
Future<void> update(List<String> value) {
state = value;

View File

@@ -4,7 +4,7 @@ import 'package:hiddify/core/router/app_router.dart';
import 'package:hiddify/features/common/adaptive_root_scaffold.dart';
import 'package:hiddify/features/config_option/overview/config_options_page.dart';
import 'package:hiddify/features/config_option/widget/quick_settings_modal.dart';
import 'package:hiddify/features/geo_asset/overview/geo_assets_overview_page.dart';
import 'package:hiddify/features/home/widget/home_page.dart';
import 'package:hiddify/features/intro/widget/intro_page.dart';
import 'package:hiddify/features/log/overview/logs_overview_page.dart';
@@ -19,8 +19,7 @@ import 'package:hiddify/utils/utils.dart';
part 'routes.g.dart';
GlobalKey<NavigatorState>? _dynamicRootKey =
useMobileRouter ? rootNavigatorKey : null;
GlobalKey<NavigatorState>? _dynamicRootKey = useMobileRouter ? rootNavigatorKey : null;
@TypedShellRoute<MobileWrapperRoute>(
routes: [
@@ -60,10 +59,6 @@ GlobalKey<NavigatorState>? _dynamicRootKey =
path: "per-app-proxy",
name: PerAppProxyRoute.name,
),
TypedGoRoute<GeoAssetsRoute>(
path: "routing-assets",
name: GeoAssetsRoute.name,
),
],
),
TypedGoRoute<LogsOverviewRoute>(
@@ -130,12 +125,7 @@ class MobileWrapperRoute extends ShellRouteData {
TypedGoRoute<SettingsRoute>(
path: "/settings",
name: SettingsRoute.name,
routes: [
TypedGoRoute<GeoAssetsRoute>(
path: "routing-assets",
name: GeoAssetsRoute.name,
),
],
routes: [],
),
TypedGoRoute<LogsOverviewRoute>(
path: "/logs",
@@ -229,8 +219,7 @@ class ProfilesOverviewRoute extends GoRouteData {
Page<void> buildPage(BuildContext context, GoRouterState state) {
return BottomSheetPage(
name: name,
builder: (controller) =>
ProfilesOverviewModal(scrollController: controller),
builder: (controller) => ProfilesOverviewModal(scrollController: controller),
);
}
}
@@ -358,28 +347,6 @@ class PerAppProxyRoute extends GoRouteData {
}
}
class GeoAssetsRoute extends GoRouteData {
const GeoAssetsRoute();
static const name = "Routing Assets";
static final GlobalKey<NavigatorState>? $parentNavigatorKey = _dynamicRootKey;
@override
Page<void> buildPage(BuildContext context, GoRouterState state) {
if (useMobileRouter) {
return const MaterialPage(
name: name,
child: GeoAssetsOverviewPage(),
);
}
return const MaterialPage(
fullscreenDialog: true,
name: name,
child: GeoAssetsOverviewPage(),
);
}
}
class AboutRoute extends GoRouteData {
const AboutRoute();
static const name = "About";