Merge branch 'main' into main

This commit is contained in:
Hiddify
2024-03-19 08:54:35 +01:00
committed by GitHub
37 changed files with 556 additions and 415 deletions

View File

@@ -30,9 +30,9 @@ body:
- type: textarea
id: reproduce
attributes:
label: Reproduce the Bug
label: Minimal Reproducible Example (MRE)
description: |
Please tell us the steps to reproduce the bug.
Please tell us the steps to reproduce the bug. A [Minimal Reproducible Example (MRE)](https://stackoverflow.com/help/minimal-reproducible-example) is needed.
placeholder: |
1. Go to '...'
2. Click on '....'
@@ -78,6 +78,14 @@ body:
If applicable, add screenshots, screen recordings or additional context to help explain your problem.
validations:
required: false
- type: textarea
id: configs
attributes:
label: Application Config Options
description: Please copy and paste Application config
render: shell
- type: textarea
id: logs
attributes:

View File

@@ -1,21 +1,8 @@
<div align=center>
[![Release Downloads](https://img.shields.io/github/downloads/hiddify/hiddify-next/RELEASE_TAG/total?style=flat-square&logo=github)](https://img.shields.io/github/downloads/hiddify/hiddify-next/RELEASE_TAG/)
**Release Highlights:**
-
-
<details markdown=1 dir="rtl">
<summary>تغییرات اصلی به فارسی</summary>
-
-
-
</details>
</div>
**Download based on your OS:**
@@ -36,31 +23,36 @@
</tr>
</thead>
<tbody align=left>
<tr>
<td>iOS</td><td>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-iOS.ipa"><img src="https://img.shields.io/badge/IPA-Universal-c0c0c0.svg?logo=ios"></a>
</td>
</tr>
<tr>
<td>Android</td><td>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Android-arm64.apk"><img src="https://img.shields.io/badge/APK-ARMv8-168039.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Android-arm7.apk"><img src="https://img.shields.io/badge/APK-ARMv7-45bf55.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x64-96ed89.svg?logo=github"></a>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Android-arm64.apk"><img src="https://img.shields.io/badge/APK-ARMv8-168039.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Android-arm7.apk"><img src="https://img.shields.io/badge/APK-ARMv7-45bf55.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x64-96ed89.svg?logo=android"></a>
</td>
</tr>
<tr>
<td>Windows</td><td>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Windows-Setup-x64.Msix"><img src="https://img.shields.io/badge/OfficialSetup-x64-0078d7.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Windows-Setup-x64.exe"><img src="https://img.shields.io/badge/Setup-x64-2d7d9a.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Windows-Portable-x64.zip"><img src="https://img.shields.io/badge/Portable-x64-67b7d1.svg?logo=github"></a>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Windows-Setup-x64.Msix"><img src="https://img.shields.io/badge/OfficialSetup-x64-0078d7.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Windows-Setup-x64.exe"><img src="https://img.shields.io/badge/Setup-x64-2d7d9a.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Windows-Portable-x64.zip"><img src="https://img.shields.io/badge/Portable-x64-67b7d1.svg?logo=windows"></a>
</td>
</tr>
<tr>
<td>macOS (v10.15+)</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-MacOS.dmg"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-MacOS-Installer.pkg"><img src="https://img.shields.io/badge/PKG-Universal-bc544b.svg?logo=github" /></a></a></td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-MacOS.dmg"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=apple"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-MacOS-Installer.pkg"><img src="https://img.shields.io/badge/PKG-Universal-bc544b.svg?logo=apple" /></a></a></td>
</tr>
<tr>
<td>Linux</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Linux-x64.AppImage"><img src="https://img.shields.io/badge/AppImage-x64-f84e29.svg?logo=github"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Debian-x64.deb"><img src="https://img.shields.io/badge/DebPackage-x64-FF9966.svg?logo=github"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-rpm-x64.rpm"><img src="https://img.shields.io/badge/RpmPackage-x64-F1B42F.svg?logo=github"> </a></td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Linux-x64.AppImage"><img src="https://img.shields.io/badge/AppImage-x64-f84e29.svg?logo=linux"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-Debian-x64.deb"><img src="https://img.shields.io/badge/DebPackage-x64-FF9966.svg?logo=debian"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/download/RELEASE_TAG/Hiddify-rpm-x64.rpm"><img src="https://img.shields.io/badge/RpmPackage-x64-F1B42F.svg?logo=redhat"> </a></td>
</tr>
</tbody>
</table>

View File

@@ -36,15 +36,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# - uses: subosito/flutter-action@v2.12.0 #issue with 2.13
# with:
# flutter-version: ${{ env.FLUTTER_VERSION }}
# channel: 'stable'
# cache: true
# - name: Prepare
# run: make linux-prepare
# - name: Test
# run: flutter test
- uses: subosito/flutter-action@v2.12.0 #issue with 2.13
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: 'stable'
cache: true
- name: Prepare
run: make linux-prepare
- name: Test
run: flutter test
- name: make draftBuildCode
id: draftBuildCode
@@ -149,13 +149,13 @@ jobs:
[IO.File]::WriteAllBytes("windows\sign.pfx", [Convert]::FromBase64String("${{ secrets.WINDOWS_SIGNING_KEY }}"))
(Get-Content "windows\packaging\msix\make_config.yaml") -replace '^certificate_password:.*$', 'certificate_password: ${{ secrets.WINDOWS_SIGNING_PASSWORD }}' | Set-Content "windows\packaging\msix\make_config.yaml"
- name: Temporary disable Permission Handler for windows due to its issue in permission
if: ${{ startsWith(matrix.platform,'windows') }}
run: |
(Get-Content -Path "pubspec.yaml") -notmatch "permission_handler" | Set-Content -Path "pubspec.yaml"
(Get-Content -Path "lib\features\profile\add\add_profile_modal.dart") -notmatch "qr_code_scanner_screen" | Set-Content -Path "lib\features\profile\add\add_profile_modal.dart"
(Get-Content -Path lib\features\profile\add\add_profile_modal.dart) -replace 'await QRCodeScannerScreen\(\).open\(context\);', 'null;' | Set-Content -Path lib\features\profile\add\add_profile_modal.dart
Remove-Item -Path "lib\features\common\qr_code_scanner_screen.dart"
# - name: Temporary disable Permission Handler for windows due to its issue in permission
# if: ${{ startsWith(matrix.platform,'windows') }}
# run: |
# (Get-Content -Path "pubspec.yaml") -notmatch "permission_handler" | Set-Content -Path "pubspec.yaml"
# (Get-Content -Path "lib\features\profile\add\add_profile_modal.dart") -notmatch "qr_code_scanner_screen" | Set-Content -Path "lib\features\profile\add\add_profile_modal.dart"
# (Get-Content -Path lib\features\profile\add\add_profile_modal.dart) -replace 'await QRCodeScannerScreen\(\).open\(context\);', 'null;' | Set-Content -Path lib\features\profile\add\add_profile_modal.dart
# Remove-Item -Path "lib\features\common\qr_code_scanner_screen.dart"
@@ -368,8 +368,8 @@ jobs:
upload-to-testflight:
needs: [build]
# if: ${{ inputs.upload-artifact && inputs.tag-name != 'draft' }}
if: ${{ inputs.upload-artifact }}
if: ${{ inputs.upload-artifact && inputs.tag-name != 'draft' }}
#if: ${{ inputs.upload-artifact }}
runs-on: macOS-latest
timeout-minutes: 30
steps:

4
.vscode/launch.json vendored
View File

@@ -7,6 +7,8 @@
"type": "dart",
"flutterMode": "debug",
"program": "lib/main.dart",
// "args": ["-d","192.168.1.35:36463"]
},
{
"name": "Hiddify Dev Release",
@@ -36,7 +38,7 @@
"program": "lib/main.dart",
"args": [
"--app-id",
"com.hiddify.ios"
"app.hiddify.com"
],
"deviceId": "designed-for-ipad",
}

View File

@@ -75,30 +75,42 @@ Vless, Vmess, Reality, TUIC, Hysteria, SSH etc.
</thead>
<tbody align=left>
<tr>
<td>Android</td><td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm64.apk"><img src="https://img.shields.io/badge/APK-ARMv8-168039.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm7.apk"><img src="https://img.shields.io/badge/APK-ARMv7-45bf55.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x64-96ed89.svg?logo=github"></a>
<td>iOS</td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-iOS.ipa"><img src="https://img.shields.io/badge/IPA-Universal-c0c0c0.svg?logo=ios"></a>
</td>
</tr>
<tr>
<td>Android</td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm64.apk"><img src="https://img.shields.io/badge/APK-ARMv8-168039.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm7.apk"><img src="https://img.shields.io/badge/APK-ARMv7-45bf55.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x64-96ed89.svg?logo=android"></a>
</td>
</tr>
<tr>
<td>Windows</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.Msix"><img src="https://img.shields.io/badge/OfficialSetup-x64-0078d7.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.exe"><img src="https://img.shields.io/badge/Setup-x64-2d7d9a.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Portable-x64.zip"><img src="https://img.shields.io/badge/Portable-x64-67b7d1.svg?logo=github"></a>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.Msix"><img src="https://img.shields.io/badge/OfficialSetup-x64-0078d7.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.exe"><img src="https://img.shields.io/badge/Setup-x64-2d7d9a.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Portable-x64.zip"><img src="https://img.shields.io/badge/Portable-x64-67b7d1.svg?logo=windows"></a>
</td>
</tr>
<tr>
<td>macOS</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS.dmg"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS-Installer.pkg"><img src="https://img.shields.io/badge/PKG-Universal-bc544b.svg?logo=github" /></a></a></td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS.dmg"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=apple"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS-Installer.pkg"><img src="https://img.shields.io/badge/PKG-Universal-bc544b.svg?logo=apple" /></a>
</td>
</tr>
<tr>
<td>Linux</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Linux-x64.AppImage"><img src="https://img.shields.io/badge/AppImage-x64-f84e29.svg?logo=github"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Debian-x64.deb"><img src="https://img.shields.io/badge/DebPackage-x64-FF9966.svg?logo=github"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-rpm-x64.rpm"><img src="https://img.shields.io/badge/RpmPackage-x64-F1B42F.svg?logo=github"> </a></td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Linux-x64.AppImage"><img src="https://img.shields.io/badge/AppImage-x64-f84e29.svg?logo=linux"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Debian-x64.deb"><img src="https://img.shields.io/badge/DebPackage-x64-FF9966.svg?logo=debian"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-rpm-x64.rpm"><img src="https://img.shields.io/badge/RpmPackage-x64-F1B42F.svg?logo=redhat"> </a>
</td>
</tr>
</tbody>
</table>

View File

@@ -56,9 +56,14 @@ Vless, Vmess, Reality, TUIC, Hysteria, SSH, etc.
⭐ Configuração adequada para Irã, China, Rússia e outros países
📱 Disponível no [Google Play](https://play.google.com/store/apps/details?id=app.hiddify.com)
📱 Disponível nas lojas oficiais
## 🔗 Download
## 🛍️ Obtenha nas lojas
<a href="https://play.google.com/store/apps/details?id=app.hiddify.com"><img height=50px src="https://github.com/hiddify/hiddify-next/blob/main/docs/google-play-badge.png"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="https://apps.microsoft.com/detail/Hiddify/9pdfnl3qv2s5?mode=mini" target="_blank"><img height=50px src="https://github.com/hiddify/hiddify-next/assets/125398461/620750bb-4459-41b5-9f86-ba82119345b8" /></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
## 📥 Download direto
<div align=left>
<table>
@@ -69,28 +74,42 @@ Vless, Vmess, Reality, TUIC, Hysteria, SSH, etc.
</tr>
</thead>
<tbody align=left>
<tr>
<td>iOS</td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-iOS.ipa"><img src="https://img.shields.io/badge/IPA-Universal-c0c0c0.svg?logo=ios"></a>
</td>
</tr>
<tr>
<td>Android</td><td>
<a href="https://play.google.com/store/apps/details?id=app.hiddify.com"><img width=150px src="https://github.com/hiddify/hiddify-next/blob/main/docs/google-play-badge.png"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-arm64.apk"><img src="https://img.shields.io/badge/APK-ARMv8-168039.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-arm7.apk"><img src="https://img.shields.io/badge/APK-ARMv7-45bf55.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x64-96ed89.svg?logo=github"></a>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm64.apk"><img src="https://img.shields.io/badge/APK-ARMv8-168039.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm7.apk"><img src="https://img.shields.io/badge/APK-ARMv7-45bf55.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x64-96ed89.svg?logo=android"></a>
</td>
</tr>
<tr>
<td>Windows</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-windows-x64-setup.zip"><img src="https://img.shields.io/badge/Setup-x64-0078d7.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-windows-x64-portable.zip"><img src="https://img.shields.io/badge/Portable-x64-2d7d9a.svg?logo=github"></a>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.Msix"><img src="https://img.shields.io/badge/OfficialSetup-x64-0078d7.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.exe"><img src="https://img.shields.io/badge/Setup-x64-2d7d9a.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Portable-x64.zip"><img src="https://img.shields.io/badge/Portable-x64-67b7d1.svg?logo=windows"></a>
</td>
</tr>
<tr>
<td>macOS</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-macos-universal.zip"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=github"></a></td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS.dmg"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=apple"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS-Installer.pkg"><img src="https://img.shields.io/badge/PKG-Universal-bc544b.svg?logo=apple" /></a>
</td>
</tr>
<tr>
<td>Linux</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-linux-x64.zip"><img src="https://img.shields.io/badge/AppImage-x64-f84e29.svg?logo=github"> </a></td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Linux-x64.AppImage"><img src="https://img.shields.io/badge/AppImage-x64-f84e29.svg?logo=linux"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Debian-x64.deb"><img src="https://img.shields.io/badge/DebPackage-x64-FF9966.svg?logo=debian"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-rpm-x64.rpm"><img src="https://img.shields.io/badge/RpmPackage-x64-F1B42F.svg?logo=redhat"> </a>
</td>
</tr>
</tbody>
</table>

View File

@@ -50,9 +50,14 @@
⭐ 适用于伊朗、中国、俄罗斯或其他国家的配置
📱 可在 [Google Play](https://play.google.com/store/apps/details?id=app.hiddify.com) 上获取
📱 官方商店有售
## 🔗 下载
## 🛍️ 在商店购买
<a href="https://play.google.com/store/apps/details?id=app.hiddify.com"><img height=50px src="https://github.com/hiddify/hiddify-next/blob/main/docs/google-play-badge.png"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="https://apps.microsoft.com/detail/Hiddify/9pdfnl3qv2s5?mode=mini" target="_blank"><img height=50px src="https://github.com/hiddify/hiddify-next/assets/125398461/620750bb-4459-41b5-9f86-ba82119345b8" /></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
## 📥 直接下载
<div align=left>
<table>
@@ -64,27 +69,42 @@
</thead>
<tbody align=left>
<tr>
<td>Android</td><td>
<a href="https://play.google.com/store/apps/details?id=app.hiddify.com"><img width=150px src="https://github.com/hiddify/hiddify-next/blob/main/docs/google-play-badge.png"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-arm64.apk"><img src="https://img.shields.io/badge/APK-ARMv8-168039.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-arm7.apk"><img src="https://img.shields.io/badge/APK-ARMv7-45bf55.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x64-96ed89.svg?logo=github"></a>
<td>iOS</td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-iOS.ipa"><img src="https://img.shields.io/badge/IPA-Universal-c0c0c0.svg?logo=ios"></a>
</td>
</tr>
<tr>
<td>Android</td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm64.apk"><img src="https://img.shields.io/badge/APK-ARMv8-168039.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm7.apk"><img src="https://img.shields.io/badge/APK-ARMv7-45bf55.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x64-96ed89.svg?logo=android"></a>
</td>
</tr>
<tr>
<td>Windows</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-windows-x64-setup.zip"><img src="https://img.shields.io/badge/Setup-x64-0078d7.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-windows-x64-portable.zip"><img src="https://img.shields.io/badge/Portable-x64-2d7d9a.svg?logo=github"></a>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.Msix"><img src="https://img.shields.io/badge/OfficialSetup-x64-0078d7.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.exe"><img src="https://img.shields.io/badge/Setup-x64-2d7d9a.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Portable-x64.zip"><img src="https://img.shields.io/badge/Portable-x64-67b7d1.svg?logo=windows"></a>
</td>
</tr>
<tr>
<td>macOS</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-macos-universal.zip"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=github"></a></td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS.dmg"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=apple"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS-Installer.pkg"><img src="https://img.shields.io/badge/PKG-Universal-bc544b.svg?logo=apple" /></a>
</td>
</tr>
<tr>
<td>Linux</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-linux-x64.zip"><img src="https://img.shields.io/badge/AppImage-x64-f84e29.svg?logo=github"> </a></td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Linux-x64.AppImage"><img src="https://img.shields.io/badge/AppImage-x64-f84e29.svg?logo=linux"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Debian-x64.deb"><img src="https://img.shields.io/badge/DebPackage-x64-FF9966.svg?logo=debian"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-rpm-x64.rpm"><img src="https://img.shields.io/badge/RpmPackage-x64-F1B42F.svg?logo=redhat"> </a>
</td>
</tr>
</tbody>
</table>

View File

@@ -78,31 +78,42 @@ Vless, Vmess, Reality, TUIC, Hysteria, SSH, etc.
</tr>
</thead>
<tbody align=right>
<tr>
<td>iOS</td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-iOS.ipa"><img src="https://img.shields.io/badge/IPA-Universal-c0c0c0.svg?logo=ios"></a>
</td>
</tr>
<tr>
<td>اندروید</td><td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm64.apk"><img src="https://img.shields.io/badge/APK-ARMv8-168039.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm7.apk"><img src="https://img.shields.io/badge/APK-ARMv7-45bf55.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x64-96ed89.svg?logo=github"></a>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm64.apk"><img src="https://img.shields.io/badge/APK-ARMv8-168039.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm7.apk"><img src="https://img.shields.io/badge/APK-ARMv7-45bf55.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x64-96ed89.svg?logo=android"></a>
</td>
</tr>
<tr>
<td>ویندوز</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.Msix"><img src="https://img.shields.io/badge/OfficialSetup-x64-0078d7.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.exe"><img src="https://img.shields.io/badge/Setup-x64-2d7d9a.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Portable-x64.zip"><img src="https://img.shields.io/badge/Portable-x64-67b7d1.svg?logo=github"></a>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.Msix"><img src="https://img.shields.io/badge/OfficialSetup-x64-0078d7.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.exe"><img src="https://img.shields.io/badge/Setup-x64-2d7d9a.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Portable-x64.zip"><img src="https://img.shields.io/badge/Portable-x64-67b7d1.svg?logo=windows"></a>
</td>
</tr>
<tr>
<td>مک</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS.dmg"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS-Installer.pkg"><img src="https://img.shields.io/badge/PKG-Universal-bc544b.svg?logo=github" /></a></a></td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS.dmg"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=apple"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS-Installer.pkg"><img src="https://img.shields.io/badge/PKG-Universal-bc544b.svg?logo=apple" /></a>
</td>
</tr>
<tr>
<td>لینوکس</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Linux-x64.AppImage"><img src="https://img.shields.io/badge/AppImage-x64-f84e29.svg?logo=github"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Debian-x64.deb"><img src="https://img.shields.io/badge/DebPackage-x64-FF9966.svg?logo=github"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-rpm-x64.rpm"><img src="https://img.shields.io/badge/RpmPackage-x64-F1B42F.svg?logo=github"> </a></td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Linux-x64.AppImage"><img src="https://img.shields.io/badge/AppImage-x64-f84e29.svg?logo=linux"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Debian-x64.deb"><img src="https://img.shields.io/badge/DebPackage-x64-FF9966.svg?logo=debian"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-rpm-x64.rpm"><img src="https://img.shields.io/badge/RpmPackage-x64-F1B42F.svg?logo=redhat"> </a>
</td>
</tr>
</tbody>
</table>

View File

@@ -57,9 +57,14 @@ Vless、Vmess、Reality、TUIC、Hysteria、SSHなど。
⭐ イラン、中国、ロシア、その他の国に適した構成
📱 [Google Play](https://play.google.com/store/apps/details?id=app.hiddify.com) で入手可能
📱公式ストアで購入可能
## 🔗 ダウンロード
## 🛍️ 店舗で入手
<a href="https://play.google.com/store/apps/details?id=app.hiddify.com"><img height=50px src="https://github.com/hiddify/hiddify-next/blob/main/docs/google-play-badge.png"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="https://apps.microsoft.com/detail/Hiddify/9pdfnl3qv2s5?mode=mini" target="_blank"><img height=50px src="https://github.com/hiddify/hiddify-next/assets/125398461/620750bb-4459-41b5-9f86-ba82119345b8" /></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
## 📥 直接ダウンロード
<div align=left>
<table>
@@ -71,27 +76,42 @@ Vless、Vmess、Reality、TUIC、Hysteria、SSHなど。
</thead>
<tbody align=left>
<tr>
<td>Android</td><td>
<a href="https://play.google.com/store/apps/details?id=app.hiddify.com"><img width=150px src="https://github.com/hiddify/hiddify-next/blob/main/docs/google-play-badge.png"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-arm64.apk"><img src="https://img.shields.io/badge/APK-ARMv8-168039.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-arm7.apk"><img src="https://img.shields.io/badge/APK-ARMv7-45bf55.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x64-96ed89.svg?logo=github"></a>
<td>iOS</td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-iOS.ipa"><img src="https://img.shields.io/badge/IPA-Universal-c0c0c0.svg?logo=ios"></a>
</td>
</tr>
<tr>
<td>Android</td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm64.apk"><img src="https://img.shields.io/badge/APK-ARMv8-168039.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm7.apk"><img src="https://img.shields.io/badge/APK-ARMv7-45bf55.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x64-96ed89.svg?logo=android"></a>
</td>
</tr>
<tr>
<td>Windows</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-windows-x64-setup.zip"><img src="https://img.shields.io/badge/Setup-x64-0078d7.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-windows-x64-portable.zip"><img src="https://img.shields.io/badge/Portable-x64-2d7d9a.svg?logo=github"></a>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.Msix"><img src="https://img.shields.io/badge/OfficialSetup-x64-0078d7.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.exe"><img src="https://img.shields.io/badge/Setup-x64-2d7d9a.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Portable-x64.zip"><img src="https://img.shields.io/badge/Portable-x64-67b7d1.svg?logo=windows"></a>
</td>
</tr>
<tr>
<td>macOS</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-macos-universal.zip"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=github"></a></td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS.dmg"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=apple"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS-Installer.pkg"><img src="https://img.shields.io/badge/PKG-Universal-bc544b.svg?logo=apple" /></a>
</td>
</tr>
<tr>
<td>Linux</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-linux-x64.zip"><img src="https://img.shields.io/badge/AppImage-x64-f84e29.svg?logo=github"> </a></td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Linux-x64.AppImage"><img src="https://img.shields.io/badge/AppImage-x64-f84e29.svg?logo=linux"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Debian-x64.deb"><img src="https://img.shields.io/badge/DebPackage-x64-FF9966.svg?logo=debian"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-rpm-x64.rpm"><img src="https://img.shields.io/badge/RpmPackage-x64-F1B42F.svg?logo=redhat"> </a>
</td>
</tr>
</tbody>
</table>

View File

@@ -46,9 +46,14 @@
⭐ Подходящая конфигурация для Ирана, Китая, России и других стран.
📱 Доступно в [Google Play](https://play.google.com/store/apps/details?id=app.hiddify.com)
📱Доступно в официальных магазинах.
## 🔗 Скачать
## 🛍️ Приобретите в магазинах
<a href="https://play.google.com/store/apps/details?id=app.hiddify.com"><img height=50px src="https://github.com/hiddify/hiddify-next/blob/main/docs/google-play-badge.png"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="https://apps.microsoft.com/detail/Hiddify/9pdfnl3qv2s5?mode=mini" target="_blank"><img height=50px src="https://github.com/hiddify/hiddify-next/assets/125398461/620750bb-4459-41b5-9f86-ba82119345b8" /></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
## 📥 Прямая загрузка
<div align=left>
<table>
<thead align=left>
@@ -59,27 +64,42 @@
</thead>
<tbody align=left>
<tr>
<td>Android</td><td>
<a href="https://play.google.com/store/apps/details?id=app.hiddify.com"><img width=150px src="https://github.com/hiddify/hiddify-next/blob/main/docs/google-play-badge.png"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-arm64.apk"><img src="https://img.shields.io/badge/APK-ArmV8-168039.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-arm7.apk"><img src="https://img.shields.io/badge/APK-ArmV7-45bf55.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x86_64-96ed89.svg?logo=github"></a>
<td>iOS</td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-iOS.ipa"><img src="https://img.shields.io/badge/IPA-Universal-c0c0c0.svg?logo=ios"></a>
</td>
</tr>
<tr>
<td>Android</td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-universal.apk"><img src="https://img.shields.io/badge/APK-Universal-044d29.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm64.apk"><img src="https://img.shields.io/badge/APK-ARMv8-168039.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-arm7.apk"><img src="https://img.shields.io/badge/APK-ARMv7-45bf55.svg?logo=android"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Android-x86_64.apk"><img src="https://img.shields.io/badge/APK-x64-96ed89.svg?logo=android"></a>
</td>
</tr>
<tr>
<td>Windows</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-windows-x64-setup.zip"><img src="https://img.shields.io/badge/Setup-x64-0078d7.svg?logo=github"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-windows-x64-portable.zip"><img src="https://img.shields.io/badge/Portable-x64-2d7d9a.svg?logo=github"></a>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.Msix"><img src="https://img.shields.io/badge/OfficialSetup-x64-0078d7.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Setup-x64.exe"><img src="https://img.shields.io/badge/Setup-x64-2d7d9a.svg?logo=windows"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Windows-Portable-x64.zip"><img src="https://img.shields.io/badge/Portable-x64-67b7d1.svg?logo=windows"></a>
</td>
</tr>
<tr>
<td>MacOS</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-macos-universal.zip"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=github"></a></td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS.dmg"><img src="https://img.shields.io/badge/DMG-Universal-ea005e.svg?logo=apple"></a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-MacOS-Installer.pkg"><img src="https://img.shields.io/badge/PKG-Universal-bc544b.svg?logo=apple" /></a>
</td>
</tr>
<tr>
<td>Linux</td>
<td><a href="https://github.com/hiddify/hiddify-next/releases/latest/download/hiddify-linux-x64.zip"><img src="https://img.shields.io/badge/AppImage-amd64-f84e29.svg?logo=github"> </a></td>
<td>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Linux-x64.AppImage"><img src="https://img.shields.io/badge/AppImage-x64-f84e29.svg?logo=linux"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-Debian-x64.deb"><img src="https://img.shields.io/badge/DebPackage-x64-FF9966.svg?logo=debian"> </a><br>
<a href="https://github.com/hiddify/hiddify-next/releases/latest/download/Hiddify-rpm-x64.rpm"><img src="https://img.shields.io/badge/RpmPackage-x64-F1B42F.svg?logo=redhat"> </a>
</td>
</tr>
</tbody>
</table>

View File

@@ -292,6 +292,9 @@ class BoxService(
}
}
}
override fun postServiceClose(){
//TODO:
}
private suspend fun stopAndAlert(type: Alert, message: String? = null) {
Settings.startedByUser = false

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

View File

@@ -74,7 +74,8 @@
"permissionDeniedError": "Permission Denied",
"unexpectedError": "Something Went Wrong",
"torchSemanticLabel": "Flash Light",
"facingSemanticLabel": "Camera Facing"
"facingSemanticLabel": "Camera Facing",
"permissionRequest": "Permission to camera to scan QR Code"
},
"manually": "Manual Entry",
"addingProfileMsg": "Adding Profile",
@@ -372,7 +373,7 @@
"directDnsDomainStrategy": "Direct DNS Domain Strategy",
"mixedPort": "Mixed Port",
"localDnsPort": "Local DNS Port",
"allowConnectionFromLan": "Allow Connection from LAN",
"allowConnectionFromLan": "Share VPN in Local Network",
"tunImplementation": "TUN Implementation",
"mtu": "MTU",
"connectionTestUrl": "Connection Test URL",

View File

@@ -218,17 +218,17 @@
"clearSelection": "پاک کردن انتخاب‌ها"
},
"geoAssets": {
"pageTitle": "دارایی‌های مسیریابی",
"pageTitle": "فایل‌های مسیریابی",
"geoip": "ژئو آی‌پی",
"geosite": "ژئو سایت",
"version": "نسخه ${version}",
"fileMissing": "فایل موجود نیست",
"update": "به‌روزرسانی",
"download": "دانلود",
"failureMsg": "به‌روزرسانی دارایی انجام نشد",
"successMsg": "دارایی با موفقیت به‌روزرسانی شد",
"addRecommended": "افزودن دارایی‌های پیشنهادی",
"missingGeoAssetsMsg": "فایل‌های دارایی‌های مسیریابی انتخابی وجود ندارد. یا آن‌ها را دانلود کنید و یا موارد موجود را انتخاب کنید"
"failureMsg": "به‌روزرسانی فایل انجام نشد",
"successMsg": "فایل‌ با موفقیت به‌روزرسانی شد",
"addRecommended": "افزودن فایل‌های توصیه‌شده",
"missingGeoAssetsMsg": "فایل‌های مسیریابی انتخابی وجود ندارد. یا آن‌ها را دانلود کنید و یا موارد موجود را انتخاب کنید"
}
},
"about": {
@@ -271,11 +271,12 @@
"unexpected": "خطای غیرمنتظره در سرویس",
"serviceNotRunning": "سرویس در حال اجرا نیست",
"missingPrivilege": "نیازمند دسترسی",
"missingPrivilegeMsg": "حالت VPN به دسترسی سرپرست نیاز دارد. یا برنامه را دوباره به‌عنوان سرپرست راه‌اندازی کنید و یا حالت سرویس را تغییر دهید.",
"missingGeoAssets": "دارایی‌های جغرافیایی وجود ندارند",
"missingGeoAssetsMsg": "دارایی‌های جغرافیایی گم شده‌اند. تغییر دارایی فعال را در نظر بگیرید و یا یکی را در تنظیمات دانلود کنید.",
"invalidConfigOptions": "تنظیمات پیکربندی نامعتبر است",
"invalidConfig": "پیکربندی نامعتبر است",
"missingPrivilegeMsg": "حالت VPN به دسترسی سرپرست نیاز دارد. یا برنامه را دوباره به‌عنوان سرپرست راه‌اندازی کنید یا حالت سرویس را تغییر دهید.",
"missingGeoAssets": "فایل‌های جغرافیایی وجود ندارد",
"missingGeoAssetsMsg": "فایل‌های جغرافیایی گم شده‌اند. تغییر فایل فعال را در نظر بگیرید و یا یکی را در تنظیمات دانلود کنید.",
"invalidConfigOptions": "تنظیمات پیکربندی نامعتبر",
"invalidConfig": "پیکربندی نامعتبر",
"create": "خطای ایجاد سرویس",
"start": "خطای راه‌اندازی سرویس"
},
@@ -301,7 +302,7 @@
"geoAssets": {
"unexpected": "خطای غیرمنتظره",
"notUpdate": "هیچ به‌روزرسانی موجود نیست",
"activeNotFound": "دارایی فعال ژئو یافت نشد"
"activeNotFound": "فایل فعال ژئو یافت نشد"
}
},
"play": {
@@ -372,7 +373,7 @@
"directDnsDomainStrategy": "استراتژی دامنه DNS مستقیم",
"mixedPort": "درگاه چندمنظوره",
"localDnsPort": "درگاه DNS داخلی",
"allowConnectionFromLan": "اجازه‌ی اتصال از LAN",
"allowConnectionFromLan": "اشتراک فیلترشکن در شبکه",
"tunImplementation": "پیاده‌سازی TUN",
"mtu": "سایز بسته‌ها",
"connectionTestUrl": "لینک بررسی ارتباط",
@@ -395,15 +396,15 @@
"muxProtocol": "پروتکل Mux",
"muxMaxStreams": "حداکثر جریان‌های هم‌زمان",
"enableWarp": "فعال‌سازی WARP",
"warpDetourMode": "حالت انحرافی",
"warpDetourMode": "حالت وارپ",
"warpDetourModes": {
"proxyOverWarp": "انحراف پراکسی‌ها از طریق WARP",
"warpOverProxy": "انحراف WARP از طریق پراکسی‌ها",
"inbound": "انحراف WARP از طریق پراکسی‌ها",
"outbound": "انحراف پراکسی‌ها از طریق WARP"
"proxyOverWarp": "عبور پراکسی‌ها از طریق WARP",
"warpOverProxy": "عبور WARP از طریق پراکسی‌ها",
"inbound": "عبور WARP از طریق پراکسی‌ها",
"outbound": "عبور پراکسی‌ها از طریق WARP"
},
"warpLicenseKey": "کلید مجوز",
"warpCleanIp": "پاک‌سازی آی‌پی",
"warpCleanIp": "آی‌پی تمیز",
"warpPort": "درگاه",
"warpNoise": "تعداد نویز",
"warpNoiseDelay": "تأخیر نویز"

View File

@@ -1 +1 @@
core.version=0.17.8
core.version=1.0.0

View File

@@ -32,6 +32,8 @@ target 'Runner' do
use_modular_headers!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
pod 'EasyPermissionX/Camera'
target 'RunnerTests' do
inherit! :search_paths
end

View File

@@ -751,7 +751,7 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_ENTITLEMENTS = SingBoxPacketTunnel/SingBoxPacketTunnel.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1712;
CURRENT_PROJECT_VERSION = 10000;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
EXCLUDED_ARCHS = armv7;
GCC_C_LANGUAGE_STANDARD = gnu17;
@@ -770,7 +770,7 @@
"@executable_path/libcore/",
);
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MARKETING_VERSION = 0.17.12;
MARKETING_VERSION = 1.0.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
OTHER_LDFLAGS = "-lresolv";
@@ -802,7 +802,7 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_ENTITLEMENTS = SingBoxPacketTunnel/SingBoxPacketTunnel.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1712;
CURRENT_PROJECT_VERSION = 10000;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
EXCLUDED_ARCHS = armv7;
GCC_C_LANGUAGE_STANDARD = gnu17;
@@ -821,7 +821,7 @@
"@executable_path/libcore/",
);
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MARKETING_VERSION = 0.17.12;
MARKETING_VERSION = 1.0.0;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = "-lresolv";
@@ -851,7 +851,7 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_ENTITLEMENTS = SingBoxPacketTunnel/SingBoxPacketTunnel.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1712;
CURRENT_PROJECT_VERSION = 10000;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
EXCLUDED_ARCHS = armv7;
GCC_C_LANGUAGE_STANDARD = gnu17;
@@ -870,7 +870,7 @@
"@executable_path/libcore/",
);
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MARKETING_VERSION = 0.17.12;
MARKETING_VERSION = 1.0.0;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = "-lresolv";

View File

@@ -222,7 +222,12 @@ public class ExtensionPlatformInterface: NSObject, LibboxPlatformInterfaceProtoc
}
}
public func postServiceClose() {
// TODO
}
func reset() {
networkSettings = nil
}
}

View File

@@ -138,6 +138,7 @@ open class ExtensionProvider: NEPacketTunnelProvider {
await startService()
}
override open func stopTunnel(with reason: NEProviderStopReason) async {
writeMessage("(packet-tunnel) stopping, reason: \(reason)")
stopService()

View File

@@ -64,6 +64,11 @@ abstract class Preferences {
"started_by_user",
false,
);
static final storeReviewedByUser = PreferencesNotifier.create<bool, bool>(
"store_reviewed_by_user",
false,
);
}
@Riverpod(keepAlive: true)

View File

@@ -1,14 +1,15 @@
import 'package:dartx/dartx.dart';
import 'package:fluentui_system_icons/fluentui_system_icons.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easy_permission/easy_permissions.dart';
import 'package:hiddify/core/localization/translations.dart';
import 'package:hiddify/utils/utils.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:mobile_scanner/mobile_scanner.dart';
import 'package:permission_handler/permission_handler.dart';
// import 'package:permission_handler/permission_handler.dart';
final _cameraPermissionProvider =
FutureProvider.autoDispose((ref) => Permission.camera.request());
const permissions = [Permissions.CAMERA];
const permissionGroup = [PermissionGroup.Camera];
class QRCodeScannerScreen extends StatefulHookConsumerWidget {
const QRCodeScannerScreen({super.key});
@@ -32,56 +33,61 @@ class _QRCodeScannerScreenState extends ConsumerState<QRCodeScannerScreen>
final controller =
MobileScannerController(detectionTimeoutMs: 500, autoStart: false);
bool started = false;
bool settingsOpened = false;
late FlutterEasyPermission _easyPermission;
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
_easyPermission = FlutterEasyPermission()
..addPermissionCallback(onGranted: (requestCode, androidPerms, iosPerm) {
debugPrint("android:$androidPerms");
debugPrint("iOS:$iosPerm");
startQrScannerIfPermissionGranted();
}, onDenied: (requestCode, androidPerms, iosPerm, isPermanent) {
if (isPermanent) {
FlutterEasyPermission.showAppSettingsDialog(title: "Camera");
} else {
debugPrint("android:$androidPerms");
debugPrint("iOS:$iosPerm");
}
}, onSettingsReturned: () {
startQrScannerIfPermissionGranted();
});
}
@override
void dispose() {
controller.stop();
_easyPermission.dispose();
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed && settingsOpened) {
loggy.debug("resumed");
ref.invalidate(_cameraPermissionProvider);
settingsOpened = false;
void startQrScannerIfPermissionGranted() {
FlutterEasyPermission.has(perms: permissions, permsGroup: permissionGroup)
.then((value) {
if (value) {
controller.start().then((result) {
if (result != null) {
setState(() {
started = true;
});
}
}).catchError((error) {
loggy.warning("Error starting scanner: $error");
});
} else {}
});
}
@override
Widget build(BuildContext context) {
final t = ref.watch(translationsProvider);
ref.listen(
_cameraPermissionProvider,
(previous, next) async {
if (next case AsyncData(:final value)
when value == PermissionStatus.granted) {
try {
final result = await controller.start();
if (result != null) {
setState(() {
started = true;
});
}
} catch (error) {
loggy.warning("error starting scanner: $error", error);
}
}
},
);
startQrScannerIfPermissionGranted();
switch (ref.watch(_cameraPermissionProvider)) {
case AsyncData(value: final status)
when status == PermissionStatus.granted:
final size = MediaQuery.sizeOf(context);
final overlaySize = (size.shortestSide - 12).coerceAtMost(248);
@@ -178,39 +184,6 @@ class _QRCodeScannerScreenState extends ConsumerState<QRCodeScannerScreen>
],
),
);
case AsyncData(value: final status):
return Scaffold(
appBar: AppBar(),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(t.profile.add.qrScanner.permissionDeniedError),
if (status == PermissionStatus.permanentlyDenied)
TextButton(
onPressed: () async {
settingsOpened = await openAppSettings();
},
child: Text(t.general.openAppSettings),
)
else
TextButton(
onPressed: () {
ref.invalidate(_cameraPermissionProvider);
},
child: Text(t.general.grantPermission),
),
],
),
),
);
default:
return Scaffold(
appBar: AppBar(),
);
}
}
}

View File

@@ -65,7 +65,9 @@ class WarpOptionNotifier extends _$WarpOptionNotifier with AppLogger {
await ref
.read(ConfigOptions.warpAccessToken.notifier)
.update(warp.accessToken);
await ref
.read(ConfigOptions.warpWireguardConfig.notifier)
.update(warp.wireguardConfig);
return warp.log;
});

View File

@@ -212,29 +212,29 @@ class ConfigOptionsPage extends HookConsumerWidget {
.watch(ConfigOptions.enableDnsRouting.notifier)
.update,
),
const SettingsDivider(),
SettingsSection(experimental(t.config.section.mux)),
SwitchListTile(
title: Text(t.config.enableMux),
value: ref.watch(ConfigOptions.enableMux),
onChanged:
ref.watch(ConfigOptions.enableMux.notifier).update,
),
ChoicePreferenceWidget(
selected: ref.watch(ConfigOptions.muxProtocol),
preferences: ref.watch(ConfigOptions.muxProtocol.notifier),
choices: MuxProtocol.values,
title: t.config.muxProtocol,
presentChoice: (value) => value.name,
),
ValuePreferenceWidget(
value: ref.watch(ConfigOptions.muxMaxStreams),
preferences:
ref.watch(ConfigOptions.muxMaxStreams.notifier),
title: t.config.muxMaxStreams,
inputToValue: int.tryParse,
digitsOnly: true,
),
// const SettingsDivider(),
// SettingsSection(experimental(t.config.section.mux)),
// SwitchListTile(
// title: Text(t.config.enableMux),
// value: ref.watch(ConfigOptions.enableMux),
// onChanged:
// ref.watch(ConfigOptions.enableMux.notifier).update,
// ),
// ChoicePreferenceWidget(
// selected: ref.watch(ConfigOptions.muxProtocol),
// preferences: ref.watch(ConfigOptions.muxProtocol.notifier),
// choices: MuxProtocol.values,
// title: t.config.muxProtocol,
// presentChoice: (value) => value.name,
// ),
// ValuePreferenceWidget(
// value: ref.watch(ConfigOptions.muxMaxStreams),
// preferences:
// ref.watch(ConfigOptions.muxMaxStreams.notifier),
// title: t.config.muxMaxStreams,
// inputToValue: int.tryParse,
// digitsOnly: true,
// ),
const SettingsDivider(),
SettingsSection(t.config.section.inbound),
ChoicePreferenceWidget(

View File

@@ -65,11 +65,11 @@ class QuickSettingsModal extends HookConsumerWidget {
ref.watch(ConfigOptions.enableTlsFragment.notifier).update,
title: Text(t.config.enableTlsFragment),
),
SwitchListTile(
value: ref.watch(ConfigOptions.enableMux),
onChanged: ref.watch(ConfigOptions.enableMux.notifier).update,
title: Text(t.config.enableMux),
),
// SwitchListTile(
// value: ref.watch(ConfigOptions.enableMux),
// onChanged: ref.watch(ConfigOptions.enableMux.notifier).update,
// title: Text(t.config.enableMux),
// ),
ListTile(
title: Text(t.config.allOptions),
trailing: const Icon(FluentIcons.chevron_right_24_regular),

View File

@@ -11,6 +11,7 @@ import 'package:hiddify/utils/utils.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:rxdart/rxdart.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
import 'package:in_app_review/in_app_review.dart';
part 'connection_notifier.g.dart';
@@ -30,6 +31,14 @@ class ConnectionNotifier extends _$ConnectionNotifier with AppLogger {
if (previous case AsyncData(:final value) when !value.isConnected) {
if (next case AsyncData(value: final Connected _)) {
await ref.read(hapticServiceProvider.notifier).heavyImpact();
if (Platform.isAndroid &&
!ref.read(Preferences.storeReviewedByUser)) {
if (await InAppReview.instance.isAvailable()) {
InAppReview.instance.requestReview();
ref.read(Preferences.storeReviewedByUser.notifier).update(true);
}
}
}
}
},

View File

@@ -25,6 +25,7 @@ class ConnectionButton extends HookConsumerWidget {
final connectionStatus = ref.watch(connectionNotifierProvider);
final requiresReconnect =
ref.watch(configOptionNotifierProvider).valueOrNull;
final today = DateTime.now();
ref.listen(
connectionNotifierProvider,
@@ -93,6 +94,19 @@ class ConnectionButton extends HookConsumerWidget {
AsyncData(value: _) => buttonTheme.idleColor!,
_ => Colors.red,
},
image: switch (connectionStatus) {
AsyncData(value: Connected()) when requiresReconnect == true =>
Assets.images.disconnectNorouz,
AsyncData(value: Connected()) => Assets.images.connectNorouz,
AsyncData(value: _) => Assets.images.disconnectNorouz,
_ => Assets.images.disconnectNorouz,
AsyncData(value: Disconnected()) ||
AsyncError() =>
Assets.images.disconnectNorouz,
AsyncData(value: Connected()) => Assets.images.connectNorouz,
_ => Assets.images.disconnectNorouz,
},
useImage: today.day >= 19 && today.day <= 23 && today.month == 3,
);
}
}
@@ -103,12 +117,16 @@ class _ConnectionButton extends StatelessWidget {
required this.enabled,
required this.label,
required this.buttonColor,
required this.image,
required this.useImage,
});
final VoidCallback onTap;
final bool enabled;
final String label;
final Color buttonColor;
final AssetGenImage image;
final bool useImage;
@override
Widget build(BuildContext context) {
@@ -144,12 +162,16 @@ class _ConnectionButton extends StatelessWidget {
tween: ColorTween(end: buttonColor),
duration: const Duration(milliseconds: 250),
builder: (context, value, child) {
if (useImage) {
return image.image(filterQuality: FilterQuality.medium);
} else {
return Assets.images.logo.svg(
colorFilter: ColorFilter.mode(
value!,
BlendMode.srcIn,
),
);
}
},
),
),

View File

@@ -287,7 +287,7 @@ class FFISingboxService with InfraLogger implements SingboxService {
logger.debug("stopping");
receiver.close();
_outboundsStream = null;
final err = _box.stopCommandClient(4).cast<Utf8>().toDartString();
final err = _box.stopCommandClient(5).cast<Utf8>().toDartString();
if (err.isNotEmpty) {
_logger.error("error stopping group client");
}
@@ -311,7 +311,7 @@ class FFISingboxService with InfraLogger implements SingboxService {
try {
final err = _box
.startCommandClient(4, receiver.sendPort.nativePort)
.startCommandClient(5, receiver.sendPort.nativePort)
.cast<Utf8>()
.toDartString();
if (err.isNotEmpty) {
@@ -334,7 +334,7 @@ class FFISingboxService with InfraLogger implements SingboxService {
onCancel: (_) {
logger.debug("stopping");
receiver.close();
final err = _box.stopCommandClient(12).cast<Utf8>().toDartString();
final err = _box.stopCommandClient(13).cast<Utf8>().toDartString();
if (err.isNotEmpty) {
logger.error("failed stopping: $err");
}
@@ -358,7 +358,7 @@ class FFISingboxService with InfraLogger implements SingboxService {
try {
final err = _box
.startCommandClient(12, receiver.sendPort.nativePort)
.startCommandClient(13, receiver.sendPort.nativePort)
.cast<Utf8>()
.toDartString();
if (err.isNotEmpty) {

View File

@@ -9,14 +9,11 @@ import 'package:hiddify/singbox/model/singbox_outbound.dart';
import 'package:hiddify/singbox/model/singbox_stats.dart';
import 'package:hiddify/singbox/model/singbox_status.dart';
import 'package:hiddify/singbox/model/warp_account.dart';
import 'package:hiddify/singbox/service/core_singbox_service.dart';
import 'package:hiddify/singbox/service/singbox_service.dart';
import 'package:hiddify/utils/custom_loggers.dart';
import 'package:rxdart/rxdart.dart';
class PlatformSingboxService extends CoreSingboxService
with InfraLogger
implements SingboxService {
class PlatformSingboxService with InfraLogger implements SingboxService {
static const channelPrefix = "com.hiddify.app";
static const methodChannel = MethodChannel("$channelPrefix/method");
@@ -49,9 +46,30 @@ class PlatformSingboxService extends CoreSingboxService
TaskEither<String, Unit> setup(Directories directories, bool debug) {
return TaskEither(
() async {
await methodChannel.invokeMethod("setup");
if (!Platform.isIOS) {
return right(unit);
}
await methodChannel.invokeMethod("setup");
return right(unit);
},
);
}
@override
TaskEither<String, Unit> validateConfigByPath(
String path,
String tempPath,
bool debug,
) {
return TaskEither(
() async {
final message = await methodChannel.invokeMethod<String>(
"parse_config",
{"path": path, "tempPath": tempPath, "debug": debug},
);
if (message == null || message.isEmpty) return right(unit);
return left(message);
},
);
}
@@ -70,6 +88,23 @@ class PlatformSingboxService extends CoreSingboxService
);
}
@override
TaskEither<String, String> generateFullConfigByPath(String path) {
return TaskEither(
() async {
loggy.debug("generating full config by path");
final configJson = await methodChannel.invokeMethod<String>(
"generate_config",
{"path": path},
);
if (configJson == null || configJson.isEmpty) {
return left("null response");
}
return right(configJson);
},
);
}
@override
TaskEither<String, Unit> start(
String path,

Submodule libcore updated: 85cc81a46a...aab998fae9

View File

@@ -7,6 +7,7 @@ import Foundation
import device_info_plus
import flutter_timezone
import in_app_review
import mobile_scanner
import package_info_plus
import path_provider_foundation
@@ -23,6 +24,7 @@ import window_manager
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
FlutterTimezonePlugin.register(with: registry.registrar(forPlugin: "FlutterTimezonePlugin"))
InAppReviewPlugin.register(with: registry.registrar(forPlugin: "InAppReviewPlugin"))
MobileScannerPlugin.register(with: registry.registrar(forPlugin: "MobileScannerPlugin"))
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))

View File

@@ -503,6 +503,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.6.0"
flutter_easy_permission:
dependency: "direct main"
description:
name: flutter_easy_permission
sha256: "05eb1b561c894adef28b3ae38d8087fc2635f1047c5e18cf2698fb42b6ccc132"
url: "https://pub.dev"
source: hosted
version: "1.1.2"
flutter_gen_core:
dependency: transitive
description:
@@ -822,6 +830,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.1.3"
in_app_review:
dependency: "direct main"
description:
name: in_app_review
sha256: "99869244d09adc76af16bf8fd731dd13cef58ecafd5917847589c49f378cbb30"
url: "https://pub.dev"
source: hosted
version: "2.0.9"
in_app_review_platform_interface:
dependency: transitive
description:
name: in_app_review_platform_interface
sha256: fed2c755f2125caa9ae10495a3c163aa7fab5af3585a9c62ef4a6920c5b45f10
url: "https://pub.dev"
source: hosted
version: "2.0.5"
injector:
dependency: transitive
description:
@@ -1134,54 +1158,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.2.3"
permission_handler:
dependency: "direct main"
description:
name: permission_handler
sha256: "74e962b7fad7ff75959161bb2c0ad8fe7f2568ee82621c9c2660b751146bfe44"
url: "https://pub.dev"
source: hosted
version: "11.3.0"
permission_handler_android:
dependency: transitive
description:
name: permission_handler_android
sha256: "1acac6bae58144b442f11e66621c062aead9c99841093c38f5bcdcc24c1c3474"
url: "https://pub.dev"
source: hosted
version: "12.0.5"
permission_handler_apple:
dependency: transitive
description:
name: permission_handler_apple
sha256: bdafc6db74253abb63907f4e357302e6bb786ab41465e8635f362ee71fd8707b
url: "https://pub.dev"
source: hosted
version: "9.4.0"
permission_handler_html:
dependency: transitive
description:
name: permission_handler_html
sha256: "54bf176b90f6eddd4ece307e2c06cf977fb3973719c35a93b85cc7093eb6070d"
url: "https://pub.dev"
source: hosted
version: "0.1.1"
permission_handler_platform_interface:
dependency: transitive
description:
name: permission_handler_platform_interface
sha256: "23dfba8447c076ab5be3dee9ceb66aad345c4a648f0cac292c77b1eb0e800b78"
url: "https://pub.dev"
source: hosted
version: "4.2.0"
permission_handler_windows:
dependency: transitive
description:
name: permission_handler_windows
sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e"
url: "https://pub.dev"
source: hosted
version: "0.2.1"
petitparser:
dependency: transitive
description:

View File

@@ -1,7 +1,7 @@
name: hiddify
description: Cross Platform Multi Protocol Proxy Frontend.
publish_to: "none"
version: 0.17.12+1712
version: 1.0.0+10000
environment:
sdk: ">=3.3.0 <4.0.0"
@@ -76,7 +76,9 @@ dependencies:
http: ^1.2.0
timezone_to_country: ^2.1.0
json_path: ^0.7.1
permission_handler: ^11.3.0
# permission_handler: ^11.3.0 # is not compatible with windows
flutter_easy_permission: ^1.1.2
in_app_review: ^2.0.9
# circle_flags: ^4.0.2
circle_flags:
git: https://github.com/hiddify-com/flutter_circle_flags.git
@@ -113,6 +115,8 @@ flutter:
- assets/images/tray_icon.png
- assets/images/tray_icon_connected.ico
- assets/images/tray_icon_disconnected.ico
- assets/images/connect_norouz.PNG
- assets/images/disconnect_norouz.PNG
fonts:
- family: Shabnam

View File

@@ -6,7 +6,6 @@
#include "generated_plugin_registrant.h"
#include <permission_handler_windows/permission_handler_windows_plugin.h>
#include <protocol_handler_windows/protocol_handler_windows_plugin_c_api.h>
#include <screen_retriever/screen_retriever_plugin.h>
#include <sentry_flutter/sentry_flutter_plugin.h>
@@ -18,8 +17,6 @@
#include <window_manager/window_manager_plugin.h>
void RegisterPlugins(flutter::PluginRegistry* registry) {
PermissionHandlerWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin"));
ProtocolHandlerWindowsPluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("ProtocolHandlerWindowsPluginCApi"));
ScreenRetrieverPluginRegisterWithRegistrar(

View File

@@ -3,7 +3,6 @@
#
list(APPEND FLUTTER_PLUGIN_LIST
permission_handler_windows
protocol_handler_windows
screen_retriever
sentry_flutter

View File

@@ -1,7 +1,7 @@
display_name: Hiddify
publisher_display_name: Hiddify
identity_name: Hiddify.HiddifyNext
msix_version: 0.17.12.0
msix_version: 1.0.0.0
logo_path: windows\runner\resources\app_icon.ico
capabilities: internetClient, internetClientServer, privateNetworkClientServer
languages: en-us, zh-cn, zh-tw, tr-tr,fa-ir,ru-ru,pt-br,es-es