diff --git a/lib/pages/msg_feed_top/at_me/controller.dart b/lib/pages/msg_feed_top/at_me/controller.dart index 3804dbee..604a2383 100644 --- a/lib/pages/msg_feed_top/at_me/controller.dart +++ b/lib/pages/msg_feed_top/at_me/controller.dart @@ -23,10 +23,12 @@ class AtMeController extends CommonController { cursor = data.cursor?.id ?? -1; cursorTime = data.cursor?.time ?? -1; if (currentPage != 1 && loadingState.value is Success) { - data.items ??= []; - data.items!.insert(0, (loadingState.value as Success).response); + loadingState.value = LoadingState.success( + (loadingState.value as Success).response as List + ..addAll(data.items ?? [])); + } else { + loadingState.value = LoadingState.success(data.items); } - loadingState.value = LoadingState.success(data.items); return true; } diff --git a/lib/pages/msg_feed_top/like_me/controller.dart b/lib/pages/msg_feed_top/like_me/controller.dart index d6ea1e48..e4e32705 100644 --- a/lib/pages/msg_feed_top/like_me/controller.dart +++ b/lib/pages/msg_feed_top/like_me/controller.dart @@ -3,7 +3,7 @@ import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/pages/common/common_controller.dart'; import 'package:PiliPlus/http/msg.dart'; import 'package:PiliPlus/utils/extension.dart'; -import '../../../models/msg/msgfeed_like_me.dart'; +import 'package:PiliPlus/models/msg/msgfeed_like_me.dart'; class LikeMeController extends CommonController { int cursor = -1; @@ -24,23 +24,17 @@ class LikeMeController extends CommonController { } cursor = data.total?.cursor?.id ?? -1; cursorTime = data.total?.cursor?.time ?? -1; - List latest = []; - List total = []; - if (data.latest?.items?.isNotEmpty == true) { - latest.addAll(data.latest!.items!); - } - if (data.total?.items?.isNotEmpty == true) { - total.addAll(data.total!.items!); - } + List latest = data.latest?.items ?? []; + List total = data.total?.items ?? []; if (currentPage != 1 && loadingState.value is Success) { - Pair, List> pair = - (loadingState.value as Success).response; - latest.insertAll(0, pair.first); - total.insertAll(0, pair.second); + loadingState.value = LoadingState.success((loadingState.value as Success) + .response as Pair, List> + ..first.addAll(latest) + ..second.addAll(total)); + } else { + loadingState.value = + LoadingState.success(Pair(first: latest, second: total)); } - loadingState.value = LoadingState.success( - Pair(first: latest, second: total), - ); return true; } diff --git a/lib/pages/msg_feed_top/reply_me/controller.dart b/lib/pages/msg_feed_top/reply_me/controller.dart index 63f403cd..ffa8d878 100644 --- a/lib/pages/msg_feed_top/reply_me/controller.dart +++ b/lib/pages/msg_feed_top/reply_me/controller.dart @@ -2,8 +2,7 @@ import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/pages/common/common_controller.dart'; import 'package:PiliPlus/utils/extension.dart'; import 'package:PiliPlus/http/msg.dart'; - -import '../../../models/msg/msgfeed_reply_me.dart'; +import 'package:PiliPlus/models/msg/msgfeed_reply_me.dart'; class ReplyMeController extends CommonController { int cursor = -1; @@ -24,10 +23,12 @@ class ReplyMeController extends CommonController { cursor = data.cursor?.id ?? -1; cursorTime = data.cursor?.time ?? -1; if (currentPage != 1 && loadingState.value is Success) { - data.items ??= []; - data.items!.insert(0, (loadingState.value as Success).response); + loadingState.value = LoadingState.success( + (loadingState.value as Success).response as List + ..addAll(data.items ?? [])); + } else { + loadingState.value = LoadingState.success(data.items); } - loadingState.value = LoadingState.success(data.items); return true; } diff --git a/lib/pages/webview/webview_page.dart b/lib/pages/webview/webview_page.dart index 890c6302..223f838c 100644 --- a/lib/pages/webview/webview_page.dart +++ b/lib/pages/webview/webview_page.dart @@ -185,12 +185,7 @@ class _WebviewPageNewState extends State { onTitleChanged: (controller, title) { _titleStream.add(title); }, - onCloseWindow: (controller) => Get.back( - result: - _url.startsWith('https://www.bilibili.com/h5/comment/report') - ? true - : null, - ), + onCloseWindow: (controller) => Get.back(), onLoadStop: (controller, url) { if (url.toString().startsWith('https://live.bilibili.com')) { _webViewController?.evaluateJavascript( diff --git a/lib/utils/app_scheme.dart b/lib/utils/app_scheme.dart index 382cf274..0a7fedc7 100644 --- a/lib/utils/app_scheme.dart +++ b/lib/utils/app_scheme.dart @@ -218,8 +218,10 @@ class PiliScheme { int type = int.parse(pathSegments[1]); int oid = int.parse(pathSegments[2]); int rootId = int.parse(pathSegments[3]); + int? rpId = uri.queryParameters['anchor'] != null + ? int.tryParse(uri.queryParameters['anchor']!) + : null; // int subType = int.parse(value.queryParameters['subType'] ?? '0'); - // int rpID = int.parse(value.queryParameters['anchor'] ?? '0'); // int extraIntentId = // int.parse(value.queryParameters['extraIntentId'] ?? '0'); Get.to( @@ -234,6 +236,9 @@ class PiliScheme { String? enterUri = uri.queryParameters['enterUri']; if (enterUri != null) { routePush(Uri.parse(enterUri)); + } else { + routePush( + Uri.parse('bilibili://following/detail/$oid')); } }, icon: const Icon(Icons.open_in_new), @@ -243,6 +248,7 @@ class PiliScheme { body: VideoReplyReplyPanel( oid: oid, rpid: rootId, + id: rpId, source: 'routePush', replyType: ReplyType.values[type], firstFloor: null,