mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
feat: custom grpc reply (#25)
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'package:PiliPalaX/pages/main/controller.dart';
|
||||
import 'package:PiliPalaX/pages/member/new/controller.dart'
|
||||
show MemberTabType, MemberTabTypeExt;
|
||||
import 'package:PiliPalaX/utils/global_data.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -152,7 +153,7 @@ class _ExtraSettingState extends State<ExtraSetting> {
|
||||
leading: Icon(Icons.notifications_none),
|
||||
setKey: SettingBoxKey.checkDynamic,
|
||||
defaultVal: true,
|
||||
callFn: (value) {
|
||||
onChanged: (value) {
|
||||
Get.find<MainController>().checkDynamic = value;
|
||||
},
|
||||
onTap: () {
|
||||
@@ -201,6 +202,16 @@ class _ExtraSettingState extends State<ExtraSetting> {
|
||||
);
|
||||
},
|
||||
),
|
||||
SetSwitchItem(
|
||||
title: '使用gRPC加载评论',
|
||||
subTitle: '如无法加载评论,可关闭\n非gRPC楼中楼无法定位评论、按热度/时间排序、查看对话',
|
||||
leading: Icon(Icons.reply),
|
||||
setKey: SettingBoxKey.grpcReply,
|
||||
defaultVal: true,
|
||||
onChanged: (value) {
|
||||
GlobalData().grpcReply = value;
|
||||
},
|
||||
),
|
||||
Obx(
|
||||
() => ListTile(
|
||||
enableFeedback: true,
|
||||
@@ -238,7 +249,7 @@ class _ExtraSettingState extends State<ExtraSetting> {
|
||||
leading: const Icon(Icons.whatshot_outlined),
|
||||
setKey: SettingBoxKey.enableSearchWord,
|
||||
defaultVal: true,
|
||||
callFn: (val) {
|
||||
onChanged: (val) {
|
||||
Get.find<HomeController>().defaultSearch.value = '';
|
||||
},
|
||||
),
|
||||
|
||||
@@ -225,7 +225,7 @@ class _PlaySpeedPageState extends State<PlaySpeedPage> {
|
||||
subTitle: '根据默认倍速长按时自动双倍',
|
||||
setKey: SettingBoxKey.enableAutoLongPressSpeed,
|
||||
defaultVal: enableAutoLongPressSpeed,
|
||||
callFn: (val) {
|
||||
onChanged: (val) {
|
||||
Map newItem = sheetMenu[1];
|
||||
val ? newItem['show'] = false : newItem['show'] = true;
|
||||
setState(() {
|
||||
|
||||
@@ -159,7 +159,7 @@ class _PlaySettingState extends State<PlaySetting> {
|
||||
leading: const Icon(Icons.picture_in_picture_outlined),
|
||||
setKey: SettingBoxKey.autoPiP,
|
||||
defaultVal: false,
|
||||
callFn: (val) {
|
||||
onChanged: (val) {
|
||||
if (val &&
|
||||
!setting.get(SettingBoxKey.enableBackgroundPlay,
|
||||
defaultValue: true)) {
|
||||
|
||||
@@ -231,7 +231,7 @@ class _RecommendSettingState extends State<RecommendSetting> {
|
||||
leading: const Icon(Icons.favorite_border_outlined),
|
||||
setKey: SettingBoxKey.exemptFilterForFollowed,
|
||||
defaultVal: true,
|
||||
callFn: (_) => {RecommendFilter.update},
|
||||
onChanged: (_) => {RecommendFilter.update},
|
||||
),
|
||||
// ListTile(
|
||||
// dense: false,
|
||||
@@ -267,7 +267,7 @@ class _RecommendSettingState extends State<RecommendSetting> {
|
||||
leading: const Icon(Icons.explore_outlined),
|
||||
setKey: SettingBoxKey.applyFilterToRelatedVideos,
|
||||
defaultVal: true,
|
||||
callFn: (_) => {RecommendFilter.update},
|
||||
onChanged: (_) => {RecommendFilter.update},
|
||||
),
|
||||
ListTile(
|
||||
dense: true,
|
||||
|
||||
@@ -64,7 +64,7 @@ class _StyleSettingState extends State<StyleSetting> {
|
||||
leading: const Icon(Icons.phonelink_outlined),
|
||||
setKey: SettingBoxKey.horizontalScreen,
|
||||
defaultVal: false,
|
||||
callFn: (value) {
|
||||
onChanged: (value) {
|
||||
if (value) {
|
||||
autoScreen();
|
||||
// SmartDialog.showToast('已开启横屏适配');
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
||||
import 'package:hive/hive.dart';
|
||||
import 'package:PiliPalaX/utils/storage.dart';
|
||||
|
||||
class SetSwitchItem extends StatefulWidget {
|
||||
@@ -8,7 +7,7 @@ class SetSwitchItem extends StatefulWidget {
|
||||
final String? subTitle;
|
||||
final String? setKey;
|
||||
final bool? defaultVal;
|
||||
final Function? callFn;
|
||||
final ValueChanged<bool>? onChanged;
|
||||
final bool? needReboot;
|
||||
final Widget? leading;
|
||||
final GestureTapCallback? onTap;
|
||||
@@ -18,7 +17,7 @@ class SetSwitchItem extends StatefulWidget {
|
||||
this.subTitle,
|
||||
this.setKey,
|
||||
this.defaultVal,
|
||||
this.callFn,
|
||||
this.onChanged,
|
||||
this.needReboot,
|
||||
this.leading,
|
||||
this.onTap,
|
||||
@@ -30,24 +29,23 @@ class SetSwitchItem extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _SetSwitchItemState extends State<SetSwitchItem> {
|
||||
// ignore: non_constant_identifier_names
|
||||
Box Setting = GStorage.setting;
|
||||
late bool val;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
val = Setting.get(widget.setKey, defaultValue: widget.defaultVal ?? false);
|
||||
val = GStorage.setting
|
||||
.get(widget.setKey, defaultValue: widget.defaultVal ?? false);
|
||||
}
|
||||
|
||||
void switchChange(value) async {
|
||||
val = value ?? !val;
|
||||
await Setting.put(widget.setKey, val);
|
||||
await GStorage.setting.put(widget.setKey, val);
|
||||
// if (widget.setKey == SettingBoxKey.autoUpdate && value == true) {
|
||||
// Utils.checkUpdate();
|
||||
// }
|
||||
if (widget.callFn != null) {
|
||||
widget.callFn!.call(val);
|
||||
if (widget.onChanged != null) {
|
||||
widget.onChanged!.call(val);
|
||||
}
|
||||
if (widget.needReboot != null && widget.needReboot!) {
|
||||
SmartDialog.showToast('重启生效');
|
||||
@@ -87,7 +85,7 @@ class _SetSwitchItemState extends State<SetSwitchItem> {
|
||||
return null; // All other states will use the default thumbIcon.
|
||||
}),
|
||||
value: val,
|
||||
onChanged: (val) => switchChange(val),
|
||||
onChanged: switchChange,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user