feat: mobile-like window size and always-visible stats

- Changed window size to mobile phone format (400x800)
- Removed width condition for ActiveProxyFooter - now always visible
- Added run-umbrix.sh launch script with icon copying
- Stats cards now display on all screen sizes
This commit is contained in:
Umbrix Developer
2026-01-17 13:09:20 +03:00
parent ec5ebbd54b
commit 76a374950f
245 changed files with 7931 additions and 1315 deletions

View File

@@ -1,6 +1,6 @@
import 'package:drift/drift.dart';
import 'package:hiddify/core/database/app_database.dart';
import 'package:hiddify/features/geo_asset/model/geo_asset_entity.dart';
import 'package:umbrix/core/database/app_database.dart';
import 'package:umbrix/features/geo_asset/model/geo_asset_entity.dart';
extension GeoAssetEntityMapper on GeoAssetEntity {
GeoAssetEntriesCompanion toEntry() {

View File

@@ -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:umbrix/core/database/database_provider.dart';
// import 'package:umbrix/core/directories/directories_provider.dart';
// import 'package:umbrix/core/http_client/http_client_provider.dart';
// import 'package:umbrix/features/geo_asset/data/geo_asset_data_source.dart';
// import 'package:umbrix/features/geo_asset/data/geo_asset_path_resolver.dart';
// import 'package:umbrix/features/geo_asset/data/geo_asset_repository.dart';
// import 'package:riverpod_annotation/riverpod_annotation.dart';
// part 'geo_asset_data_providers.g.dart';

View File

@@ -1,8 +1,8 @@
import 'package:drift/drift.dart';
import 'package:hiddify/core/database/app_database.dart';
import 'package:hiddify/core/database/tables/database_tables.dart';
import 'package:hiddify/features/geo_asset/model/geo_asset_entity.dart';
import 'package:hiddify/utils/custom_loggers.dart';
import 'package:umbrix/core/database/app_database.dart';
import 'package:umbrix/core/database/tables/database_tables.dart';
import 'package:umbrix/features/geo_asset/model/geo_asset_entity.dart';
import 'package:umbrix/utils/custom_loggers.dart';
part 'geo_asset_data_source.g.dart';

View File

@@ -4,17 +4,17 @@
// import 'package:drift/drift.dart';
// import 'package:flutter/services.dart';
// import 'package:fpdart/fpdart.dart';
// import 'package:hiddify/core/database/app_database.dart';
// import 'package:hiddify/core/http_client/dio_http_client.dart';
// import 'package:hiddify/core/utils/exception_handler.dart';
// import 'package:hiddify/features/geo_asset/data/geo_asset_data_mapper.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/model/default_geo_assets.dart';
// import 'package:hiddify/features/geo_asset/model/geo_asset_entity.dart';
// import 'package:hiddify/features/geo_asset/model/geo_asset_failure.dart';
// import 'package:hiddify/gen/assets.gen.dart';
// import 'package:hiddify/utils/custom_loggers.dart';
// import 'package:umbrix/core/database/app_database.dart';
// import 'package:umbrix/core/http_client/dio_http_client.dart';
// import 'package:umbrix/core/utils/exception_handler.dart';
// import 'package:umbrix/features/geo_asset/data/geo_asset_data_mapper.dart';
// import 'package:umbrix/features/geo_asset/data/geo_asset_data_source.dart';
// import 'package:umbrix/features/geo_asset/data/geo_asset_path_resolver.dart';
// import 'package:umbrix/features/geo_asset/model/default_geo_assets.dart';
// import 'package:umbrix/features/geo_asset/model/geo_asset_entity.dart';
// import 'package:umbrix/features/geo_asset/model/geo_asset_failure.dart';
// import 'package:umbrix/gen/assets.gen.dart';
// import 'package:umbrix/utils/custom_loggers.dart';
// import 'package:rxdart/rxdart.dart';
// import 'package:watcher/watcher.dart';

View File

@@ -1,4 +1,4 @@
// import 'package:hiddify/features/geo_asset/model/geo_asset_entity.dart';
// import 'package:umbrix/features/geo_asset/model/geo_asset_entity.dart';
// /// default geoip asset bundled with the app
// const defaultGeoip = GeoAssetEntity(

View File

@@ -1,6 +1,6 @@
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:hiddify/core/localization/translations.dart';
import 'package:hiddify/core/model/failures.dart';
import 'package:umbrix/core/localization/translations.dart';
import 'package:umbrix/core/model/failures.dart';
part 'geo_asset_failure.freezed.dart';

View File

@@ -1,8 +1,8 @@
// import 'package:fpdart/fpdart.dart';
// import 'package:hiddify/features/geo_asset/data/geo_asset_data_providers.dart';
// import 'package:hiddify/features/geo_asset/model/geo_asset_entity.dart';
// import 'package:hiddify/utils/custom_loggers.dart';
// import 'package:hiddify/utils/riverpod_utils.dart';
// import 'package:umbrix/features/geo_asset/data/geo_asset_data_providers.dart';
// import 'package:umbrix/features/geo_asset/model/geo_asset_entity.dart';
// import 'package:umbrix/utils/custom_loggers.dart';
// import 'package:umbrix/utils/riverpod_utils.dart';
// import 'package:riverpod_annotation/riverpod_annotation.dart';
// part 'geo_asset_notifier.g.dart';

View File

@@ -1,9 +1,9 @@
// import 'package:dartx/dartx.dart';
// import 'package:hiddify/features/geo_asset/data/geo_asset_data_providers.dart';
// import 'package:hiddify/features/geo_asset/data/geo_asset_repository.dart';
// import 'package:hiddify/features/geo_asset/model/geo_asset_entity.dart';
// import 'package:hiddify/utils/custom_loggers.dart';
// import 'package:hiddify/utils/riverpod_utils.dart';
// import 'package:umbrix/features/geo_asset/data/geo_asset_data_providers.dart';
// import 'package:umbrix/features/geo_asset/data/geo_asset_repository.dart';
// import 'package:umbrix/features/geo_asset/model/geo_asset_entity.dart';
// import 'package:umbrix/utils/custom_loggers.dart';
// import 'package:umbrix/utils/riverpod_utils.dart';
// import 'package:riverpod_annotation/riverpod_annotation.dart';
// part 'geo_assets_overview_notifier.g.dart';

View File

@@ -1,11 +1,11 @@
// import 'package:flutter/material.dart';
// import 'package:gap/gap.dart';
// import 'package:hiddify/core/localization/translations.dart';
// import 'package:hiddify/core/widget/adaptive_icon.dart';
// import 'package:hiddify/core/widget/animated_visibility.dart';
// import 'package:hiddify/core/widget/tip_card.dart';
// import 'package:hiddify/features/geo_asset/overview/geo_assets_overview_notifier.dart';
// import 'package:hiddify/features/geo_asset/widget/geo_asset_tile.dart';
// import 'package:umbrix/core/localization/translations.dart';
// import 'package:umbrix/core/widget/adaptive_icon.dart';
// import 'package:umbrix/core/widget/animated_visibility.dart';
// import 'package:umbrix/core/widget/tip_card.dart';
// import 'package:umbrix/features/geo_asset/overview/geo_assets_overview_notifier.dart';
// import 'package:umbrix/features/geo_asset/widget/geo_asset_tile.dart';
// import 'package:hooks_riverpod/hooks_riverpod.dart';
// import 'package:sliver_tools/sliver_tools.dart';

View File

@@ -1,12 +1,12 @@
// import 'package:dartx/dartx.dart';
// import 'package:flutter/material.dart';
// import 'package:hiddify/core/localization/translations.dart';
// import 'package:hiddify/core/model/failures.dart';
// import 'package:hiddify/core/widget/adaptive_icon.dart';
// import 'package:hiddify/features/geo_asset/model/geo_asset_entity.dart';
// import 'package:hiddify/features/geo_asset/model/geo_asset_failure.dart';
// import 'package:hiddify/features/geo_asset/notifier/geo_asset_notifier.dart';
// import 'package:hiddify/utils/utils.dart';
// import 'package:umbrix/core/localization/translations.dart';
// import 'package:umbrix/core/model/failures.dart';
// import 'package:umbrix/core/widget/adaptive_icon.dart';
// import 'package:umbrix/features/geo_asset/model/geo_asset_entity.dart';
// import 'package:umbrix/features/geo_asset/model/geo_asset_failure.dart';
// import 'package:umbrix/features/geo_asset/notifier/geo_asset_notifier.dart';
// import 'package:umbrix/utils/utils.dart';
// import 'package:hooks_riverpod/hooks_riverpod.dart';
// import 'package:humanizer/humanizer.dart';