最小化弹窗问题

This commit is contained in:
roxy 2026-05-16 00:07:45 +08:00
parent 84b68fbb4a
commit 95dcd7e625

View File

@ -1928,16 +1928,20 @@ class RealTimeMessagingManager extends ChangeNotifier {
currentContext,
listen: false,
);
final isCurrentVisibleRoom =
rtcProvider.shouldShowRoomVisualEffects &&
rtcProvider.isVoiceRoomRouteVisible;
final launch = _buildRoomRocketLaunchFromStatusPayload(
rtcProvider: rtcProvider,
payload: data,
roomId: roomId,
);
if (_shouldHandleRoomRocketLaunchFromStatusPayload(
rtcProvider: rtcProvider,
payload: data,
launch: launch,
)) {
if (isCurrentVisibleRoom &&
_shouldHandleRoomRocketLaunchFromStatusPayload(
rtcProvider: rtcProvider,
payload: data,
launch: launch,
)) {
_handleCurrentVisibleRoomRocketLaunch(
rtcProvider: rtcProvider,
launch: launch,
@ -2004,6 +2008,9 @@ class RealTimeMessagingManager extends ChangeNotifier {
if (!_isCurrentVoiceRoom(resolvedRoomId)) {
return;
}
if (!_isCurrentVisibleVoiceRoom(resolvedRoomId)) {
return;
}
final initialRoomRecords = _roomRocketRewardRecordsFromPayload(data);
unawaited(
@ -2018,6 +2025,9 @@ class RealTimeMessagingManager extends ChangeNotifier {
required RealTimeCommunicationManager rtcProvider,
required RoomRocketLaunchBroadcastMessage launch,
}) {
if (!_isCurrentVisibleVoiceRoom(launch.roomId)) {
return;
}
final launchKey = _roomRocketLaunchNoticeKey(launch);
final looseLaunchKey = _roomRocketLaunchLooseKey(launch);
final now = DateTime.now().millisecondsSinceEpoch;
@ -2070,8 +2080,14 @@ class RealTimeMessagingManager extends ChangeNotifier {
List<SCRoomRocketRewardRecordRes> initialRoomRecords =
const <SCRoomRocketRewardRecordRes>[],
}) async {
if (!_isCurrentVisibleVoiceRoom(roomId)) {
return;
}
try {
final res = await SCChatRoomRepository().roomRocketRewardPopups(roomId);
if (!_isCurrentVisibleVoiceRoom(roomId)) {
return;
}
if (res.records.isEmpty && initialRoomRecords.isEmpty) {
_scheduleRoomRocketRewardPopupRetry(
roomId,
@ -2128,7 +2144,7 @@ class RealTimeMessagingManager extends ChangeNotifier {
const <SCRoomRocketRewardRecordRes>[],
}) {
if (attempt >= _roomRocketRewardPopupRetryDelays.length ||
!_isCurrentVoiceRoom(roomId)) {
!_isCurrentVisibleVoiceRoom(roomId)) {
return;
}
_roomRocketRewardPopupRetryTimer?.cancel();