mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-06-27 21:00:17 +08:00
* 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>
66 lines
1.6 KiB
Dart
66 lines
1.6 KiB
Dart
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,
|
|
),
|
|
);
|
|
}
|
|
}
|