From 714b78bd052b3d7445ba2c26a9f3c7817ed812bd Mon Sep 17 00:00:00 2001 From: veto9292 Date: Mon, 23 Feb 2026 12:46:29 +0330 Subject: [PATCH 01/11] fix: remove timezone_to_country package This package caused a black screen and prevented the app from running on the Windows (old) platform. --- linux/flutter/generated_plugin_registrant.cc | 4 ---- linux/flutter/generated_plugins.cmake | 1 - macos/Flutter/GeneratedPluginRegistrant.swift | 2 -- pubspec.lock | 24 ------------------- pubspec.yaml | 1 - .../flutter/generated_plugin_registrant.cc | 3 --- windows/flutter/generated_plugins.cmake | 1 - 7 files changed, 36 deletions(-) diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index ae51662bf..3893a3e73 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -7,7 +7,6 @@ #include "generated_plugin_registrant.h" #include -#include #include #include #include @@ -20,9 +19,6 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) dynamic_color_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "DynamicColorPlugin"); dynamic_color_plugin_register_with_registrar(dynamic_color_registrar); - g_autoptr(FlPluginRegistrar) flutter_timezone_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterTimezonePlugin"); - flutter_timezone_plugin_register_with_registrar(flutter_timezone_registrar); g_autoptr(FlPluginRegistrar) gtk_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "GtkPlugin"); gtk_plugin_register_with_registrar(gtk_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 07a9285f1..ebddfcdc7 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -4,7 +4,6 @@ list(APPEND FLUTTER_PLUGIN_LIST dynamic_color - flutter_timezone gtk screen_retriever_linux sentry_flutter diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 25cd81ac2..001b8d666 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -9,7 +9,6 @@ import app_links import device_info_plus import dynamic_color import file_picker -import flutter_timezone import in_app_review import mobile_scanner import network_info_plus @@ -29,7 +28,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) DynamicColorPlugin.register(with: registry.registrar(forPlugin: "DynamicColorPlugin")) FilePickerPlugin.register(with: registry.registrar(forPlugin: "FilePickerPlugin")) - FlutterTimezonePlugin.register(with: registry.registrar(forPlugin: "FlutterTimezonePlugin")) InAppReviewPlugin.register(with: registry.registrar(forPlugin: "InAppReviewPlugin")) MobileScannerPlugin.register(with: registry.registrar(forPlugin: "MobileScannerPlugin")) NetworkInfoPlusPlugin.register(with: registry.registrar(forPlugin: "NetworkInfoPlusPlugin")) diff --git a/pubspec.lock b/pubspec.lock index a21d568d5..5686c3446 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -721,14 +721,6 @@ packages: description: flutter source: sdk version: "0.0.0" - flutter_timezone: - dependency: transitive - description: - name: flutter_timezone - sha256: bc286cecb0366d88e6c4644e3962ebd1ce1d233abc658eb1e0cd803389f84b64 - url: "https://pub.dev" - source: hosted - version: "4.1.0" flutter_typeahead: dependency: "direct main" description: @@ -1892,22 +1884,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.5" - timezone: - dependency: transitive - description: - name: timezone - sha256: ffc9d5f4d1193534ef051f9254063fa53d588609418c84299956c3db9383587d - url: "https://pub.dev" - source: hosted - version: "0.10.0" - timezone_to_country: - dependency: "direct main" - description: - name: timezone_to_country - sha256: c96ffcfbd92f56c1727c18166a73bc6973e47d0516a6989148f219414682948e - url: "https://pub.dev" - source: hosted - version: "3.0.0" timing: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 70a518a6f..1f1d0953e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -85,7 +85,6 @@ dependencies: cupertino_http: ^2.0.1 dart_mappable: ^4.2.1 fluentui_system_icons: ^1.1.229 - timezone_to_country: ^3.0.0 json_path: ^0.7.1 # permission_handler: ^11.3.0 # is not compatible with windows #flutter_easy_permission: ^1.1.2 diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 93cc86637..30d74013f 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -8,7 +8,6 @@ #include #include -#include #include #include #include @@ -23,8 +22,6 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("AppLinksPluginCApi")); DynamicColorPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("DynamicColorPluginCApi")); - FlutterTimezonePluginCApiRegisterWithRegistrar( - registry->GetRegistrarForPlugin("FlutterTimezonePluginCApi")); ScreenRetrieverWindowsPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("ScreenRetrieverWindowsPluginCApi")); SentryFlutterPluginRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index b6f557c31..fa47a18d0 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -5,7 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST app_links dynamic_color - flutter_timezone screen_retriever_windows sentry_flutter share_plus From b02862591c1927aedb47d9dc8af3ab03bf2eb836 Mon Sep 17 00:00:00 2001 From: veto9292 Date: Mon, 23 Feb 2026 12:46:52 +0330 Subject: [PATCH 02/11] feat: implement region detection based on timezone and locale --- lib/features/intro/widget/intro_page.dart | 186 +++++++++++++++++++++- 1 file changed, 182 insertions(+), 4 deletions(-) diff --git a/lib/features/intro/widget/intro_page.dart b/lib/features/intro/widget/intro_page.dart index 53dc8254c..568a215f7 100644 --- a/lib/features/intro/widget/intro_page.dart +++ b/lib/features/intro/widget/intro_page.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:io'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; @@ -17,7 +18,6 @@ import 'package:hiddify/features/settings/data/config_option_repository.dart'; import 'package:hiddify/gen/assets.gen.dart'; import 'package:hiddify/utils/utils.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:timezone_to_country/timezone_to_country.dart'; class IntroPage extends HookConsumerWidget with PresLogger { const IntroPage({super.key}); @@ -182,7 +182,7 @@ class IntroPage extends HookConsumerWidget with PresLogger { Future autoSelectRegion(WidgetRef ref) async { try { - final countryCode = await TimeZoneToCountry.getLocalCountryCode(); + final countryCode = RegionDetector.detect(); final regionLocale = _getRegionLocale(countryCode); loggy.debug('Timezone Region: ${regionLocale.region} Locale: ${regionLocale.locale}'); await ref.read(ConfigOptions.region.notifier).update(regionLocale.region); @@ -227,9 +227,9 @@ class IntroPage extends HookConsumerWidget with PresLogger { case "AF": return RegionLocale(Region.af, AppLocale.fa); case "BR": - return RegionLocale(Region.other, AppLocale.ptBr); + return RegionLocale(Region.br, AppLocale.ptBr); case "TR": - return RegionLocale(Region.other, AppLocale.tr); + return RegionLocale(Region.tr, AppLocale.tr); default: return RegionLocale(Region.other, AppLocale.en); } @@ -242,3 +242,181 @@ class RegionLocale { RegionLocale(this.region, this.locale); } + +class RegionDetector { + /// Returns: 'IR' | 'AF' | 'CN' | 'TR' | 'RU' | 'BR' | 'US' + static String detect() { + final now = DateTime.now(); + final offset = now.timeZoneOffset.inMinutes; + final tz = now.timeZoneName.toLowerCase().trim(); + + if (offset == 210) return 'IR'; + + if (offset == 270) { + final (_, country) = _parseLocale(); + return country == 'IR' ? 'IR' : 'AF'; + } + + final fromName = _fromTzName(tz, offset); + if (fromName != null) return fromName; + + final candidates = _candidatesForOffset(offset); + if (candidates.isEmpty) return 'US'; + + return _resolveByLocale(candidates); + } + + static String? _fromTzName(String tz, int offset) { + if (tz.contains('/')) { + final city = tz.split('/').last.replaceAll(' ', '_'); + final r = _ianaCities[city]; + if (r != null) return r; + } + + if (tz == 'irst' || tz == 'irdt' || tz.contains('iran')) return 'IR'; + + if (tz == 'aft' || tz.contains('afghanistan')) return 'AF'; + + if (tz == 'trt' || tz.contains('turkey') || tz.contains('istanbul')) { + return 'TR'; + } + + if (tz.contains('china') || tz.contains('beijing')) return 'CN'; + if (tz == 'cst' && offset == 480) return 'CN'; + + if (_matchesRussiaTz(tz)) return 'RU'; + + if (_matchesBrazilTz(tz)) return 'BR'; + + return null; + } + + static bool _matchesRussiaTz(String tz) { + if (tz.contains('russia') || tz.contains('moscow')) return true; + + const abbrs = {'msk', 'yekt', 'omst', 'krat', 'irkt', 'yakt', 'vlat', 'magt', 'pett', 'sakt', 'sret'}; + if (abbrs.contains(tz)) return true; + + const winKeys = [ + 'ekaterinburg', + 'kaliningrad', + 'yakutsk', + 'vladivostok', + 'magadan', + 'sakhalin', + 'kamchatka', + 'astrakhan', + 'saratov', + 'volgograd', + 'altai', + 'tomsk', + 'transbaikal', + 'n. central asia', + 'north asia', + ]; + return winKeys.any(tz.contains); + } + + static bool _matchesBrazilTz(String tz) { + if (tz == 'brt' || tz == 'brst') return true; + if (tz.contains('brazil') || tz.contains('brasilia')) return true; + + const winKeys = ['e. south america', 'central brazilian', 'tocantins', 'bahia']; + return winKeys.any(tz.contains); + } + + static Set _candidatesForOffset(int offset) { + final c = {}; + + if (offset == 180) c.add('TR'); + + if (offset == 480) c.add('CN'); + + if (_ruOffsets.contains(offset)) c.add('RU'); + + if (_brOffsets.contains(offset)) c.add('BR'); + + return c; + } + + static const _ruOffsets = {120, 180, 240, 300, 360, 420, 480, 540, 600, 660, 720}; + + static const _brOffsets = {-120, -180, -240, -300}; + + static String _resolveByLocale(Set candidates) { + final (lang, country) = _parseLocale(); + + if (country != null && candidates.contains(country)) { + return country; + } + + final regionFromLang = _langToRegion[lang]; + if (regionFromLang != null && candidates.contains(regionFromLang)) { + return regionFromLang; + } + + return 'US'; + } + + static (String, String?) _parseLocale() { + try { + final parts = Platform.localeName.split(RegExp(r'[_\-.]')); + final lang = parts.first.toLowerCase(); + + String? country; + for (final p in parts.skip(1)) { + if (p.length == 2) { + country = p.toUpperCase(); + break; + } + } + + return (lang, country); + } catch (_) { + return ('en', null); + } + } + + static const _langToRegion = {'fa': 'IR', 'ps': 'AF', 'tr': 'TR', 'zh': 'CN', 'ru': 'RU', 'pt': 'BR'}; + + static const _ianaCities = { + 'tehran': 'IR', + 'kabul': 'AF', + 'istanbul': 'TR', + 'shanghai': 'CN', + 'chongqing': 'CN', + 'urumqi': 'CN', + 'harbin': 'CN', + 'moscow': 'RU', + 'kaliningrad': 'RU', + 'samara': 'RU', + 'yekaterinburg': 'RU', + 'omsk': 'RU', + 'novosibirsk': 'RU', + 'barnaul': 'RU', + 'tomsk': 'RU', + 'krasnoyarsk': 'RU', + 'irkutsk': 'RU', + 'chita': 'RU', + 'yakutsk': 'RU', + 'vladivostok': 'RU', + 'magadan': 'RU', + 'sakhalin': 'RU', + 'kamchatka': 'RU', + 'anadyr': 'RU', + 'volgograd': 'RU', + 'saratov': 'RU', + 'astrakhan': 'RU', + 'sao_paulo': 'BR', + 'fortaleza': 'BR', + 'recife': 'BR', + 'manaus': 'BR', + 'belem': 'BR', + 'cuiaba': 'BR', + 'bahia': 'BR', + 'rio_branco': 'BR', + 'noronha': 'BR', + 'porto_velho': 'BR', + 'campo_grande': 'BR', + }; +} From 126cb1a6d7b24e8d5e1f6899b364ee794ebfbe58 Mon Sep 17 00:00:00 2001 From: veto9292 Date: Mon, 23 Feb 2026 14:04:02 +0330 Subject: [PATCH 03/11] fix: resolve shared_preferences conflict between portable and exe formats on Windows --- lib/core/preferences/preferences_provider.dart | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/core/preferences/preferences_provider.dart b/lib/core/preferences/preferences_provider.dart index 20e7053df..bded75abc 100644 --- a/lib/core/preferences/preferences_provider.dart +++ b/lib/core/preferences/preferences_provider.dart @@ -1,5 +1,7 @@ import 'dart:io'; +import 'package:hiddify/core/model/environment.dart'; +import 'package:hiddify/utils/platform_utils.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:loggy/loggy.dart'; import 'package:path/path.dart' as p; @@ -16,6 +18,7 @@ Future sharedPreferences(Ref ref) async { logger.debug("initializing preferences"); try { + if (PlatformUtils.isWindows && Environment.isPortable) SharedPreferences.setPrefix('portable.'); sharedPreferences = await SharedPreferences.getInstance(); } catch (e) { logger.error("error initializing preferences", e); From a1d24aff8352802ac5cccce70c8f1236fc897940 Mon Sep 17 00:00:00 2001 From: veto9292 Date: Tue, 24 Feb 2026 01:33:31 +0330 Subject: [PATCH 04/11] fix: delete bundled libstdc++ for Arch Linux compatibility in AppImage build --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index 949363f91..1a3575e0b 100644 --- a/Makefile +++ b/Makefile @@ -388,6 +388,8 @@ linux-appimage-release: sed -i '/^\[Desktop Entry\]/a StartupWMClass=app.hiddify.com' "squashfs-root/hiddify.desktop"; \ $(BLUE)Removing old AppImage$(DONE); \ rm *.AppImage; \ + $(BLUE)Deleting bundled libstdc++ to fix Arch Linux compatibility...$(DONE); \ + find squashfs-root/usr/lib -name "libstdc++.so.6" -delete; \ $(BLUE)Rebuilding AppImage$(DONE); \ ARCH=x86_64 appimagetool --no-appstream squashfs-root Hiddify.AppImage > /dev/null; \ $(BLUE)Cleaning up squashfs$(DONE); \ From 2fd740bcb2a19f712e2903e7578a578259c46aa5 Mon Sep 17 00:00:00 2001 From: veto9292 Date: Tue, 24 Feb 2026 01:33:58 +0330 Subject: [PATCH 05/11] fix: update linux-prepare target to use linux-amd64-libs --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 1a3575e0b..c1b01fe8f 100644 --- a/Makefile +++ b/Makefile @@ -92,7 +92,7 @@ ios-prepare: common-prepare ios-libs cd ios; pod repo update; pod install;echo "done ios prepare" macos-prepare: common-prepare macos-libs -linux-prepare: common-prepare linux-libs +linux-prepare: common-prepare linux-amd64-libs linux-amd64-prepare: common-prepare linux-amd64-libs From a138aba0e2d15101a574048126776e323edbe9c8 Mon Sep 17 00:00:00 2001 From: veto9292 Date: Tue, 24 Feb 2026 01:34:18 +0330 Subject: [PATCH 06/11] fix: update linux-appimage-release to copy instead of move Hiddify.AppImage --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index c1b01fe8f..8f31a7f1d 100644 --- a/Makefile +++ b/Makefile @@ -398,8 +398,8 @@ linux-appimage-release: PKG_DIR_NAME="hiddify-linux-appimage"; \ $(BLUE)Creating dir: $$PKG_DIR_NAME$(DONE); \ mkdir -p "$$PKG_DIR_NAME"; \ - $(BLUE)Moving and Renaming to Hiddify.AppImage$(DONE); \ - mv "Hiddify.AppImage" "$$PKG_DIR_NAME/Hiddify.AppImage"; \ + $(BLUE)Moving Hiddify.AppImage$(DONE); \ + cp -p "Hiddify.AppImage" "$$PKG_DIR_NAME/Hiddify.AppImage"; \ $(BLUE)Creating Portable Home directory$(DONE); \ mkdir -p "$$PKG_DIR_NAME/Hiddify.AppImage.home"; \ $(BLUE)Compressing to .tar.gz$(DONE); \ From 3e9b7a7c980b9de4d4445f664cca17861a4c919f Mon Sep 17 00:00:00 2001 From: veto9292 Date: Tue, 24 Feb 2026 02:28:49 +0330 Subject: [PATCH 07/11] feat: add raw AppImage support for linux --- .github/workflows/build.yml | 42 +++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a5ffc68f5..c8583e165 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,6 +20,7 @@ env: UPLOAD_ARTIFACT: "${{ inputs.upload-artifact }}" TAG_NAME: "${{ inputs.tag-name }}" TARGET_NAME_gz: "Hiddify-Linux-x64-AppImage.tar" + TARGET_NAME_AppImage: "Hiddify-Linux-x64-AppImage" TARGET_NAME_deb: "Hiddify-Debian-x64" # TARGET_NAME_rpm: "Hiddify-rpm-x64" TARGET_NAME_apk: "Hiddify-Android" @@ -64,18 +65,23 @@ jobs: fail-fast: false matrix: include: - # - platform: android-apk - # os: ubuntu-latest - # targets: apk + - platform: android-apk + os: ubuntu-latest + targets: apk - platform: android-aab os: ubuntu-latest targets: aab - # - platform: windows - # os: windows-latest - # aarch: amd64 - # targets: exe,msix,zip + - platform: windows + os: windows-latest + aarch: amd64 + targets: exe,msix,zip + + - platform: linux + os: ubuntu-22.04 + aarch: amd64 + targets: deb,gz,AppImage # - platform: linux-amd64 # os: ubuntu-22.04 @@ -97,10 +103,10 @@ jobs: # aarch: arm64 # targets: deb,gz - # - platform: macos - # os: macos-15 - # aarch: universal - # targets: dmg,pkg + - platform: macos + os: macos-15 + aarch: universal + targets: dmg,pkg # - platform: ios # os: macos-15 @@ -133,21 +139,21 @@ jobs: - - name: Setup Flutter for arm64 - if: ${{ startsWith(matrix.platform,'linux-arm64') }} - uses: hurelhuyag/flutter-arm64-action@HEAD - with: - channel: 'stable' - flutter-version: ${{ env.FLUTTER_VERSION }} + # - name: Setup Flutter for arm64 + # if: ${{ startsWith(matrix.platform,'linux-arm64') }} + # uses: hurelhuyag/flutter-arm64-action@HEAD + # with: + # channel: 'stable' + # flutter-version: ${{ env.FLUTTER_VERSION }} - name: Setup Flutter - if: ${{ !startsWith(matrix.platform, 'linux-arm64') }} uses: subosito/flutter-action@v2.21.0 #issue with 2.13 with: flutter-version: ${{ env.FLUTTER_VERSION }} # flutter-version-file: pubspec.yaml channel: 'stable' cache: true + - name: Clean up disk space if: startsWith(matrix.platform,'android') run: | From 890a092c58771db3df820d0710a47f21f25bd303 Mon Sep 17 00:00:00 2001 From: veto9292 Date: Tue, 24 Feb 2026 03:50:43 +0330 Subject: [PATCH 08/11] feat: removing country flag from regions text --- assets/translations/ar.i18n.json | 14 +++++++------- assets/translations/en.i18n.json | 14 +++++++------- assets/translations/es.i18n.json | 14 +++++++------- assets/translations/fa.i18n.json | 14 +++++++------- assets/translations/fr.i18n.json | 14 +++++++------- assets/translations/id.i18n.json | 14 +++++++------- assets/translations/pt-BR.i18n.json | 14 +++++++------- assets/translations/ru.i18n.json | 14 +++++++------- assets/translations/tr.i18n.json | 14 +++++++------- assets/translations/zh-CN.i18n.json | 14 +++++++------- assets/translations/zh-TW.i18n.json | 14 +++++++------- 11 files changed, 77 insertions(+), 77 deletions(-) diff --git a/assets/translations/ar.i18n.json b/assets/translations/ar.i18n.json index 8262298cb..05b751dd7 100644 --- a/assets/translations/ar.i18n.json +++ b/assets/translations/ar.i18n.json @@ -279,13 +279,13 @@ }, "region": "المنطقة", "regions": { - "ir": "إيران (ir) 🇮🇷", - "cn": "الصين (cn) 🇨🇳", - "ru": "روسيا (ru) 🇷🇺", - "af": "أفغانستان (af) 🇦🇫", - "id": "إندونيسيا (id) 🇮🇩", - "tr": "تركيا (tr) 🇹🇷", - "br": "البرازيل (br) 🇧🇷", + "ir": "إيران (ir)", + "cn": "الصين (cn)", + "ru": "روسيا (ru)", + "af": "أفغانستان (af)", + "id": "إندونيسيا (id)", + "tr": "تركيا (tr)", + "br": "البرازيل (br)", "other": "أخرى" }, "balancerStrategy": { diff --git a/assets/translations/en.i18n.json b/assets/translations/en.i18n.json index 206990504..07b3f341d 100644 --- a/assets/translations/en.i18n.json +++ b/assets/translations/en.i18n.json @@ -274,13 +274,13 @@ }, "region": "Region", "regions": { - "ir": "Iran (ir) 🇮🇷", - "cn": "China (cn) 🇨🇳", - "ru": "Russia (ru) 🇷🇺", - "af": "Afghanistan (af) 🇦🇫", - "id": "Indonesia (id) 🇮🇩", - "tr": "Türkiye (tr) 🇹🇷", - "br": "Brazil (br) 🇧🇷", + "ir": "Iran (ir)", + "cn": "China (cn)", + "ru": "Russia (ru)", + "af": "Afghanistan (af)", + "id": "Indonesia (id)", + "tr": "Türkiye (tr)", + "br": "Brazil (br)", "other": "Other" }, "balancerStrategy": { diff --git a/assets/translations/es.i18n.json b/assets/translations/es.i18n.json index 9274d41c5..9baa640b4 100644 --- a/assets/translations/es.i18n.json +++ b/assets/translations/es.i18n.json @@ -273,13 +273,13 @@ }, "region": "Región", "regions": { - "ir": "Irán (ir) 🇮🇷", - "cn": "China (cn) 🇨🇳", - "ru": "Rusia (ru) 🇷🇺", - "af": "Afganistán (af) 🇦🇫", - "id": "Indonesia (id) 🇮🇩", - "tr": "Turquía (tr) 🇹🇷", - "br": "Brasil (br) 🇧🇷", + "ir": "Irán (ir)", + "cn": "China (cn)", + "ru": "Rusia (ru)", + "af": "Afganistán (af)", + "id": "Indonesia (id)", + "tr": "Turquía (tr)", + "br": "Brasil (br)", "other": "Otro" }, "balancerStrategy": { diff --git a/assets/translations/fa.i18n.json b/assets/translations/fa.i18n.json index ec8de8e8f..f3f4729a7 100644 --- a/assets/translations/fa.i18n.json +++ b/assets/translations/fa.i18n.json @@ -273,13 +273,13 @@ }, "region": "منطقه", "regions": { - "ir": "ایران (ir) 🇮🇷", - "cn": "چین (cn) 🇨🇳", - "ru": "روسیه (ru) 🇷🇺", - "af": "افغانستان (af) 🇦🇫", - "id": "اندونزی (id) 🇮🇩", - "tr": "ترکیه (tr) 🇹🇷", - "br": "برزیل (br) 🇧🇷", + "ir": "ایران (ir)", + "cn": "چین (cn)", + "ru": "روسیه (ru)", + "af": "افغانستان (af)", + "id": "اندونزی (id)", + "tr": "ترکیه (tr)", + "br": "برزیل (br)", "other": "سایر" }, "balancerStrategy": { diff --git a/assets/translations/fr.i18n.json b/assets/translations/fr.i18n.json index 16a923726..29743ac19 100644 --- a/assets/translations/fr.i18n.json +++ b/assets/translations/fr.i18n.json @@ -273,13 +273,13 @@ }, "region": "Région", "regions": { - "ir": "Iran (ir) 🇮🇷", - "cn": "Chine (cn) 🇨🇳", - "ru": "Russie (ru) 🇷🇺", - "af": "Afghanistan (af) 🇦🇫", - "id": "Indonésie (id) 🇮🇩", - "tr": "Turquie (tr) 🇹🇷", - "br": "Brésil (br) 🇧🇷", + "ir": "Iran (ir)", + "cn": "Chine (cn)", + "ru": "Russie (ru)", + "af": "Afghanistan (af)", + "id": "Indonésie (id)", + "tr": "Turquie (tr)", + "br": "Brésil (br)", "other": "Autre" }, "balancerStrategy": { diff --git a/assets/translations/id.i18n.json b/assets/translations/id.i18n.json index 76402eff9..41b7ce1be 100644 --- a/assets/translations/id.i18n.json +++ b/assets/translations/id.i18n.json @@ -273,13 +273,13 @@ }, "region": "Wilayah", "regions": { - "ir": "Iran (ir) 🇮🇷", - "cn": "Tiongkok (cn) 🇨🇳", - "ru": "Rusia (ru) 🇷🇺", - "af": "Afghanistan (af) 🇦🇫", - "id": "Indonesia (id) 🇮🇩", - "tr": "Turki (tr) 🇹🇷", - "br": "Brasil (br) 🇧🇷", + "ir": "Iran (ir)", + "cn": "Tiongkok (cn)", + "ru": "Rusia (ru)", + "af": "Afghanistan (af)", + "id": "Indonesia (id)", + "tr": "Turki (tr)", + "br": "Brasil (br)", "other": "Lainnya" }, "balancerStrategy": { diff --git a/assets/translations/pt-BR.i18n.json b/assets/translations/pt-BR.i18n.json index 2558c01d8..c3f536bc6 100644 --- a/assets/translations/pt-BR.i18n.json +++ b/assets/translations/pt-BR.i18n.json @@ -273,13 +273,13 @@ }, "region": "Região", "regions": { - "ir": "Irã (ir) 🇮🇷", - "cn": "China (cn) 🇨🇳", - "ru": "Rússia (ru) 🇷🇺", - "af": "Afeganistão (af) 🇦🇫", - "id": "Indonésia (id) 🇮🇩", - "tr": "Turquia (tr) 🇹🇷", - "br": "Brasil (br) 🇧🇷", + "ir": "Irã (ir)", + "cn": "China (cn)", + "ru": "Rússia (ru)", + "af": "Afeganistão (af)", + "id": "Indonésia (id)", + "tr": "Turquia (tr)", + "br": "Brasil (br)", "other": "Outro" }, "balancerStrategy": { diff --git a/assets/translations/ru.i18n.json b/assets/translations/ru.i18n.json index ed798abef..a6adacbf6 100644 --- a/assets/translations/ru.i18n.json +++ b/assets/translations/ru.i18n.json @@ -277,13 +277,13 @@ }, "region": "Регион", "regions": { - "ir": "Иран (ir) 🇮🇷", - "cn": "Китай (cn) 🇨🇳", - "ru": "Россия (ru) 🇷🇺", - "af": "Афганистан (af) 🇦🇫", - "id": "Индонезия (id) 🇮🇩", - "tr": "Турция (tr) 🇹🇷", - "br": "Бразилия (br) 🇧🇷", + "ir": "Иран (ir)", + "cn": "Китай (cn)", + "ru": "Россия (ru)", + "af": "Афганистан (af)", + "id": "Индонезия (id)", + "tr": "Турция (tr)", + "br": "Бразилия (br)", "other": "Другой" }, "balancerStrategy": { diff --git a/assets/translations/tr.i18n.json b/assets/translations/tr.i18n.json index 9b20e38fc..6cf989195 100644 --- a/assets/translations/tr.i18n.json +++ b/assets/translations/tr.i18n.json @@ -273,13 +273,13 @@ }, "region": "Bölge", "regions": { - "ir": "İran (ir) 🇮🇷", - "cn": "Çin (cn) 🇨🇳", - "ru": "Rusya (ru) 🇷🇺", - "af": "Afganistan (af) 🇦🇫", - "id": "Endonezya (id) 🇮🇩", - "tr": "Türkiye (tr) 🇹🇷", - "br": "Brezilya (br) 🇧🇷", + "ir": "İran (ir)", + "cn": "Çin (cn)", + "ru": "Rusya (ru)", + "af": "Afganistan (af)", + "id": "Endonezya (id)", + "tr": "Türkiye (tr)", + "br": "Brezilya (br)", "other": "Diğer" }, "balancerStrategy": { diff --git a/assets/translations/zh-CN.i18n.json b/assets/translations/zh-CN.i18n.json index c1e1a97c9..35b357475 100644 --- a/assets/translations/zh-CN.i18n.json +++ b/assets/translations/zh-CN.i18n.json @@ -273,13 +273,13 @@ }, "region": "地区", "regions": { - "ir": "伊朗 (ir) 🇮🇷", - "cn": "中国 (cn) 🇨🇳", - "ru": "俄罗斯 (ru) 🇷🇺", - "af": "阿富汗 (af) 🇦🇫", - "id": "印度尼西亚 (id) 🇮🇩", - "tr": "土耳其 (tr) 🇹🇷", - "br": "巴西 (br) 🇧🇷", + "ir": "伊朗 (ir)", + "cn": "中国 (cn)", + "ru": "俄罗斯 (ru)", + "af": "阿富汗 (af)", + "id": "印度尼西亚 (id)", + "tr": "土耳其 (tr)", + "br": "巴西 (br)", "other": "其他" }, "balancerStrategy": { diff --git a/assets/translations/zh-TW.i18n.json b/assets/translations/zh-TW.i18n.json index 0f477738d..6ee0b0337 100644 --- a/assets/translations/zh-TW.i18n.json +++ b/assets/translations/zh-TW.i18n.json @@ -273,13 +273,13 @@ }, "region": "地區", "regions": { - "ir": "伊朗 (ir) 🇮🇷", - "cn": "中國 (cn) 🇨🇳", - "ru": "俄羅斯 (ru) 🇷🇺", - "af": "阿富汗 (af) 🇦🇫", - "id": "印尼 (id) 🇮🇩", - "tr": "土耳其 (tr) 🇹🇷", - "br": "巴西 (br) 🇧🇷", + "ir": "伊朗 (ir)", + "cn": "中國 (cn)", + "ru": "俄羅斯 (ru)", + "af": "阿富汗 (af)", + "id": "印尼 (id)", + "tr": "土耳其 (tr)", + "br": "巴西 (br)", "other": "其他" }, "balancerStrategy": { From 1343eff469e2fec999ddd0b9ff0465c720996930 Mon Sep 17 00:00:00 2001 From: veto9292 Date: Tue, 24 Feb 2026 03:52:24 +0330 Subject: [PATCH 09/11] fix: set ir flag to shir --- lib/core/router/dialog/dialog_notifier.dart | 16 +++++---- .../router/dialog/widgets/region_dialog.dart | 21 ----------- .../dialog/widgets/setting_picker_dialog.dart | 24 +++++++------ lib/features/common/general_pref_tiles.dart | 36 ------------------- lib/features/intro/widget/intro_page.dart | 14 +++++++- .../overview/sections/route_options_page.dart | 1 + .../settings/widget/preference_tile.dart | 3 ++ 7 files changed, 40 insertions(+), 75 deletions(-) delete mode 100644 lib/core/router/dialog/widgets/region_dialog.dart diff --git a/lib/core/router/dialog/dialog_notifier.dart b/lib/core/router/dialog/dialog_notifier.dart index eb19af3d7..c785e3034 100644 --- a/lib/core/router/dialog/dialog_notifier.dart +++ b/lib/core/router/dialog/dialog_notifier.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:hiddify/core/model/region.dart'; import 'package:hiddify/core/preferences/actions_at_closing.dart'; import 'package:hiddify/core/router/dialog/widgets/action_at_closing_dialog.dart'; import 'package:hiddify/core/router/dialog/widgets/confirmation_dialog.dart'; @@ -10,7 +9,6 @@ import 'package:hiddify/core/router/dialog/widgets/new_version_dialog.dart'; import 'package:hiddify/core/router/dialog/widgets/no_active_profile_dialog.dart'; import 'package:hiddify/core/router/dialog/widgets/ok_dialog.dart'; import 'package:hiddify/core/router/dialog/widgets/proxy_info_dialog.dart'; -import 'package:hiddify/core/router/dialog/widgets/region_dialog.dart'; import 'package:hiddify/core/router/dialog/widgets/save_dialog.dart'; import 'package:hiddify/core/router/dialog/widgets/setting_checkbox_dialog.dart'; import 'package:hiddify/core/router/dialog/widgets/setting_input_dialog.dart'; @@ -112,10 +110,6 @@ class DialogNotifier extends _$DialogNotifier { false; } - Future showRegion({required Region selected}) async { - return await _show(RegionDialog(selected: selected)); - } - Future showActionAtClosing({required ActionsAtClosing selected}) async { return await _show(ActionsAtClosingDialog(selected: selected)); } @@ -216,13 +210,21 @@ class DialogNotifier extends _$DialogNotifier { Future showSettingPicker({ required String title, + bool showFlag = false, required T selected, required List options, required String Function(T e) getTitle, VoidCallback? onReset, }) async { return await _show( - SettingPickerDialog(title: title, selected: selected, options: options, getTitle: getTitle, onReset: onReset), + SettingPickerDialog( + title: title, + showFlag: showFlag, + selected: selected, + options: options, + getTitle: getTitle, + onReset: onReset, + ), ); } diff --git a/lib/core/router/dialog/widgets/region_dialog.dart b/lib/core/router/dialog/widgets/region_dialog.dart deleted file mode 100644 index 7b57984dc..000000000 --- a/lib/core/router/dialog/widgets/region_dialog.dart +++ /dev/null @@ -1,21 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:go_router/go_router.dart'; -import 'package:hiddify/core/localization/translations.dart'; -import 'package:hiddify/core/model/region.dart'; -import 'package:hooks_riverpod/hooks_riverpod.dart'; - -class RegionDialog extends HookConsumerWidget { - const RegionDialog({super.key, required this.selected}); - - final Region selected; - @override - Widget build(BuildContext context, WidgetRef ref) { - final t = ref.watch(translationsProvider).requireValue; - return SimpleDialog( - title: Text(t.pages.settings.routing.region), - children: Region.values - .map((e) => RadioListTile(title: Text(e.present(t)), value: e, groupValue: selected, onChanged: context.pop)) - .toList(), - ); - } -} diff --git a/lib/core/router/dialog/widgets/setting_picker_dialog.dart b/lib/core/router/dialog/widgets/setting_picker_dialog.dart index 5e315c968..dd9bd0569 100644 --- a/lib/core/router/dialog/widgets/setting_picker_dialog.dart +++ b/lib/core/router/dialog/widgets/setting_picker_dialog.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:hiddify/core/localization/translations.dart'; +import 'package:hiddify/features/proxy/active/ip_widget.dart'; import 'package:hiddify/utils/custom_loggers.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; @@ -8,6 +9,7 @@ class SettingPickerDialog extends HookConsumerWidget with PresLogger { const SettingPickerDialog({ super.key, required this.title, + this.showFlag = false, required this.selected, required this.options, required this.getTitle, @@ -15,6 +17,7 @@ class SettingPickerDialog extends HookConsumerWidget with PresLogger { }); final String title; + final bool showFlag; final T selected; final List options; final String Function(T e) getTitle; @@ -29,16 +32,17 @@ class SettingPickerDialog extends HookConsumerWidget with PresLogger { content: SingleChildScrollView( child: Column( mainAxisSize: MainAxisSize.min, - children: options - .map( - (e) => RadioListTile( - title: Text(getTitle(e)), - value: e, - groupValue: selected, - onChanged: (value) => context.pop(e), - ), - ) - .toList(), + children: options.map((e) { + final title = getTitle(e); + final countryCode = title.substring(title.length - 3, title.length - 1); + return RadioListTile( + title: Text(title), + secondary: showFlag ? IPCountryFlag(countryCode: countryCode, size: 32) : null, + value: e, + groupValue: selected, + onChanged: (value) => context.pop(e), + ); + }).toList(), ), ), actions: [ diff --git a/lib/features/common/general_pref_tiles.dart b/lib/features/common/general_pref_tiles.dart index e58fa3696..f130b80cf 100644 --- a/lib/features/common/general_pref_tiles.dart +++ b/lib/features/common/general_pref_tiles.dart @@ -7,7 +7,6 @@ import 'package:hiddify/core/preferences/general_preferences.dart'; import 'package:hiddify/core/router/dialog/dialog_notifier.dart'; import 'package:hiddify/core/theme/app_theme_mode.dart'; import 'package:hiddify/core/theme/theme_preferences.dart'; -import 'package:hiddify/features/settings/data/config_option_repository.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; class LocalePrefTile extends ConsumerWidget { @@ -40,41 +39,6 @@ class LocalePrefTile extends ConsumerWidget { } } -class RegionPrefTile extends ConsumerWidget { - const RegionPrefTile({super.key}); - - @override - Widget build(BuildContext context, WidgetRef ref) { - final t = ref.watch(translationsProvider).requireValue; - - final region = ref.watch(ConfigOptions.region); - - return ListTile( - title: Text(t.pages.settings.routing.region), - subtitle: Text(region.present(t), style: Theme.of(context).textTheme.bodySmall), - leading: const Icon(Icons.place_rounded), - onTap: () async { - final selectedRegion = await ref.read(dialogNotifierProvider.notifier).showRegion(selected: region); - if (selectedRegion != null) { - // await ref.read(Preferences.region.notifier).update(selectedRegion); - - await ref.watch(ConfigOptions.region.notifier).update(selectedRegion); - - await ref.watch(ConfigOptions.directDnsAddress.notifier).reset(); - - // await ref.read(configOptionNotifierProvider.notifier).build(); - // await ref.watch(ConfigOptions.resolveDestination.notifier).update(!ref.watch(ConfigOptions.resolveDestination.notifier).raw()); - //for reload config - // final tmp = ref.watch(ConfigOptions.resolveDestination.notifier).raw(); - // await ref.watch(ConfigOptions.resolveDestination.notifier).update(!tmp); - // await ref.watch(ConfigOptions.resolveDestination.notifier).update(tmp); - //TODO: fix it - } - }, - ); - } -} - class EnableAnalyticsPrefTile extends ConsumerWidget { const EnableAnalyticsPrefTile({super.key, this.onChanged}); diff --git a/lib/features/intro/widget/intro_page.dart b/lib/features/intro/widget/intro_page.dart index 568a215f7..24917acc0 100644 --- a/lib/features/intro/widget/intro_page.dart +++ b/lib/features/intro/widget/intro_page.dart @@ -15,6 +15,7 @@ import 'package:hiddify/core/model/region.dart'; import 'package:hiddify/core/preferences/general_preferences.dart'; import 'package:hiddify/features/common/general_pref_tiles.dart'; import 'package:hiddify/features/settings/data/config_option_repository.dart'; +import 'package:hiddify/features/settings/widget/preference_tile.dart'; import 'package:hiddify/gen/assets.gen.dart'; import 'package:hiddify/utils/utils.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; @@ -94,7 +95,18 @@ class IntroPage extends HookConsumerWidget with PresLogger { ), const Gap(24), const LocalePrefTile(), - const RegionPrefTile(), + ChoicePreferenceWidget( + selected: ref.watch(ConfigOptions.region), + preferences: ref.watch(ConfigOptions.region.notifier), + choices: Region.values, + title: t.pages.settings.routing.region, + showFlag: true, + icon: Icons.place_rounded, + presentChoice: (value) => value.present(t), + onChanged: (val) async { + await ref.read(ConfigOptions.directDnsAddress.notifier).reset(); + }, + ), const EnableAnalyticsPrefTile(), const Gap(24), Focus( diff --git a/lib/features/settings/overview/sections/route_options_page.dart b/lib/features/settings/overview/sections/route_options_page.dart index bd25208c1..89eb4e90d 100644 --- a/lib/features/settings/overview/sections/route_options_page.dart +++ b/lib/features/settings/overview/sections/route_options_page.dart @@ -46,6 +46,7 @@ class RouteOptionsPage extends HookConsumerWidget { preferences: ref.watch(ConfigOptions.region.notifier), choices: Region.values, title: t.pages.settings.routing.region, + showFlag: true, icon: Icons.place_rounded, presentChoice: (value) => value.present(t), onChanged: (val) async { diff --git a/lib/features/settings/widget/preference_tile.dart b/lib/features/settings/widget/preference_tile.dart index 33fa48aec..71ef8d256 100644 --- a/lib/features/settings/widget/preference_tile.dart +++ b/lib/features/settings/widget/preference_tile.dart @@ -71,6 +71,7 @@ class ChoicePreferenceWidget extends HookConsumerWidget { this.enabled = true, required this.choices, required this.title, + this.showFlag = false, this.icon, required this.presentChoice, this.validateInput, @@ -82,6 +83,7 @@ class ChoicePreferenceWidget extends HookConsumerWidget { final bool enabled; final List choices; final String title; + final bool showFlag; final IconData? icon; final String Function(T value) presentChoice; final bool Function(String value)? validateInput; @@ -98,6 +100,7 @@ class ChoicePreferenceWidget extends HookConsumerWidget { .read(dialogNotifierProvider.notifier) .showSettingPicker( title: title, + showFlag: showFlag, selected: selected, options: choices, getTitle: (e) => presentChoice(e), From 4962716ec4586d8097a9afa5b7f2d346e95018ba Mon Sep 17 00:00:00 2001 From: veto9292 Date: Tue, 24 Feb 2026 03:52:34 +0330 Subject: [PATCH 10/11] test ci --- macos/packaging/dmg/background.png | Bin 0 -> 39291 bytes macos/packaging/dmg/make_config.yaml | 5 +++++ 2 files changed, 5 insertions(+) create mode 100644 macos/packaging/dmg/background.png diff --git a/macos/packaging/dmg/background.png b/macos/packaging/dmg/background.png new file mode 100644 index 0000000000000000000000000000000000000000..12d841c802668edfbb2dff772d3bf9ed24d784fa GIT binary patch literal 39291 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

sXbKo&VRpThznGxwBln# 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

kvOD%h>l?~6+d9Xnl0TdwWshLTOY ziU(NcgKp(g$%Jxwk02+BR+;$RiJ(|w^qO58wEpVUdC;wTnwrK`D^+q@t&=Q9#Apck z(JSJu=siMPWvD4&Tg}zlX@g~LT4{JheO$Y(P}MJ|vwt^S6%wG1xoUE~!Fo#`c%t#A zLSCqngl7&Xk~TQN1I{tkYG+j1lE!pSLL)_%+F;8D=~&ZST1hGLd5tm&{(6w2%p=029vK7 z~Chb=lUPax1?pdSV^r8?yx!UdDIkp3GVROo$q;zH%SmYkE9BW*zPCwb^Ca7UtV&1 z;O#m5eR8nVu*OiNN4J;GY`=O3#Tn~VCX98x`iNl%jk>!jLo%AJ4l9T339~m@o|D$! zGwZD`b^v*8K4&Y}oX-4BHXIB5iMsvzHWS-_ZvIIXw6;+f&>hR)@v@JwgPzT-uK#p) z*$rkJzZgSIVYTFsN#pL-}L8K=uvDAZe({tT|rW8VDZ}HPSr3tVq}%;j7)sa z{`Mf3^2?)V7_U2D+9>@~fCR8)Mcl zC|${-(-0U`ZRlbYxhDxWaYfJU;kBuhFE@7M2ZZC{XW@M4U%30-2wxXU@hO|vjm>W> z1%@?W^$2l$Um*vyWmTx(xS%D0URvAxXTHdycCOnHD%>I)%pSywOIF<0LGuEFirk zEHRtt&CnClWimF1CKaOc`#s16l%GD2$;g0xrZ;4aIVKi?{y=fE=v9 literal 0 HcmV?d00001 diff --git a/macos/packaging/dmg/make_config.yaml b/macos/packaging/dmg/make_config.yaml index 4c545c513..adb7c45c9 100644 --- a/macos/packaging/dmg/make_config.yaml +++ b/macos/packaging/dmg/make_config.yaml @@ -1,4 +1,9 @@ title: Hiddify +background: "background.png" +window: + size: + width: 512 + height: 512 contents: - x: 448 y: 344 From 5029f1b2f7324210c176bc72f86a0d2d7f3de18e Mon Sep 17 00:00:00 2001 From: veto9292 Date: Wed, 25 Feb 2026 22:33:43 +0100 Subject: [PATCH 11/11] feat: replate dmg background image and & improve size and position --- macos/Podfile.lock | 51 ++++++++++++--------------- macos/packaging/dmg/background.png | Bin 39291 -> 12991 bytes macos/packaging/dmg/make_config.yaml | 12 +++---- 3 files changed, 29 insertions(+), 34 deletions(-) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index d6291b140..e76045733 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -10,12 +10,11 @@ PODS: - FlutterMacOS - file_picker (0.0.1): - FlutterMacOS - - flutter_timezone (0.1.0): - - FlutterMacOS - FlutterMacOS (1.0.0) - in_app_review (2.0.0): - FlutterMacOS - - mobile_scanner (6.0.2): + - mobile_scanner (7.0.0): + - Flutter - FlutterMacOS - network_info_plus (0.0.1): - FlutterMacOS @@ -70,10 +69,9 @@ DEPENDENCIES: - device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`) - dynamic_color (from `Flutter/ephemeral/.symlinks/plugins/dynamic_color/macos`) - file_picker (from `Flutter/ephemeral/.symlinks/plugins/file_picker/macos`) - - flutter_timezone (from `Flutter/ephemeral/.symlinks/plugins/flutter_timezone/macos`) - FlutterMacOS (from `Flutter/ephemeral`) - in_app_review (from `Flutter/ephemeral/.symlinks/plugins/in_app_review/macos`) - - mobile_scanner (from `Flutter/ephemeral/.symlinks/plugins/mobile_scanner/macos`) + - mobile_scanner (from `Flutter/ephemeral/.symlinks/plugins/mobile_scanner/darwin`) - network_info_plus (from `Flutter/ephemeral/.symlinks/plugins/network_info_plus/macos`) - objective_c (from `Flutter/ephemeral/.symlinks/plugins/objective_c/macos`) - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) @@ -103,14 +101,12 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/dynamic_color/macos file_picker: :path: Flutter/ephemeral/.symlinks/plugins/file_picker/macos - flutter_timezone: - :path: Flutter/ephemeral/.symlinks/plugins/flutter_timezone/macos FlutterMacOS: :path: Flutter/ephemeral in_app_review: :path: Flutter/ephemeral/.symlinks/plugins/in_app_review/macos mobile_scanner: - :path: Flutter/ephemeral/.symlinks/plugins/mobile_scanner/macos + :path: Flutter/ephemeral/.symlinks/plugins/mobile_scanner/darwin network_info_plus: :path: Flutter/ephemeral/.symlinks/plugins/network_info_plus/macos objective_c: @@ -137,29 +133,28 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos SPEC CHECKSUMS: - app_links: 86a57d95d4dec830373b8c85c21d1c59a4a5dc21 - cupertino_http: 947a233f40cfea55167a49f2facc18434ea117ba - device_info_plus: 1b14eed9bf95428983aed283a8d51cce3d8c4215 - dynamic_color: 2eaa27267de1ca20d879fbd6e01259773fb1670f - file_picker: e716a70a9fe5fd9e09ebc922d7541464289443af - flutter_timezone: 62400baa441155f2a4144188648f2ff861649747 + app_links: afe860c55c7ef176cea7fb630a2b7d7736de591d + cupertino_http: 94ac07f5ff090b8effa6c5e2c47871d48ab7c86c + device_info_plus: 4fb280989f669696856f8b129e4a5e3cd6c48f76 + dynamic_color: b820c000cc68df65e7ba7ff177cb98404ce56651 + file_picker: 7584aae6fa07a041af2b36a2655122d42f578c1a FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1 - in_app_review: a6a031b9acd03c7d103e341aa334adf2c493fb93 - mobile_scanner: 07710d6b9b2c220ae899de2d7ecf5d77ffa56333 - network_info_plus: 2cb02d8435635eae13b3b79279681985121cf30c - objective_c: e5f8194456e8fc943e034d1af00510a1bc29c067 - package_info_plus: 12f1c5c2cfe8727ca46cbd0b26677728972d9a5b - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - screen_retriever_macos: 776e0fa5d42c6163d2bf772d22478df4b302b161 + in_app_review: 0599bccaed5e02f6bed2b0d30d16f86b63ed8638 + mobile_scanner: 9157936403f5a0644ca3779a38ff8404c5434a93 + network_info_plus: 21d1cd6a015ccb2fdff06a1fbfa88d54b4e92f61 + objective_c: ec13431e45ba099cb734eb2829a5c1cd37986cba + package_info_plus: f0052d280d17aa382b932f399edf32507174e870 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + screen_retriever_macos: 452e51764a9e1cdb74b3c541238795849f21557f Sentry: da60d980b197a46db0b35ea12cb8f39af48d8854 - sentry_flutter: 2df8b0aab7e4aba81261c230cbea31c82a62dd1b - share_plus: 1fa619de8392a4398bfaf176d441853922614e89 - shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + sentry_flutter: 27892878729f42701297c628eb90e7c6529f3684 + share_plus: 510bf0af1a42cd602274b4629920c9649c52f4cc + shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 sqlite3: 3c950dc86011117c307eb0b28c4a7bb449dce9f1 - sqlite3_flutter_libs: cc304edcb8e1d8c595d1b08c7aeb46a47691d9db - tray_manager: 9064e219c56d75c476e46b9a21182087930baf90 - url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404 - window_manager: e25faf20d88283a0d46e7b1a759d07261ca27575 + sqlite3_flutter_libs: f8fc13346870e73fe35ebf6dbb997fbcd156b241 + tray_manager: a104b5c81b578d83f3c3d0f40a997c8b10810166 + url_launcher_macos: 0fba8ddabfc33ce0a9afe7c5fef5aab3d8d2d673 + window_manager: b729e31d38fb04905235df9ea896128991cad99e PODFILE CHECKSUM: a18d1ba050af210055cfb0cee8d759913f9ff3e3 diff --git a/macos/packaging/dmg/background.png b/macos/packaging/dmg/background.png index 12d841c802668edfbb2dff772d3bf9ed24d784fa..283c0385926a97912ee510d89a27c37d062a3e2d 100644 GIT binary patch literal 12991 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 T%=W_{8DMnZ>|T|=%fJ5*lt(JR literal 39291 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

sXbKo&VRpThznGxwBln# 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

kvOD%h>l?~6+d9Xnl0TdwWshLTOY ziU(NcgKp(g$%Jxwk02+BR+;$RiJ(|w^qO58wEpVUdC;wTnwrK`D^+q@t&=Q9#Apck z(JSJu=siMPWvD4&Tg}zlX@g~LT4{JheO$Y(P}MJ|vwt^S6%wG1xoUE~!Fo#`c%t#A zLSCqngl7&Xk~TQN1I{tkYG+j1lE!pSLL)_%+F;8D=~&ZST1hGLd5tm&{(6w2%p=029vK7 z~Chb=lUPax1?pdSV^r8?yx!UdDIkp3GVROo$q;zH%SmYkE9BW*zPCwb^Ca7UtV&1 z;O#m5eR8nVu*OiNN4J;GY`=O3#Tn~VCX98x`iNl%jk>!jLo%AJ4l9T339~m@o|D$! zGwZD`b^v*8K4&Y}oX-4BHXIB5iMsvzHWS-_ZvIIXw6;+f&>hR)@v@JwgPzT-uK#p) z*$rkJzZgSIVYTFsN#pL-}L8K=uvDAZe({tT|rW8VDZ}HPSr3tVq}%;j7)sa z{`Mf3^2?)V7_U2D+9>@~fCR8)Mcl zC|${-(-0U`ZRlbYxhDxWaYfJU;kBuhFE@7M2ZZC{XW@M4U%30-2wxXU@hO|vjm>W> z1%@?W^$2l$Um*vyWmTx(xS%D0URvAxXTHdycCOnHD%>I)%pSywOIF<0LGuEFirk zEHRtt&CnClWimF1CKaOc`#s16l%GD2$;g0xrZ;4aIVKi?{y=fE=v9 diff --git a/macos/packaging/dmg/make_config.yaml b/macos/packaging/dmg/make_config.yaml index adb7c45c9..17b4702dc 100644 --- a/macos/packaging/dmg/make_config.yaml +++ b/macos/packaging/dmg/make_config.yaml @@ -2,14 +2,14 @@ title: Hiddify background: "background.png" window: size: - width: 512 - height: 512 + width: 600 + height: 400 contents: - - x: 448 - y: 344 + - x: 440 + y: 230 type: link path: "/Applications" - - x: 192 - y: 344 + - x: 160 + y: 230 type: file path: Hiddify.app