mod: memberpage: show silent status

Closes #158

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-01-14 09:50:18 +08:00
parent 0c08fe1a90
commit 471c95abe8
3 changed files with 59 additions and 11 deletions

View File

@@ -8,6 +8,7 @@ import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:intl/intl.dart';
import 'package:share_plus/share_plus.dart'; import 'package:share_plus/share_plus.dart';
enum MemberTabType { none, home, dynamic, contribute, favorite, bangumi } enum MemberTabType { none, home, dynamic, contribute, favorite, bangumi }
@@ -40,6 +41,9 @@ class MemberControllerNew extends CommonController
dynamic live; dynamic live;
int? silence;
String? endTime;
@override @override
bool customHandleResponse(Success response) { bool customHandleResponse(Success response) {
username = response.response?.card?.name ?? ''; username = response.response?.card?.name ?? '';
@@ -49,6 +53,16 @@ class MemberControllerNew extends CommonController
: response.response?.relation ?? 1; : response.response?.relation ?? 1;
tab2 = response.response.tab2; tab2 = response.response.tab2;
live = response.response?.live; live = response.response?.live;
silence = response.response?.card?.silence;
if (response.response?.card?.endTime != null) {
if (response.response.card.endTime == 0) {
endTime = ': 永久封禁';
} else if (response.response.card.endTime >
DateTime.now().millisecondsSinceEpoch ~/ 1000) {
endTime =
':至 ${DateFormat('yyyy-MM-dd HH:mm:ss').format(DateTime.fromMillisecondsSinceEpoch(response.response.card.endTime * 1000))}';
}
}
if (tab2 != null && tab2!.isNotEmpty) { if (tab2 != null && tab2!.isNotEmpty) {
if (!response.response.tab.toJson().values.contains(true) && if (!response.response.tab.toJson().values.contains(true) &&
tab2!.first.param == 'home') { tab2!.first.param == 'home') {

View File

@@ -318,6 +318,8 @@ class _MemberPageNewState extends State<MemberPageNew>
images: userState.response.images, images: userState.response.images,
onFollow: () => _userController.onFollow(context), onFollow: () => _userController.onFollow(context),
live: _userController.live, live: _userController.live,
silence: _userController.silence,
endTime: _userController.endTime,
), ),
), ),
), ),

View File

@@ -19,6 +19,8 @@ class UserInfoCard extends StatelessWidget {
required this.isFollow, required this.isFollow,
required this.onFollow, required this.onFollow,
this.live, this.live,
this.silence,
this.endTime,
}); });
final bool isV; final bool isV;
@@ -29,6 +31,8 @@ class UserInfoCard extends StatelessWidget {
final space.Images images; final space.Images images;
final VoidCallback onFollow; final VoidCallback onFollow;
final dynamic live; final dynamic live;
final int? silence;
final String? endTime;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -259,17 +263,45 @@ class UserInfoCard extends StatelessWidget {
], ],
), ),
), ),
// if (card.spaceTagBottom != null && card.spaceTagBottom!.isNotEmpty) if (silence == 1)
// Padding( Builder(builder: (context) {
// padding: const EdgeInsets.only(left: 20, top: 8, right: 20), bool isLight = Theme.of(context).brightness == Brightness.light;
// child: Wrap( return GestureDetector(
// spacing: 5, onTap: () {
// runSpacing: 8, Utils.handleWebview(
// children: card.spaceTagBottom! 'https://www.bilibili.com/blackroom/ban/${card.mid}');
// .map((item) => Text(item.title ?? '')) },
// .toList(), child: Container(
// ), decoration: BoxDecoration(
// ), borderRadius: BorderRadius.circular(6),
color: isLight
? Theme.of(context).colorScheme.errorContainer
: Theme.of(context).colorScheme.error,
),
margin: const EdgeInsets.only(left: 20, top: 8, right: 20),
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
child: Row(
children: [
Icon(
Icons.info,
size: MediaQuery.textScalerOf(context).scale(18),
color: isLight
? Theme.of(context).colorScheme.onErrorContainer
: Theme.of(context).colorScheme.onError,
),
Text(
' 该账号封禁中${endTime ?? ''}',
style: TextStyle(
color: isLight
? Theme.of(context).colorScheme.onErrorContainer
: Theme.of(context).colorScheme.onError,
),
),
],
),
),
);
}),
]; ];
_buildRight(BuildContext context) => Column( _buildRight(BuildContext context) => Column(