1.2.8-beta

This commit is contained in:
wanghongenpin
2026-05-28 12:48:36 +08:00
parent 215a4af98a
commit 772abb3a5a
7 changed files with 56 additions and 55 deletions

View File

@@ -71,7 +71,7 @@ class AppConfiguration {
Locale? _language;
//是否显示更新内容公告
bool upgradeNoticeV27 = true;
bool upgradeNoticeV28 = true;
/// 是否启用画中画
ValueNotifier<bool> pipEnabled = ValueNotifier(Platform.isAndroid);
@@ -202,7 +202,7 @@ class AppConfiguration {
_theme = ThemeModel(mode: mode, useMaterial3: config['useMaterial3'] ?? true);
_theme.color = config['themeColor'] ?? "Blue";
upgradeNoticeV27 = config['upgradeNoticeV27'] ?? true;
upgradeNoticeV28 = config['upgradeNoticeV28'] ?? true;
_language = config['language'] == null
? null
: Locale.fromSubtags(languageCode: config['language'], scriptCode: config['languageScript']);
@@ -252,7 +252,7 @@ class AppConfiguration {
'mode': _theme.mode.name,
'themeColor': _theme.color,
'useMaterial3': _theme.useMaterial3,
'upgradeNoticeV27': upgradeNoticeV27,
'upgradeNoticeV28': upgradeNoticeV28,
"language": _language?.languageCode,
"languageScript": _language?.scriptCode,
"headerExpanded": headerExpanded,

View File

@@ -106,7 +106,7 @@ class _DesktopHomePagePageState extends State<DesktopHomePage> implements EventL
}
});
if (widget.appConfiguration.upgradeNoticeV27) {
if (widget.appConfiguration.upgradeNoticeV28) {
WidgetsBinding.instance.addPostFrameCallback((_) {
showUpgradeNotice();
});
@@ -181,7 +181,7 @@ class _DesktopHomePagePageState extends State<DesktopHomePage> implements EventL
actions: [
TextButton(
onPressed: () {
widget.appConfiguration.upgradeNoticeV27 = false;
widget.appConfiguration.upgradeNoticeV28 = false;
widget.appConfiguration.flushConfig();
Navigator.pop(context);
},
@@ -195,24 +195,24 @@ class _DesktopHomePagePageState extends State<DesktopHomePage> implements EventL
isCN
? '提示默认不会开启HTTPS抓包请安装证书后再开启HTTPS抓包。\n'
'点击HTTPS抓包(加锁图标),选择安装根证书,按照提示操作即可。\n\n'
'1. 新增html、css、js格式化以及代码高亮\n'
'2. 高级重发支持指定时间\n'
'3. 域名列表增加导出har文件\n'
'4. 远程设备增加快速分享\n'
'5. 收藏支持websocket消息持久化\n'
'6. 远程脚本加载添加引导\n'
'7. 优化消息体大文本展示\n'
'8. 修复自定已读状态丢失问题\n'
'1. 新增多选功能,支持批量删除、导出、重放\n'
'2. 增强请求重写,支持目标请求失败时自动重写\n'
'3. 新增最小化到托盘功能\n'
'4. 修复 macOS 退出后端口号占用问题\n'
'5. Windows 系统关闭系统代理时自动清理\n'
'6. 优化 Android 应用过滤列表的图标加载与缓存\n'
'7. 优化请求菜单,新增 Copy as fetch 等剪贴板相关操作\n'
'8. 服务上报新增分离式 report server 模式\n'
: 'Note: HTTPS capture is disabled by default — please install the certificate before enabling HTTPS capture.\n'
'Click the HTTPS capture (lock) icon, choose "Install Root Certificate", and follow the prompts to complete installation.\n\n'
'1. Added HTML, CSS, and JS formatting with code highlighting;\n'
'2. Advanced repeat now supports specifying the time;\n'
'3. Added HAR file export for domain list;\n'
'4. Added quick share for remote devices;\n'
'5. Favorites support WebSocket message persistence;\n'
'6. Added guidance for remote script loading;\n'
'7. Optimized large text display in message body;\n'
'8. Fixed issue where custom read status was lost;\n',
'1. Added multi-select support for batch delete, export, and replay;\n'
'2. Improved request rewrite, supporting automatic rewrite when the target request fails;\n'
'3. Added minimize to tray support;\n'
'4. Fixed the port occupation issue after macOS exit;\n'
'5. Added automatic system proxy cleanup when disabling system proxy on Windows;\n'
'6. Optimized app icon loading and caching in Android app filter list;\n'
'7. Optimized the request menu with clipboard actions such as Copy as fetch;\n'
'8. Added a separated report server mode for reporting service;\n',
style: const TextStyle(fontSize: 14))));
});
}

View File

@@ -128,7 +128,7 @@ class MobileHomeState extends State<MobileHomePage> implements EventListener, Li
proxyServer.start();
_remoteHistorySubscription = HistoryStorage.onRemoteImported.listen((item) => _openHistoryPage(item));
if (widget.appConfiguration.upgradeNoticeV27) {
if (widget.appConfiguration.upgradeNoticeV28) {
WidgetsBinding.instance.addPostFrameCallback((_) {
showUpgradeNotice();
});
@@ -336,26 +336,27 @@ class MobileHomeState extends State<MobileHomePage> implements EventListener, Li
String content = isCN
? '提示默认不会开启HTTPS抓包请安装证书后再开启HTTPS抓包。\n\n'
'1. 新增html、css、js格式化以及代码高亮\n'
'2. 高级重发支持指定时间\n'
'3. 域名列表增加导出har文件\n'
'4. 远程设备增加快速分享\n'
'5. 收藏支持websocket消息持久化\n'
'6. 远程脚本加载添加引导\n'
'7. 优化消息体大文本展示\n'
'8. 修复自定已读状态丢失问题\n'
'1. 新增多选功能,支持批量删除、导出、重放\n'
'2. 增强请求重写,支持目标请求失败时自动重写\n'
'3. 新增最小化到托盘功能\n'
'4. 修复 macOS 退出后端口号占用问题\n'
'5. Windows 系统关闭系统代理时自动清理\n'
'6. 优化 Android 应用过滤列表的图标加载与缓存\n'
'7. 优化请求菜单,新增 Copy as fetch 等剪贴板相关操作\n'
'8. 服务上报新增分离式 report server 模式\n'
: 'Note: HTTPS capture is disabled by default — please install the certificate before enabling HTTPS capture.\n\n'
'1. Added HTML, CSS, and JS formatting with code highlighting;\n'
'2. Advanced repeat now supports specifying the time;\n'
'3. Added HAR file export for domain list;\n'
'4. Added quick share for remote devices;\n'
'5. Favorites support WebSocket message persistence;\n'
'6. Added guidance for remote script loading;\n'
'7. Optimized large text display in message body;\n'
'8. Fixed issue where custom read status was lost;\n';
'1. Added multi-select support for batch delete, export, and replay;\n'
'2. Improved request rewrite, supporting automatic rewrite when the target request fails;\n'
'3. Added minimize to tray support;\n'
'4. Fixed the port occupation issue after macOS exit;\n'
'5. Added automatic system proxy cleanup when disabling system proxy on Windows;\n'
'6. Optimized app icon loading and caching in Android app filter list;\n'
'7. Optimized the request menu with clipboard actions such as Copy as fetch;\n'
'8. Added a separated report server mode for reporting service;\n'
;
showAlertDialog(isCN ? '更新内容V${AppConfiguration.version}' : "What's new in V${AppConfiguration.version}", content,
() {
widget.appConfiguration.upgradeNoticeV27 = false;
widget.appConfiguration.upgradeNoticeV28 = false;
widget.appConfiguration.flushConfig();
});
}

View File

@@ -125,7 +125,7 @@ class DomainListState extends State<DomainList> with AutomaticKeepAliveClientMix
}
}
clean() {
void clean() {
setState(() {
view.clear();
domainList.clear();
@@ -135,10 +135,10 @@ class DomainListState extends State<DomainList> with AutomaticKeepAliveClientMix
});
}
remove(List<HttpRequest> list) {
void remove(List<HttpRequest> list) {
for (var request in list) {
containerMap[request.hostAndPort]?.remove(request);
if (containerMap[request.hostAndPort]!.isEmpty) {
if (containerMap[request.hostAndPort]?.isEmpty ?? false) {
domainList.remove(request.hostAndPort);
view.remove(request.hostAndPort);
}
@@ -243,7 +243,10 @@ class DomainListState extends State<DomainList> with AutomaticKeepAliveClientMix
displayDomain: false,
container: ListenableList(sortDesc ? list : list?.reversed.toList()),
sortDesc: sortDesc,
onRemove: widget.onRemove,
onRemove: (requests) {
widget.onRemove?.call(requests);
remove(requests);
},
proxyServer: widget.proxyServer,
selectionController: MultiSelectController(),
));

View File

@@ -467,15 +467,11 @@ class _HistoryRecordState extends State<HistoryRecord> {
onTap: () => export(context),
child: IconText(icon: const Icon(Icons.share), text: localizations.viewExport)),
PopupMenuItem(
height: 32,
child: ListTile(
dense: true,
leading: const Icon(Icons.checklist_rtl_outlined),
title: Text(localizations.selectAction),
onTap: () async {
await Navigator.maybePop(context);
multiSelectController.toggleSelectionMode();
})),
onTap: () async {
multiSelectController.toggleSelectionMode();
},
child: IconText(
icon: const Icon(Icons.checklist_rtl_outlined), text: localizations.selectAction)),
PopupMenuItem(
onTap: () async {
var requests = requestStateKey.currentState?.currentView();

View File

@@ -176,9 +176,10 @@ class RequestListState extends State<RequestListWidget> {
if (await Platforms.isIpad() && context.mounted) {
box = context.findRenderObject() as RenderBox?;
}
Share.shareXFiles([file],
SharePlus.instance.share(ShareParams(
files: [file],
fileNameOverrides: [fileName],
sharePositionOrigin: box == null ? null : box.localToGlobal(Offset.zero) & box.size);
sharePositionOrigin: box == null ? null : box.localToGlobal(Offset.zero) & box.size));
}
void sort(bool sortDesc) {

View File

@@ -2,7 +2,7 @@ name: proxypin
description: ProxyPin
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.2.8+30
version: 1.2.8+31
environment:
sdk: '>=3.0.2 <4.0.0'