mirror of
https://github.com/wanghongenpin/proxypin.git
synced 2026-05-30 17:05:49 +08:00
1.2.8-beta
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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))));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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(),
|
||||
));
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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'
|
||||
|
||||
Reference in New Issue
Block a user