Merge branch 'design'

This commit is contained in:
guozhigq
2024-06-10 00:20:29 +08:00
31 changed files with 80 additions and 80 deletions

View File

@ -34,7 +34,7 @@ class HttpError extends StatelessWidget {
fn!(); fn!();
}, },
style: ButtonStyle( style: ButtonStyle(
backgroundColor: MaterialStateProperty.resolveWith((states) { backgroundColor: WidgetStateProperty.resolveWith((states) {
return Theme.of(context).colorScheme.primary.withAlpha(20); return Theme.of(context).colorScheme.primary.withAlpha(20);
}), }),
), ),

View File

@ -305,7 +305,7 @@ class VideoContent extends StatelessWidget {
if (source == 'later') ...[ if (source == 'later') ...[
IconButton( IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () => onPressedFn?.call(), onPressed: () => onPressedFn?.call(),
icon: Icon( icon: Icon(

View File

@ -17,7 +17,6 @@ import 'package:pilipala/pages/search/index.dart';
import 'package:pilipala/pages/video/detail/index.dart'; import 'package:pilipala/pages/video/detail/index.dart';
import 'package:pilipala/router/app_pages.dart'; import 'package:pilipala/router/app_pages.dart';
import 'package:pilipala/pages/main/view.dart'; import 'package:pilipala/pages/main/view.dart';
import 'package:pilipala/services/disable_battery_opt.dart';
import 'package:pilipala/services/service_locator.dart'; import 'package:pilipala/services/service_locator.dart';
import 'package:pilipala/utils/app_scheme.dart'; import 'package:pilipala/utils/app_scheme.dart';
import 'package:pilipala/utils/data.dart'; import 'package:pilipala/utils/data.dart';
@ -66,7 +65,6 @@ void main() async {
} }
PiliSchame.init(); PiliSchame.init();
DisableBatteryOpt();
} }
class MyApp extends StatelessWidget { class MyApp extends StatelessWidget {

View File

@ -232,11 +232,11 @@ class _BangumiInfoState extends State<BangumiInfo> {
height: 34, height: 34,
child: IconButton( child: IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all( padding:
EdgeInsets.zero), WidgetStateProperty.all(EdgeInsets.zero),
backgroundColor: backgroundColor:
MaterialStateProperty.resolveWith( WidgetStateProperty.resolveWith(
(Set<MaterialState> states) { (Set<WidgetState> states) {
return t.colorScheme.primaryContainer return t.colorScheme.primaryContainer
.withOpacity(0.7); .withOpacity(0.7);
}), }),

View File

@ -139,7 +139,7 @@ class _BangumiPanelState extends State<BangumiPanel> {
height: 34, height: 34,
child: TextButton( child: TextButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () { onPressed: () {
widget.bangumiIntroController?.bottomSheetController = widget.bangumiIntroController?.bottomSheetController =

View File

@ -82,7 +82,7 @@ class AuthorPanel extends StatelessWidget {
height: 32, height: 32,
child: IconButton( child: IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () { onPressed: () {
showModalBottomSheet( showModalBottomSheet(

View File

@ -217,7 +217,7 @@ class VideoContent extends StatelessWidget {
bottom: -4, bottom: -4,
child: IconButton( child: IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () { onPressed: () {
showDialog( showDialog(

View File

@ -217,11 +217,10 @@ class HistoryItem extends StatelessWidget {
curve: Curves.easeInOut, curve: Curves.easeInOut,
child: IconButton( child: IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all( padding: WidgetStateProperty.all(
EdgeInsets.zero), EdgeInsets.zero),
backgroundColor: backgroundColor:
MaterialStateProperty WidgetStateProperty.resolveWith(
.resolveWith(
(states) { (states) {
return Colors.white return Colors.white
.withOpacity(0.8); .withOpacity(0.8);

View File

@ -278,8 +278,8 @@ class DefaultUser extends StatelessWidget {
height: 38, height: 38,
child: IconButton( child: IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
backgroundColor: MaterialStateProperty.resolveWith((states) { backgroundColor: WidgetStateProperty.resolveWith((states) {
return Theme.of(context).colorScheme.onInverseSurface; return Theme.of(context).colorScheme.onInverseSurface;
}), }),
), ),
@ -371,8 +371,8 @@ class CustomChip extends StatelessWidget {
), ),
backgroundColor: secondaryContainer, backgroundColor: secondaryContainer,
selectedColor: secondaryContainer, selectedColor: secondaryContainer,
color: MaterialStateProperty.resolveWith<Color>( color: WidgetStateProperty.resolveWith<Color>(
(Set<MaterialState> states) => secondaryContainer.withAlpha(200)), (Set<WidgetState> states) => secondaryContainer.withAlpha(200)),
padding: const EdgeInsets.fromLTRB(7, 1, 7, 1), padding: const EdgeInsets.fromLTRB(7, 1, 7, 1),
label: Text(label, style: chipTextStyle), label: Text(label, style: chipTextStyle),
onPressed: () => onTap(), onPressed: () => onTap(),

View File

@ -124,7 +124,7 @@ class _BottomControlState extends State<BottomControl> {
height: 34, height: 34,
child: IconButton( child: IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () async { onPressed: () async {
bool canUsePiP = false; bool canUsePiP = false;

View File

@ -253,8 +253,7 @@ class _LoginPageState extends State<LoginPage> {
IconButton( IconButton(
style: ButtonStyle( style: ButtonStyle(
backgroundColor: backgroundColor:
MaterialStateProperty.resolveWith( WidgetStateProperty.resolveWith((states) {
(states) {
return Theme.of(context) return Theme.of(context)
.colorScheme .colorScheme
.primary .primary
@ -344,8 +343,7 @@ class _LoginPageState extends State<LoginPage> {
IconButton( IconButton(
style: ButtonStyle( style: ButtonStyle(
backgroundColor: backgroundColor:
MaterialStateProperty.resolveWith( WidgetStateProperty.resolveWith((states) {
(states) {
return Theme.of(context) return Theme.of(context)
.colorScheme .colorScheme
.primary .primary

View File

@ -178,10 +178,10 @@ class _MediaPageState extends State<MediaPage>
child: Center( child: Center(
child: IconButton( child: IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all( padding: WidgetStateProperty.all(
EdgeInsets.zero), EdgeInsets.zero),
backgroundColor: backgroundColor:
MaterialStateProperty.resolveWith( WidgetStateProperty.resolveWith(
(states) { (states) {
return Theme.of(context) return Theme.of(context)
.colorScheme .colorScheme

View File

@ -90,9 +90,8 @@ class _MemberPageState extends State<MemberPage>
() => Text( () => Text(
_memberController.memberInfo.value.name ?? '', _memberController.memberInfo.value.name ?? '',
style: TextStyle( style: TextStyle(
color: Theme.of(context) color:
.colorScheme Theme.of(context).colorScheme.onSurface,
.onBackground,
fontSize: 14), fontSize: 14),
), ),
), ),

View File

@ -93,7 +93,7 @@ class SearchVideoPanel extends StatelessWidget {
height: 32, height: 32,
child: IconButton( child: IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () => controller.onShowFilterSheet(ctr), onPressed: () => controller.onShowFilterSheet(ctr),
icon: Icon( icon: Icon(

View File

@ -240,10 +240,10 @@ class _ExtraSettingState extends State<ExtraSetting> {
alignment: Alignment.centerRight, alignment: Alignment.centerRight,
scale: 0.8, scale: 0.8,
child: Switch( child: Switch(
thumbIcon: MaterialStateProperty.resolveWith<Icon?>( thumbIcon: WidgetStateProperty.resolveWith<Icon?>(
(Set<MaterialState> states) { (Set<WidgetState> states) {
if (states.isNotEmpty && if (states.isNotEmpty &&
states.first == MaterialState.selected) { states.first == WidgetState.selected) {
return const Icon(Icons.done); return const Icon(Icons.done);
} }
return null; // All other states will use the default thumbIcon. return null; // All other states will use the default thumbIcon.

View File

@ -69,10 +69,10 @@ class _StyleSettingState extends State<StyleSetting> {
alignment: Alignment.centerRight, alignment: Alignment.centerRight,
scale: 0.8, scale: 0.8,
child: Switch( child: Switch(
thumbIcon: MaterialStateProperty.resolveWith<Icon?>( thumbIcon: WidgetStateProperty.resolveWith<Icon?>(
(Set<MaterialState> states) { (Set<WidgetState> states) {
if (states.isNotEmpty && if (states.isNotEmpty &&
states.first == MaterialState.selected) { states.first == WidgetState.selected) {
return const Icon(Icons.done); return const Icon(Icons.done);
} }
return null; // All other states will use the default thumbIcon. return null; // All other states will use the default thumbIcon.

View File

@ -70,9 +70,9 @@ class _SetSwitchItemState extends State<SetSwitchItem> {
alignment: Alignment.centerRight, // 缩放Switch的大小后保持右侧对齐, 避免右侧空隙过大 alignment: Alignment.centerRight, // 缩放Switch的大小后保持右侧对齐, 避免右侧空隙过大
scale: 0.8, scale: 0.8,
child: Switch( child: Switch(
thumbIcon: MaterialStateProperty.resolveWith<Icon?>( thumbIcon:
(Set<MaterialState> states) { WidgetStateProperty.resolveWith<Icon?>((Set<WidgetState> states) {
if (states.isNotEmpty && states.first == MaterialState.selected) { if (states.isNotEmpty && states.first == WidgetState.selected) {
return const Icon(Icons.done); return const Icon(Icons.done);
} }
return null; // All other states will use the default thumbIcon. return null; // All other states will use the default thumbIcon.

View File

@ -53,6 +53,7 @@ class _SubPageState extends State<SubPage> {
if (snapshot.connectionState == ConnectionState.done) { if (snapshot.connectionState == ConnectionState.done) {
Map? data = snapshot.data; Map? data = snapshot.data;
if (data != null && data['status']) { if (data != null && data['status']) {
if (_subController.subFolderData.value.list!.isNotEmpty) {
return Obx( return Obx(
() => ListView.builder( () => ListView.builder(
controller: scrollController, controller: scrollController,
@ -65,6 +66,12 @@ class _SubPageState extends State<SubPage> {
}, },
), ),
); );
} else {
return const CustomScrollView(
physics: NeverScrollableScrollPhysics(),
slivers: [HttpError(errMsg: '', btnText: '没有数据', fn: null)],
);
}
} else { } else {
return CustomScrollView( return CustomScrollView(
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),

View File

@ -114,16 +114,15 @@ class VideoContent extends StatelessWidget {
Row( Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
SizedBox( IconButton(
height: 35, style: ButtonStyle(
width: 35, padding: WidgetStateProperty.all(EdgeInsets.zero),
child: IconButton(
onPressed: () => cancelSub?.call(subFolderItem),
style: TextButton.styleFrom(
foregroundColor: Theme.of(context).colorScheme.outline,
padding: const EdgeInsets.fromLTRB(0, 0, 0, 0),
), ),
icon: const Icon(Icons.delete_outline, size: 18), onPressed: () => cancelSub?.call(subFolderItem),
icon: Icon(
Icons.clear_outlined,
color: Theme.of(context).colorScheme.outline,
size: 18,
), ),
) )
], ],

View File

@ -106,7 +106,7 @@ class _PagesPanelState extends State<PagesPanel> {
height: 34, height: 34,
child: TextButton( child: TextButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () { onPressed: () {
widget.videoIntroCtr.bottomSheetController = widget.videoIntroCtr.bottomSheetController =

View File

@ -97,7 +97,7 @@ class ReplyItem extends StatelessWidget {
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(7), borderRadius: BorderRadius.circular(7),
color: colorScheme.background, color: colorScheme.surface,
), ),
child: Icon( child: Icon(
Icons.offline_bolt, Icons.offline_bolt,

View File

@ -27,8 +27,8 @@ class ToolbarIconButton extends StatelessWidget {
? Theme.of(context).colorScheme.onSecondaryContainer ? Theme.of(context).colorScheme.onSecondaryContainer
: Theme.of(context).colorScheme.outline, : Theme.of(context).colorScheme.outline,
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
backgroundColor: MaterialStateProperty.resolveWith((states) { backgroundColor: WidgetStateProperty.resolveWith((states) {
return selected return selected
? Theme.of(context).colorScheme.secondaryContainer ? Theme.of(context).colorScheme.secondaryContainer
: null; : null;

View File

@ -259,7 +259,7 @@ class _VideoReplyNewDialogState extends State<VideoReplyNewDialog>
size: 22), size: 22),
label: const Text('转发到动态'), label: const Text('转发到动态'),
style: ButtonStyle( style: ButtonStyle(
foregroundColor: MaterialStateProperty.all( foregroundColor: WidgetStateProperty.all(
isForward.value isForward.value
? Theme.of(context).colorScheme.primary ? Theme.of(context).colorScheme.primary
: Theme.of(context).colorScheme.outline, : Theme.of(context).colorScheme.outline,

View File

@ -412,7 +412,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
height: 32, height: 32,
child: TextButton( child: TextButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () => vdCtr.showShootDanmakuSheet(), onPressed: () => vdCtr.showShootDanmakuSheet(),
child: child:

View File

@ -108,7 +108,7 @@ class AiDetail extends StatelessWidget {
fontSize: 13, fontSize: 13,
color: Theme.of(context) color: Theme.of(context)
.colorScheme .colorScheme
.onBackground, .onSurface,
height: 1.5, height: 1.5,
), ),
children: [ children: [

View File

@ -1248,7 +1248,7 @@ class _HeaderControlState extends State<HeaderControl> {
height: 34, height: 34,
child: TextButton( child: TextButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () => showShootDanmakuSheet(), onPressed: () => showShootDanmakuSheet(),
child: const Text( child: const Text(
@ -1263,7 +1263,7 @@ class _HeaderControlState extends State<HeaderControl> {
child: Obx( child: Obx(
() => IconButton( () => IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () { onPressed: () {
_.isOpenDanmu.value = !_.isOpenDanmu.value; _.isOpenDanmu.value = !_.isOpenDanmu.value;
@ -1286,7 +1286,7 @@ class _HeaderControlState extends State<HeaderControl> {
height: 34, height: 34,
child: IconButton( child: IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () async { onPressed: () async {
bool canUsePiP = false; bool canUsePiP = false;
@ -1330,7 +1330,7 @@ class _HeaderControlState extends State<HeaderControl> {
height: 34, height: 34,
child: TextButton( child: TextButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () => showSetSpeedSheet(), onPressed: () => showSetSpeedSheet(),
child: Text( child: Text(

View File

@ -95,9 +95,9 @@ class _WhisperDetailPageState extends State<WhisperDetailPage>
height: 34, height: 34,
child: IconButton( child: IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
backgroundColor: MaterialStateProperty.resolveWith( backgroundColor: WidgetStateProperty.resolveWith(
(Set<MaterialState> states) { (Set<WidgetState> states) {
return Theme.of(context) return Theme.of(context)
.colorScheme .colorScheme
.primaryContainer .primaryContainer

View File

@ -279,7 +279,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
widget.showEposideCb?.call(); widget.showEposideCb?.call();
}, },
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
child: const Text( child: const Text(
'选集', '选集',
@ -294,7 +294,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
child: TextButton( child: TextButton(
onPressed: () => _.toggleVideoFit(), onPressed: () => _.toggleVideoFit(),
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
child: Obx( child: Obx(
() => Text( () => Text(
@ -311,7 +311,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
height: 34, height: 34,
child: TextButton( child: TextButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () {}, onPressed: () {},
child: Obx( child: Obx(

View File

@ -17,7 +17,7 @@ class ComBtn extends StatelessWidget {
height: 34, height: 34,
child: IconButton( child: IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () { onPressed: () {
fuc!(); fuc!();

View File

@ -68,7 +68,7 @@ class PlayOrPauseButtonState extends State<PlayOrPauseButton>
height: 34, height: 34,
child: IconButton( child: IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: player.playOrPause, onPressed: player.playOrPause,
color: Colors.white, color: Colors.white,

View File

@ -39,7 +39,7 @@ Future imageSaveDialog(context, videoItem, closeFn) {
const BorderRadius.all(Radius.circular(20))), const BorderRadius.all(Radius.circular(20))),
child: IconButton( child: IconButton(
style: ButtonStyle( style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.zero), padding: WidgetStateProperty.all(EdgeInsets.zero),
), ),
onPressed: () => closeFn!(), onPressed: () => closeFn!(),
icon: const Icon( icon: const Icon(