mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-07-01 06:40:14 +08:00
tweaks (#2426)
* 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:
committed by
GitHub
parent
3dee6a85e5
commit
9d94c72e95
65
lib/pages/setting/common_setting.dart
Normal file
65
lib/pages/setting/common_setting.dart
Normal file
@@ -0,0 +1,65 @@
|
||||
import 'package:PiliPlus/models/common/setting_type.dart';
|
||||
import 'package:PiliPlus/pages/setting/models/model.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class CommonSetting extends StatefulWidget {
|
||||
const CommonSetting({
|
||||
super.key,
|
||||
required this.settingType,
|
||||
this.showAppBar = true,
|
||||
});
|
||||
|
||||
final bool showAppBar;
|
||||
final SettingType settingType;
|
||||
|
||||
@override
|
||||
State<CommonSetting> createState() => _CommonSettingState();
|
||||
}
|
||||
|
||||
class _CommonSettingState extends State<CommonSetting> {
|
||||
late EdgeInsets padding;
|
||||
late List<SettingsModel> settings;
|
||||
|
||||
void _initSetting() {
|
||||
settings = widget.settingType.settings;
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_initSetting();
|
||||
}
|
||||
|
||||
@override
|
||||
void didUpdateWidget(CommonSetting oldWidget) {
|
||||
super.didUpdateWidget(oldWidget);
|
||||
if (widget.settingType != oldWidget.settingType) {
|
||||
_initSetting();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
super.didChangeDependencies();
|
||||
padding = MediaQuery.viewPaddingOf(context);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final showAppBar = widget.showAppBar;
|
||||
return Scaffold(
|
||||
resizeToAvoidBottomInset: false,
|
||||
appBar: showAppBar ? AppBar(title: Text(widget.settingType.title)) : null,
|
||||
body: ListView.builder(
|
||||
key: ValueKey(widget.settingType),
|
||||
padding: EdgeInsets.only(
|
||||
left: showAppBar ? padding.left : 0,
|
||||
right: showAppBar ? padding.right : 0,
|
||||
bottom: padding.bottom + 100,
|
||||
),
|
||||
itemCount: settings.length,
|
||||
itemBuilder: (context, index) => settings[index].widget,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user