最小化弹窗问题

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