|
|
@ -1,11 +1,14 @@ |
|
|
import 'package:cached_network_image/cached_network_image.dart'; |
|
|
import 'package:cached_network_image/cached_network_image.dart'; |
|
|
|
|
|
import 'package:dating_touchme_app/controller/discover/room_controller.dart'; |
|
|
|
|
|
import 'package:dating_touchme_app/controller/overlay_controller.dart'; |
|
|
import 'package:dating_touchme_app/generated/assets.dart'; |
|
|
import 'package:dating_touchme_app/generated/assets.dart'; |
|
|
import 'package:flutter/material.dart'; |
|
|
|
|
|
import 'package:get/get.dart'; |
|
|
|
|
|
import 'package:dating_touchme_app/model/home/marriage_data.dart'; |
|
|
import 'package:dating_touchme_app/model/home/marriage_data.dart'; |
|
|
|
|
|
import 'package:dating_touchme_app/pages/discover/live_room_page.dart'; |
|
|
import 'package:dating_touchme_app/pages/home/user_information_page.dart'; |
|
|
import 'package:dating_touchme_app/pages/home/user_information_page.dart'; |
|
|
import 'package:dating_touchme_app/pages/message/chat_page.dart'; |
|
|
import 'package:dating_touchme_app/pages/message/chat_page.dart'; |
|
|
|
|
|
import 'package:flutter/material.dart'; |
|
|
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; |
|
|
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; |
|
|
|
|
|
import 'package:get/get.dart'; |
|
|
|
|
|
|
|
|
// 通用头部组件:头像/昵称/在线/认证/Hi/直播中徽标 |
|
|
// 通用头部组件:头像/昵称/在线/认证/Hi/直播中徽标 |
|
|
class _CardHeader extends StatelessWidget { |
|
|
class _CardHeader extends StatelessWidget { |
|
|
@ -228,7 +231,29 @@ class _CardHeader extends StatelessWidget { |
|
|
// 点击事件处理 |
|
|
// 点击事件处理 |
|
|
if (isLive) { |
|
|
if (isLive) { |
|
|
// 进入直播间逻辑 |
|
|
// 进入直播间逻辑 |
|
|
print('进入直播间'); |
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
// 1. 隐藏直播间小窗口(如果存在) |
|
|
|
|
|
if (Get.isRegistered<OverlayController>()) { |
|
|
|
|
|
final overlayController = Get.find<OverlayController>(); |
|
|
|
|
|
overlayController.hide(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 2. 获取 RoomController 实例 |
|
|
|
|
|
final roomController = Get.isRegistered<RoomController>() |
|
|
|
|
|
? Get.find<RoomController>() |
|
|
|
|
|
: Get.put(RoomController()); |
|
|
|
|
|
|
|
|
|
|
|
// 3. 如果当前已经在直播间,先退出当前直播间 |
|
|
|
|
|
// leaveChannel 内部会处理未在频道时的情况 |
|
|
|
|
|
await roomController.leaveChannel(); |
|
|
|
|
|
|
|
|
|
|
|
// 4. 跳转到新的直播间页面 |
|
|
|
|
|
// 这里暂时使用 id: 0,实际频道信息由后端/进入逻辑决定 |
|
|
|
|
|
await Get.to(() => const LiveRoomPage(id: 0)); |
|
|
|
|
|
} catch (e) { |
|
|
|
|
|
print('❌ [ContentCard] 进入直播间失败: $e'); |
|
|
|
|
|
SmartDialog.showToast('进入直播间失败,请重试'); |
|
|
|
|
|
} |
|
|
} else if (isOnline) { |
|
|
} else if (isOnline) { |
|
|
// HI按钮点击逻辑 - 跳转到聊天页面 |
|
|
// HI按钮点击逻辑 - 跳转到聊天页面 |
|
|
try { |
|
|
try { |
|
|
|