* opt: danmaku weight

* opt: cache clean

* opt: level img

* opt: play icon

* opt: svg big-vip

* opt: webview ua

* opt: simple dialog

* feat: export vtt

* tweak

* opt: mapIndexed

* feat: more subtitle

* refa: settings page

* feat: codec list options

* drawPath

Signed-off-by: dom <githubaccount56556@proton.me>

* custom dialog option

Signed-off-by: dom <githubaccount56556@proton.me>

* update

Signed-off-by: dom <githubaccount56556@proton.me>

* Revert "drawPath"

This reverts commit e8a4b19f0f.

* opt: _initStreamIndex

* fix: avoid gap

* fix: scale [skip ci]

* fix: hide repost menu not login

* tweaks

Signed-off-by: dom <githubaccount56556@proton.me>

---------

Co-authored-by: dom <githubaccount56556@proton.me>
This commit is contained in:
My-Responsitories
2026-06-26 02:51:41 +00:00
committed by GitHub
parent 3dee6a85e5
commit 9d94c72e95
96 changed files with 2268 additions and 2143 deletions

View File

@@ -1,4 +1,5 @@
import 'package:PiliPlus/common/widgets/dialog/dialog.dart';
import 'package:PiliPlus/common/widgets/dialog/simple_dialog_option.dart';
import 'package:PiliPlus/common/widgets/loading_widget/loading_widget.dart';
import 'package:PiliPlus/common/widgets/scroll_physics.dart';
import 'package:PiliPlus/common/widgets/view_safe_area.dart';
@@ -194,62 +195,48 @@ class _FollowPageState extends State<FollowPage> {
void _onHandleTag(int index, MemberTagItemModel item) {
showDialog(
context: context,
builder: (context) => AlertDialog(
builder: (context) => SimpleDialog(
clipBehavior: Clip.hardEdge,
contentPadding: const EdgeInsets.symmetric(vertical: 12),
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
ListTile(
onTap: () {
Get.back();
String tagName = item.name!;
showConfirmDialog(
context: context,
title: const Text('编辑分组名称'),
content: TextFormField(
autofocus: true,
initialValue: tagName,
onChanged: (value) => tagName = value,
inputFormatters: [
LengthLimitingTextInputFormatter(16),
],
decoration: const InputDecoration(
border: OutlineInputBorder(),
),
children: [
DialogOption(
onPressed: () {
Get.back();
String tagName = item.name!;
showConfirmDialog(
context: context,
title: const Text('编辑分组名称'),
content: TextFormField(
autofocus: true,
initialValue: tagName,
onChanged: (value) => tagName = value,
inputFormatters: [LengthLimitingTextInputFormatter(16)],
decoration: const InputDecoration(
border: OutlineInputBorder(),
),
onConfirm: () {
if (tagName.isNotEmpty) {
_followController.onUpdateTag(item, tagName);
}
},
);
},
dense: true,
title: const Text(
'修改名称',
style: TextStyle(fontSize: 14),
),
),
ListTile(
onTap: () {
Get.back();
showConfirmDialog(
context: context,
title: const Text('删除分组'),
content: const Text('删除后,该分组下的用户依旧保留?'),
onConfirm: () =>
_followController.onDelTag(index, item.tagid!),
);
},
dense: true,
title: const Text(
'删除分组',
style: TextStyle(fontSize: 14),
),
),
],
),
),
onConfirm: () {
if (tagName.isNotEmpty) {
_followController.onUpdateTag(item, tagName);
}
},
);
},
child: const Text('修改名称', style: TextStyle(fontSize: 14)),
),
DialogOption(
onPressed: () {
Get.back();
showConfirmDialog(
context: context,
title: const Text('删除分组'),
content: const Text('删除后,该分组下的用户依旧保留?'),
onConfirm: () => _followController.onDelTag(index, item.tagid!),
);
},
child: const Text('删除分组', style: TextStyle(fontSize: 14)),
),
],
),
);
}