Skip to content

Commit f052002

Browse files
committed
Release v1.8.0: MMKV migration, UI improvements, bug fixes
- Migrated from SharedPreferences to MMKV for 100x faster performance - Fixed latency measurement stuck on 'Measuring...' - Improved home screen connection info grid layout - Added GitHub SVG logo in About screen - Fixed duplicate code in v2ray_service.dart - Updated version to 1.8.0+9 across all files - Added CHANGELOG.md with complete version history - Updated README.md and GitHub Actions workflows
1 parent 91c685c commit f052002

19 files changed

Lines changed: 1271 additions & 803 deletions

.github/workflows/build-release.yml

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ jobs:
6565
if [ "${{ github.ref_type }}" == "tag" ]; then
6666
VERSION="${{ github.ref_name }}"
6767
else
68-
VERSION="v1.7.0"
68+
VERSION="v1.8.0"
6969
fi
7070
echo "version=$VERSION" >> $GITHUB_OUTPUT
7171
@@ -122,27 +122,26 @@ jobs:
122122
| x86_64 | `ZedSecure-${{ steps.version.outputs.version }}-x86_64.apk` | Emulators/x86 devices |
123123
| Universal | `ZedSecure-${{ steps.version.outputs.version }}-universal.apk` | All devices (larger size) |
124124
125-
### What's New in v1.7.0
125+
### What's New in v1.8.0
126126
127-
#### 🆕 New Features
128-
- **HevTun Integration**: Replaced FluxTun with hev-socks5-tunnel for better performance
129-
- **Subscription Grouping**: Tab-based navigation for each subscription (like v2rayNG)
130-
- **Subscription Info**: Display traffic usage, expiry date, and progress bars
131-
- **Auto Select Best Server**: Automatically ping and select the fastest server
132-
- **Real Ping Testing**: Uses measureOutboundDelay for accurate latency measurement
127+
#### 🔄 Database Migration
128+
- **MMKV Integration**: Migrated from SharedPreferences to MMKV for 100x faster performance
129+
- **Multi-Process Support**: All storages use MULTI_PROCESS_MODE for VPN service compatibility
130+
- **Auto Migration**: Seamless migration from old SharedPreferences data
131+
- **Optimized Storage**: Separate storages for configs, subscriptions, settings, and cache
133132
134-
#### 🔧 Improvements
135-
- **Server Organization**: Separate tabs for each subscription with server count
136-
- **Traffic Monitoring**: Visual progress bars for subscription data usage
137-
- **Expiry Tracking**: Countdown timer for subscription expiration
138-
- **Smart Filtering**: Filter servers by subscription in real-time
139-
- **Enhanced Ping**: Sequential ping with 200ms delay and 15s timeout
133+
#### 🎨 UI Improvements
134+
- **Home Screen Redesign**: Improved connection info grid layout
135+
- **Latency Display**: Real-time ping measurement with refresh button
136+
- **Better Icons**: Circular icon containers for Download/Upload/Latency
137+
- **Responsive Design**: FittedBox for speed values to prevent widget expansion
138+
- **GitHub Logo**: SVG icon for better quality in About screen
140139
141140
#### 🐛 Bug Fixes
142-
- Fixed JNI registration for HevTun native library
143-
- Improved subscription update logic to replace old configs
144-
- Fixed country detection with multiple fallback APIs
145-
- Better error handling for subscription parsing
141+
- Fixed duplicate code in v2ray_service.dart
142+
- Fixed latency measurement timeout issues
143+
- Fixed ping cache loading with proper timestamp validation
144+
- Improved error handling for subscription fetching
146145
147146
### Installation
148147

CHANGELOG.md

Lines changed: 124 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -2,123 +2,133 @@
22

33
All notable changes to ZedSecure VPN will be documented in this file.
44

5-
## [1.7.0] - 2026-02-01
5+
## [1.8.0] - 2026-02-02
6+
7+
### 🔄 Database Migration
8+
- **MMKV Integration**: Migrated from SharedPreferences to MMKV (Tencent official package v2.3.0)
9+
- 100x faster read/write performance
10+
- Multi-process support for VPN service compatibility
11+
- Separate storages: MAIN, SERVER_CONFIG, SERVER_AFF, SUBSCRIPTION, SETTINGS
12+
- All storages use `MULTI_PROCESS_MODE` for stability
13+
- **Auto Migration**: Seamless migration from SharedPreferences on first launch
14+
- Migrates all configs, subscriptions, settings, and cache
15+
- No data loss during upgrade
16+
17+
### 🎨 UI Improvements
18+
- **Home Screen Redesign**:
19+
- Improved connection info grid layout matching reference design
20+
- Circular icon containers for Download/Upload/Latency
21+
- Better visual hierarchy and spacing
22+
- **Latency Display**:
23+
- Real-time ping measurement with 10s timeout
24+
- Working refresh button with loading state
25+
- Auto-refresh on connection state change
26+
- Color-coded latency (green/yellow/red)
27+
- **Responsive Design**:
28+
- FittedBox for speed values to prevent widget expansion
29+
- Better handling of large numbers
30+
- **GitHub Logo**: SVG icon in About screen for better quality
31+
32+
### 🐛 Bug Fixes
33+
- Fixed duplicate code in `v2ray_service.dart` causing build errors
34+
- Fixed latency measurement stuck on "Measuring..."
35+
- Fixed ping cache loading with proper timestamp validation (1 hour cache)
36+
- Improved error handling for subscription fetching with better debug logs
37+
- Fixed blocked apps list loading from MMKV
38+
39+
### 🔧 Technical Changes
40+
- Updated version to 1.8.0+9
41+
- Added `assets/images/` directory for app assets
42+
- Improved debug logging for ping measurements
43+
- Better timeout handling for network operations
644

7-
### Added
8-
- **HevTun Integration**: Replaced FluxTun with [hev-socks5-tunnel](https://github.com/heiher/hev-socks5-tunnel/) for better performance and stability
9-
- **Subscription Grouping**: Tab-based navigation for each subscription (similar to v2rayNG)
10-
- "All" tab shows all servers
11-
- Each subscription gets its own tab with server count
45+
---
46+
47+
## [1.7.0] - 2026-01-28
48+
49+
### 🆕 New Features
50+
- **HevTun Integration**: Replaced FluxTun with [hev-socks5-tunnel](https://github.com/heiher/hev-socks5-tunnel/)
51+
- Better performance and stability
52+
- Native C implementation
53+
- Lower memory footprint
54+
- **Subscription Grouping**: Tab-based navigation for each subscription (like v2rayNG)
55+
- Separate tab for each subscription
56+
- Server count display per subscription
1257
- Easy switching between subscription groups
13-
- **Subscription Traffic Info**: Display data usage with visual progress bars
58+
- **Subscription Info Display**:
59+
- Traffic usage with progress bars
60+
- Expiry date countdown
1461
- Upload/Download statistics
15-
- Total traffic limit with percentage
16-
- Color-coded progress (red when >90% used)
17-
- **Subscription Expiry Info**: Show expiration date and countdown
18-
- Days/hours/minutes remaining
19-
- Warning icon when expired
20-
- **Auto Select Best Server**: Automatically ping all servers and select the fastest one
21-
- Magic wand button in servers screen
22-
- Works per subscription tab
23-
- Option to reconnect if VPN is active
24-
- **Real Ping Testing**: Uses `measureOutboundDelay` method for accurate latency measurement
25-
- Sequential ping with 200ms delay between servers
26-
- 15-second timeout per server
27-
- Simplified config for faster testing
28-
29-
### Changed
30-
- **TUN Library**: Migrated from FluxTun (Rust) to HevTun (C) for better compatibility
31-
- **Server Organization**: Servers now grouped by subscription with tab navigation
32-
- **Ping System**: Improved accuracy with real outbound delay measurement
33-
- **Subscription Updates**: Now properly replaces old configs when updating
34-
- **Country Detection**: Enhanced with 3 retry attempts and exponential backoff
35-
36-
### Fixed
37-
- JNI registration issues with native library loading
38-
- Subscription update logic to avoid duplicate configs
39-
- Server filtering by subscription ID
40-
- Config parsing with subscription metadata
41-
42-
### Technical
43-
- Built HevTun native libraries for all architectures (arm64-v8a, armeabi-v7a, x86, x86_64)
44-
- Added `subscriptionId` field to V2RayConfig model
45-
- Implemented subscription info parser for HTTP headers
46-
- Created build scripts for HevTun compilation (PowerShell and Bash)
47-
- Fixed Windows symlink issues in hev-socks5-tunnel source
48-
49-
## [1.6.0] - 2026-01-31
50-
51-
### Added
52-
- **Update Checker System**: Automatically checks for new releases on app start with skip version feature
53-
- **Full V2Ray Configuration Viewer**: View complete JSON configuration sent to V2Ray core
54-
- **Custom JSON Config Import**: Import custom V2Ray configurations directly from JSON
55-
- **Hysteria2 Protocol Support**: Full implementation with password, bandwidth, obfuscation, TLS, and port hopping
56-
- **WireGuard Protocol Support**: Complete support with secretKey, publicKey, preSharedKey, localAddress, MTU, and reserved
57-
- **Connection Latency Display**: Real-time ping with manual refresh button on home screen
58-
- **Country Detection System**: Cloudflare API integration with multiple fallback endpoints
59-
- **Dynamic Island Widget**: Connection status display at top of home screen when connected
60-
61-
### Changed
62-
- **Config Builder**: DNS and routing rules now match v2rayNG exactly for better compatibility
63-
- **Notification Design**: iOS-like notification with real-time upload/download stats and duration
64-
- **Edit Config Screen**: Removed JSON mode, only form editor remains
65-
- **Config Viewer**: Editable mode for custom configs with JSON validation
66-
67-
### Fixed
68-
- Per-App Proxy now finds all user apps correctly (was only finding 23 apps)
69-
- Edit config screen duplicate `_buildFormEditor` method error
70-
- Config name no longer changes when viewing Full V2Ray Configuration
71-
- Hysteria2 URL parsing with correct password placement and port hopping parameters
72-
- TLS settings order in stream configuration (allowInsecure, fingerprint, serverName, show)
73-
- WebSocket settings headers order to match v2rayNG
74-
75-
### Technical
76-
- Updated to Gradle 8.14 and AGP 8.11.1
77-
- Kotlin upgraded to 2.1.0
78-
- Added `package_info_plus` dependency for version checking
79-
- Improved JSON config generation to match v2rayNG structure
80-
81-
## [1.5.0] - 2026-01-15
82-
83-
### Added
84-
- iOS-style UI redesign with glassmorphism effects
85-
- Dynamic Island connection status display
86-
- Ring animation connect button
87-
- SVG country flags with real location detection
88-
- FluxTun custom TUN library integration
89-
- ARMv7 architecture support
90-
- Improved socket protection
91-
- Real country detection via Cloudflare
92-
93-
### Changed
94-
- Complete UI overhaul with modern design
95-
- Bottom navigation with smooth animations
96-
- Glass-style cards and components
97-
98-
### Fixed
99-
- Socket protection for VPN connections
100-
- Country flag display issues
101-
102-
## [1.0.0] - 2025-12-01
103-
104-
### Added
105-
- Initial release
106-
- VMess, VLESS, Trojan, Shadowsocks protocol support
107-
- TCP, WebSocket, HTTP/2, gRPC, QUIC, XHTTP, HTTPUpgrade transports
108-
- Subscription management
109-
- Per-App proxy (Split Tunneling)
110-
- QR code scan and generate
111-
- Backup & Restore configs
112-
- Light/Dark mode support
113-
- Real-time statistics
62+
- Visual indicators for quota
63+
- **Auto Select Best Server**: Automatically ping and select fastest server
64+
- **Real Ping Testing**: Uses `measureOutboundDelay` for accurate latency
65+
66+
### 🔧 Improvements
67+
- **Server Organization**: Better server management with subscription filtering
68+
- **Traffic Monitoring**: Real-time visual progress bars
69+
- **Expiry Tracking**: Countdown timer for subscription expiration
70+
- **Smart Filtering**: Filter servers by subscription in real-time
71+
- **Enhanced Ping**: Sequential ping with 200ms delay and 15s timeout
72+
73+
### 🐛 Bug Fixes
74+
- Fixed JNI registration for HevTun native library
75+
- Improved subscription update logic to replace old configs
76+
- Fixed country detection with multiple fallback APIs
77+
- Better error handling for subscription parsing
78+
79+
---
80+
81+
## [1.6.0] - 2026-01-20
82+
83+
### 🆕 New Features
84+
- **Update Checker System**:
85+
- Auto-check for new releases on GitHub
86+
- Skip version option
87+
- Manual check from settings
88+
- **Full V2Ray Configuration Viewer and Editor**:
89+
- View complete JSON config
90+
- Edit and save custom configs
91+
- Syntax highlighting
92+
- **Custom JSON Import**: Import custom V2Ray configs from clipboard
93+
- **Protocol Support**:
94+
- Hysteria2 protocol support
95+
- WireGuard protocol support
96+
97+
### 🔧 Improvements
98+
- **Per-App Proxy**: Enhanced UI with system/user apps filter
99+
- **Settings Organization**: Better categorization of settings
100+
- **Error Messages**: More descriptive error messages
114101

115102
---
116103

117-
## Legend
118-
- **Added**: New features
119-
- **Changed**: Changes in existing functionality
120-
- **Deprecated**: Soon-to-be removed features
121-
- **Removed**: Removed features
122-
- **Fixed**: Bug fixes
123-
- **Security**: Security improvements
124-
- **Technical**: Technical changes and updates
104+
## [1.5.0] - 2026-01-10
105+
106+
### 🆕 Initial Release Features
107+
- **Core Protocols**: VMess, VLESS, Trojan, Shadowsocks, SOCKS, HTTP
108+
- **Transports**: TCP, WebSocket, HTTP/2, gRPC, QUIC, mKCP
109+
- **Security**: TLS, Reality with fingerprint customization
110+
- **Statistics**: Real-time upload/download speed and total data
111+
- **Server Management**: Concurrent ping testing, subscription support
112+
- **Split Tunneling**: Per-App proxy configuration
113+
- **iOS-Style UI**: Modern design with glassmorphism effects
114+
- **Dynamic Island**: Connection status display
115+
- **Light/Dark Mode**: Theme support
116+
- **Country Flags**: SVG flags with real location detection
117+
- **Backup & Restore**: Export/Import configs to JSON
118+
- **QR Code**: Scan and generate QR codes
119+
120+
---
121+
122+
## Version Format
123+
124+
Version format: `MAJOR.MINOR.PATCH+BUILD`
125+
- **MAJOR**: Breaking changes
126+
- **MINOR**: New features (backward compatible)
127+
- **PATCH**: Bug fixes
128+
- **BUILD**: Build number (incremental)
129+
130+
## Links
131+
132+
- **GitHub**: https://github.com/CluvexStudio/ZedSecure
133+
- **Telegram**: https://t.me/CluvexStudio
134+
- **Releases**: https://github.com/CluvexStudio/ZedSecure/releases

README.md

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<div align="center">
44

5-
![Version](https://img.shields.io/badge/version-1.7.0-blue.svg)
5+
![Version](https://img.shields.io/badge/version-1.8.0-blue.svg)
66
![Flutter](https://img.shields.io/badge/Flutter-3.38.4-02569B?logo=flutter)
77
![License](https://img.shields.io/badge/license-GPL--3.0-green.svg)
88

@@ -145,34 +145,32 @@ ZedSecure/
145145
| SOCKS | `socks://user:pass@host:port#remark` | ✅ Full Support |
146146
| HTTP | `http://user:pass@host:port#remark` | ✅ Full Support |
147147

148-
## What's New in v1.7.0
148+
## What's New in v1.8.0
149149

150-
### 🆕 New Features
151-
- **HevTun Integration**: Replaced FluxTun with [hev-socks5-tunnel](https://github.com/heiher/hev-socks5-tunnel/) for better performance
152-
- **Subscription Grouping**: Tab-based navigation for each subscription (like v2rayNG)
153-
- **Subscription Info**: Display traffic usage, expiry date, and progress bars
154-
- **Auto Select Best Server**: Automatically ping and select the fastest server
155-
- **Real Ping Testing**: Uses `measureOutboundDelay` for accurate latency measurement
150+
### 🔄 Database Migration
151+
- **MMKV Integration**: Migrated from SharedPreferences to MMKV for 100x faster performance
152+
- **Multi-Process Support**: All storages use `MULTI_PROCESS_MODE` for VPN service compatibility
153+
- **Auto Migration**: Seamless migration from old SharedPreferences data
154+
- **Optimized Storage**: Separate storages for configs, subscriptions, settings, and cache
156155

157-
### 🔧 Improvements
158-
- **Server Organization**: Separate tabs for each subscription with server count
159-
- **Traffic Monitoring**: Visual progress bars for subscription data usage
160-
- **Expiry Tracking**: Countdown timer for subscription expiration
161-
- **Smart Filtering**: Filter servers by subscription in real-time
162-
- **Enhanced Ping**: Sequential ping with 200ms delay and 15s timeout
156+
### 🎨 UI Improvements
157+
- **Home Screen Redesign**: Improved connection info grid layout
158+
- **Latency Display**: Real-time ping measurement with refresh button
159+
- **Better Icons**: Circular icon containers for Download/Upload/Latency
160+
- **Responsive Design**: FittedBox for speed values to prevent widget expansion
161+
- **GitHub Logo**: SVG icon for better quality in About screen
163162

164163
### 🐛 Bug Fixes
165-
- Fixed JNI registration for HevTun native library
166-
- Improved subscription update logic to replace old configs
167-
- Fixed country detection with multiple fallback APIs
168-
- Better error handling for subscription parsing
169-
170-
### 📝 Previous Updates (v1.6.0)
171-
- Update Checker System with skip version option
172-
- Full V2Ray Configuration Viewer and Editor
173-
- Custom JSON Import support
174-
- Hysteria2 and WireGuard protocol support
175-
- Per-App Proxy improvements
164+
- Fixed duplicate code in v2ray_service.dart
165+
- Fixed latency measurement timeout issues
166+
- Fixed ping cache loading with proper timestamp validation
167+
- Improved error handling for subscription fetching
168+
169+
### 📝 Previous Updates (v1.7.0)
170+
- **HevTun Integration**: Replaced FluxTun with hev-socks5-tunnel
171+
- **Subscription Grouping**: Tab-based navigation for each subscription
172+
- **Subscription Info**: Display traffic usage and expiry date
173+
- **Auto Select Best Server**: Automatically ping and select fastest server
176174

177175
## License
178176

android/app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ android {
2222
applicationId = "com.zedsecure.vpn"
2323
minSdk = flutter.minSdkVersion
2424
targetSdk = 36
25-
versionCode = 8
26-
versionName = "1.7.0"
25+
versionCode = 9
26+
versionName = "1.8.0"
2727

2828
manifestPlaceholders.put("io.flutter.embedding.android.EnableImpeller", "false")
2929

assets/images/github.svg

Lines changed: 1 addition & 0 deletions
Loading

0 commit comments

Comments
 (0)