Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-05-06 14:14:19 +08:00
parent 1a8c348af1
commit 07843a5e77
239 changed files with 3175 additions and 13237 deletions

View File

@@ -6,12 +6,8 @@ import 'package:PiliPlus/common/widgets/flutter/list_tile.dart';
import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/common/nav_bar_config.dart';
import 'package:PiliPlus/models_new/fav/fav_folder/list.dart';
import 'package:PiliPlus/pages/common/common_page.dart';
import 'package:PiliPlus/pages/home/view.dart';
import 'package:PiliPlus/pages/login/controller.dart';
import 'package:PiliPlus/pages/main/controller.dart';
import 'package:PiliPlus/pages/mine/controller.dart';
import 'package:PiliPlus/pages/mine/widgets/item.dart';
import 'package:PiliPlus/utils/bili_utils.dart';
@@ -19,49 +15,25 @@ import 'package:PiliPlus/utils/extension/get_ext.dart';
import 'package:PiliPlus/utils/extension/num_ext.dart';
import 'package:PiliPlus/utils/extension/theme_ext.dart';
import 'package:PiliPlus/utils/platform_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/material.dart' hide ListTile;
import 'package:get/get.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
class MinePage extends StatefulWidget {
const MinePage({super.key, this.showBackBtn = false});
final bool showBackBtn;
const MinePage({super.key});
@override
State<MinePage> createState() => _MediaPageState();
}
class _MediaPageState extends CommonPageState<MinePage>
class _MediaPageState extends State<MinePage>
with AutomaticKeepAliveClientMixin {
final MineController controller = Get.putOrFind(MineController.new);
late final MainController _mainController = Get.find<MainController>();
@override
bool get wantKeepAlive => true;
bool get checkPage =>
_mainController.navigationBars[0] != NavigationBarType.mine &&
_mainController.selectedIndex.value == 0;
@override
bool onNotificationType1(UserScrollNotification notification) {
if (checkPage) {
return false;
}
return super.onNotificationType1(notification);
}
@override
bool onNotificationType2(ScrollNotification notification) {
if (checkPage) {
return false;
}
return super.onNotificationType2(notification);
}
@override
Widget build(BuildContext context) {
super.build(context);
@@ -78,20 +50,18 @@ class _MediaPageState extends CommonPageState<MinePage>
type: .transparency,
child: refreshIndicator(
onRefresh: controller.onRefresh,
child: onBuild(
ListView(
padding: const .only(bottom: 100),
physics: const AlwaysScrollableScrollPhysics(),
children: [
_buildUserInfo(theme, secondary),
_buildActions(secondary),
Obx(
() => controller.loadingState.value is Loading
? const SizedBox.shrink()
: _buildFav(theme, secondary),
),
],
),
child: ListView(
padding: const .only(bottom: 100),
physics: const AlwaysScrollableScrollPhysics(),
children: [
_buildUserInfo(theme, secondary),
_buildActions(secondary),
Obx(
() => controller.loadingState.value is Loading
? const SizedBox.shrink()
: _buildFav(theme, secondary),
),
],
),
),
),
@@ -142,36 +112,6 @@ class _MediaPageState extends CommonPageState<MinePage>
spacing: 5,
mainAxisAlignment: .end,
children: [
if (widget.showBackBtn)
const Expanded(
child: Align(
alignment: Alignment.centerLeft,
child: Padding(
padding: EdgeInsets.only(left: 8),
child: BackButton(),
),
),
),
if (!_mainController.hasHome) ...[
IconButton(
iconSize: iconSize,
padding: padding,
style: style,
tooltip: '搜索',
onPressed: () => Get.toNamed('/search'),
icon: const Icon(Icons.search),
),
msgBadge(_mainController),
],
if (GStorage.reply != null)
IconButton(
iconSize: iconSize,
padding: padding,
style: style,
tooltip: '评论记录',
onPressed: () => Get.toNamed('/myReply'),
icon: const Icon(Icons.message_outlined),
),
Obx(
() {
final anonymity = MineController.anonymity.value;