mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: memberpage: show silent status
Closes #158 Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -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') {
|
||||||
|
|||||||
@@ -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,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user