From 390046116bea866cdbb798ba4b1693b2a8076e61 Mon Sep 17 00:00:00 2001 From: orz12 Date: Mon, 26 Feb 2024 10:14:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=96=B0=E5=A2=9E=E6=9B=B4=E5=A4=9A?= =?UTF-8?q?=E5=88=A4=E7=A9=BA=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/http/user.dart | 6 +++++- lib/pages/about/index.dart | 4 ++++ lib/pages/history/controller.dart | 8 ++++++-- lib/pages/live_room/view.dart | 4 +--- lib/pages/member/widgets/profile.dart | 1 - lib/pages/video/detail/view.dart | 4 +--- lib/pages/video/detail/widgets/header_control.dart | 9 ++------- lib/plugin/pl_player/controller.dart | 2 +- lib/utils/data.dart | 4 +++- lib/utils/utils.dart | 4 ++++ 10 files changed, 27 insertions(+), 19 deletions(-) diff --git a/lib/http/user.dart b/lib/http/user.dart index 7d3def4e..2d075076 100644 --- a/lib/http/user.dart +++ b/lib/http/user.dart @@ -147,7 +147,11 @@ class UserHttp { // 观看历史暂停状态 static Future historyStatus() async { var res = await Request().get(Api.historyStatus); - return res; + if (res.data['code'] == 0) { + return {'status': true, 'data': res.data['data']}; + } else { + return {'status': false, 'data': [], 'msg': res.data['message']}; + } } // 清空历史记录 diff --git a/lib/pages/about/index.dart b/lib/pages/about/index.dart index 31b0a482..ed049529 100644 --- a/lib/pages/about/index.dart +++ b/lib/pages/about/index.dart @@ -215,6 +215,10 @@ class AboutController extends GetxController { // 获取远程版本 Future getRemoteApp() async { var result = await Request().get(Api.latestApp, extra: {'ua': 'pc'}); + if (result.data.isEmpty) { + SmartDialog.showToast('检查更新失败,github接口未返回数据,请检查网络'); + return false; + } data = LatestDataModel.fromJson(result.data[0]); remoteAppInfo = data; remoteVersion.value = data.tagName!; diff --git a/lib/pages/history/controller.dart b/lib/pages/history/controller.dart index b356e287..8324c028 100644 --- a/lib/pages/history/controller.dart +++ b/lib/pages/history/controller.dart @@ -88,8 +88,12 @@ class HistoryController extends GetxController { // 观看历史暂停状态 Future historyStatus() async { var res = await UserHttp.historyStatus(); - pauseStatus.value = res.data['data']; - localCache.put(LocalCacheKey.historyPause, res.data['data']); + if (res['status']) { + pauseStatus.value = res['data']; + localCache.put(LocalCacheKey.historyPause, res['data']); + } else { + SmartDialog.showToast(res['msg']); + } } // 清空观看历史 diff --git a/lib/pages/live_room/view.dart b/lib/pages/live_room/view.dart index 3d550639..84100e52 100644 --- a/lib/pages/live_room/view.dart +++ b/lib/pages/live_room/view.dart @@ -44,9 +44,7 @@ class _LiveRoomPageState extends State { @override void dispose() { plPlayerController!.dispose(); - if (floating != null) { - floating!.dispose(); - } + floating?.dispose(); super.dispose(); } diff --git a/lib/pages/member/widgets/profile.dart b/lib/pages/member/widgets/profile.dart index 2a4732bc..7ae66214 100644 --- a/lib/pages/member/widgets/profile.dart +++ b/lib/pages/member/widgets/profile.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; import 'package:PiliPalaX/common/widgets/network_img_layer.dart'; import 'package:PiliPalaX/models/live/item.dart'; diff --git a/lib/pages/video/detail/view.dart b/lib/pages/video/detail/view.dart index b7b16995..e46a1f01 100644 --- a/lib/pages/video/detail/view.dart +++ b/lib/pages/video/detail/view.dart @@ -218,9 +218,7 @@ class _VideoDetailPageState extends State fullScreenStatusListener.cancel(); plPlayerController!.dispose(); } - if (videoDetailController.floating != null) { - videoDetailController.floating!.dispose(); - } + videoDetailController.floating?.dispose(); videoPlayerServiceHandler.onVideoDetailDispose(); floating.dispose(); _lifecycleListener.dispose(); diff --git a/lib/pages/video/detail/widgets/header_control.dart b/lib/pages/video/detail/widgets/header_control.dart index 883a0c92..41ba739d 100644 --- a/lib/pages/video/detail/widgets/header_control.dart +++ b/lib/pages/video/detail/widgets/header_control.dart @@ -3,7 +3,6 @@ import 'dart:math'; import 'package:floating/floating.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:get/get.dart'; @@ -1204,13 +1203,9 @@ class _HeaderControlState extends State { padding: MaterialStateProperty.all(EdgeInsets.zero), ), onPressed: () async { - bool canUsePiP = false; + bool canUsePiP = widget.floating != null && + await widget.floating!.isPipAvailable; widget.controller!.hiddenControls(false); - try { - canUsePiP = await widget.floating!.isPipAvailable; - } on PlatformException catch (_) { - canUsePiP = false; - } if (canUsePiP) { final Rational aspectRatio = Rational( widget.videoDetailCtr!.data.dash!.video!.first.width!, diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index f5000001..10eb53f1 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -638,7 +638,7 @@ class PlPlayerController { Timer.periodic(const Duration(milliseconds: 200), (Timer t) async { //_timerForSeek = null; if (duration.value.inSeconds != 0) { - await _videoPlayerController!.stream.buffer.first; + await _videoPlayerController?.stream.buffer.first; await _videoPlayerController?.seek(position); // if (playerStatus.status.value == PlayerStatus.paused) { // play(); diff --git a/lib/utils/data.dart b/lib/utils/data.dart index 6647dadf..f0ae8b1b 100644 --- a/lib/utils/data.dart +++ b/lib/utils/data.dart @@ -15,6 +15,8 @@ class Data { return; } var res = await UserHttp.historyStatus(); - localCache.put(LocalCacheKey.historyPause, res.data['data']); + if (res['status']) { + localCache.put(LocalCacheKey.historyPause, res['data']); + } } } diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index 6be2b874..72a6a1fe 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -230,6 +230,10 @@ class Utils { SmartDialog.dismiss(); var currentInfo = await PackageInfo.fromPlatform(); var result = await Request().get(Api.latestApp, extra: {'ua': 'mob'}); + if (result.data.isEmpty) { + SmartDialog.showToast('检查更新失败,github接口未返回数据,请检查网络'); + return false; + } LatestDataModel data = LatestDataModel.fromJson(result.data[0]); String buildNumber = currentInfo.buildNumber; if (Platform.isAndroid) {