mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-14 21:24:02 +08:00
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user