Compare commits

..

7 Commits

9 changed files with 53 additions and 26 deletions

View File

@ -0,0 +1,9 @@
## 1.0.21
### 修复
+ 推荐视频全屏问题
+ 番剧全屏播放时灰屏问题
+ 评论回调导致页面卡死问题
更多更新日志可在Github上查看
问题反馈、功能建议请查看「关于」页面。

View File

@ -1,13 +1,13 @@
import 'package:flutter/material.dart';
const defaultNavigationBars = [
List defaultNavigationBars = [
{
'id': 0,
'icon': Icon(
'icon': const Icon(
Icons.home_outlined,
size: 21,
),
'selectIcon': Icon(
'selectIcon': const Icon(
Icons.home,
size: 21,
),
@ -16,11 +16,11 @@ const defaultNavigationBars = [
},
{
'id': 1,
'icon': Icon(
'icon': const Icon(
Icons.motion_photos_on_outlined,
size: 21,
),
'selectIcon': Icon(
'selectIcon': const Icon(
Icons.motion_photos_on,
size: 21,
),
@ -29,11 +29,11 @@ const defaultNavigationBars = [
},
{
'id': 2,
'icon': Icon(
'icon': const Icon(
Icons.video_collection_outlined,
size: 20,
),
'selectIcon': Icon(
'selectIcon': const Icon(
Icons.video_collection,
size: 21,
),

View File

@ -34,8 +34,6 @@ class HomeController extends GetxController with GetTickerProviderStateMixin {
userInfo = userInfoCache.get('userInfoCache');
userLogin.value = userInfo != null;
userFace.value = userInfo != null ? userInfo.face : '';
// 进行tabs配置
setTabConfig();
hideSearchBar =
setting.get(SettingBoxKey.hideSearchBar, defaultValue: true);
if (setting.get(SettingBoxKey.enableSearchWord, defaultValue: true)) {
@ -43,6 +41,8 @@ class HomeController extends GetxController with GetTickerProviderStateMixin {
}
enableGradientBg =
setting.get(SettingBoxKey.enableGradientBg, defaultValue: true);
// 进行tabs配置
setTabConfig();
}
void onRefresh() {

View File

@ -23,7 +23,10 @@ class IntroDetail extends StatelessWidget {
sheetHeight = localCache.get('sheetHeight');
return Container(
color: Theme.of(context).colorScheme.background,
padding: const EdgeInsets.only(left: 14, right: 14),
padding: EdgeInsets.only(
left: 14,
right: 14,
bottom: MediaQuery.of(context).padding.bottom + 20),
height: sheetHeight,
child: Column(
children: [

View File

@ -280,7 +280,7 @@ class ReplyItem extends StatelessWidget {
// 完成评论,数据添加
if (value != null && value['data'] != null)
{
addReply!(value['data'])
addReply?.call(value['data'])
// replyControl.replies.add(value['data']),
}
});
@ -531,8 +531,8 @@ InlineSpan buildContent(
spanChilds.add(TextSpan(
text: str,
recognizer: TapGestureRecognizer()
..onTap =
() => replyReply(replyItem.root == 0 ? replyItem : fReplyItem)));
..onTap = () =>
replyReply?.call(replyItem.root == 0 ? replyItem : fReplyItem)));
}
// 分割文本并处理每个部分
@ -642,6 +642,11 @@ InlineSpan buildContent(
} else {
final String redirectUrl =
await UrlUtils.parseRedirectUrl(matchStr);
if (redirectUrl == matchStr) {
Clipboard.setData(ClipboardData(text: matchStr));
SmartDialog.showToast('地址可能有误');
return;
}
final String pathSegment = Uri.parse(redirectUrl).path;
final String lastPathSegment =
pathSegment.split('/').last;

View File

@ -92,7 +92,7 @@ class _VideoReplyReplyPanelState extends State<VideoReplyReplyPanel> {
icon: const Icon(Icons.close, size: 20),
onPressed: () {
_videoReplyReplyController.currentPage = 0;
widget.closePanel!();
widget.closePanel?.call;
Navigator.pop(context);
},
),
@ -184,6 +184,8 @@ class _VideoReplyReplyPanelState extends State<VideoReplyReplyPanel> {
.add(replyItem);
},
replyType: widget.replyType,
replyReply: (replyItem) =>
replyReply(replyItem),
);
}
},

View File

@ -79,7 +79,11 @@ class _HeaderControlState extends State<HeaderControl> {
} else {
showTitle = false;
}
setState(() {});
/// TODO setState() called after dispose()
if (mounted) {
setState(() {});
}
});
}

View File

@ -14,19 +14,23 @@ class UrlUtils {
dio.options.validateStatus = (status) {
return status == 200 || status == 301 || status == 302;
};
final response = await dio.get(url);
if (response.statusCode == 302) {
redirectUrl = response.headers['location']?.first as String;
if (redirectUrl.endsWith('/')) {
redirectUrl = redirectUrl.substring(0, redirectUrl.length - 1);
}
} else {
if (url.endsWith('/')) {
url = url.substring(0, url.length - 1);
try {
final response = await dio.get(url);
if (response.statusCode == 302) {
redirectUrl = response.headers['location']?.first as String;
if (redirectUrl.endsWith('/')) {
redirectUrl = redirectUrl.substring(0, redirectUrl.length - 1);
}
} else {
if (url.endsWith('/')) {
url = url.substring(0, url.length - 1);
}
return url;
}
return redirectUrl;
} catch (err) {
return url;
}
return redirectUrl;
}
// 匹配url路由跳转

View File

@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version: 1.0.20+1020
version: 1.0.21+1021
environment:
sdk: ">=2.19.6 <3.0.0"