From 620f5067d6cde58b09d9555e3f48715310d5a080 Mon Sep 17 00:00:00 2001 From: fuenmao <980740792@qq.com> Date: Tue, 24 Dec 2024 16:44:41 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=88=90=E5=91=98=E6=90=9C=E7=B4=A2=E6=A1=86?= =?UTF-8?q?=E5=85=B1=E4=BA=AB=E6=A0=87=E8=AF=86=E9=97=AE=E9=A2=98=202.?= =?UTF-8?q?=E9=80=80=E5=87=BA=E4=B8=A4=E6=AC=A1=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wgshare/lib/pages/homePage/home_logic.dart | 18 ++++++++++++++++++ wgshare/lib/pages/homePage/home_state.dart | 3 +++ wgshare/lib/pages/homePage/home_view.dart | 16 +++++++++------- .../lib/pages/metting/meeting_main_logic.dart | 14 -------------- 4 files changed, 30 insertions(+), 21 deletions(-) diff --git a/wgshare/lib/pages/homePage/home_logic.dart b/wgshare/lib/pages/homePage/home_logic.dart index 8600c8e..d8c227d 100644 --- a/wgshare/lib/pages/homePage/home_logic.dart +++ b/wgshare/lib/pages/homePage/home_logic.dart @@ -1,9 +1,11 @@ +import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:signalr_core/signalr_core.dart'; import 'package:wgshare/common/models/common/base_structure_result.dart'; import 'package:wgshare/common/mixins/request_tool_mixin.dart'; import '../../common/models/meeting_room_item.dart'; +import '../../utils/toast_utils.dart'; import 'home_state.dart'; class HomeLogic extends GetxController with RequestToolMixin { @@ -54,4 +56,20 @@ class HomeLogic extends GetxController with RequestToolMixin { doHttpGetMeetingRoomList(state.pageIndex.value,state.pageSize.value); } + /// 返回键退出 + bool closeOnConfirm(BuildContext context) { + DateTime now = DateTime.now(); + // 物理键,两次间隔大于4秒, 退出请求无效 + if (state.currentBackPressTime == null || + now.difference(state.currentBackPressTime!) > const Duration(seconds: 4)) { + state.currentBackPressTime = now; + ToastUtils.showInfo("再按一次退出"); + return false; + } + // 退出请求有效 + state.currentBackPressTime = null; + return true; + } + + } diff --git a/wgshare/lib/pages/homePage/home_state.dart b/wgshare/lib/pages/homePage/home_state.dart index 00b7222..d8df1c6 100644 --- a/wgshare/lib/pages/homePage/home_state.dart +++ b/wgshare/lib/pages/homePage/home_state.dart @@ -25,4 +25,7 @@ class HomeState { /// 总页数 final RxInt totalPage = 0.obs; + /// 退出计时 + DateTime? currentBackPressTime; + } diff --git a/wgshare/lib/pages/homePage/home_view.dart b/wgshare/lib/pages/homePage/home_view.dart index c64ec2d..790665a 100644 --- a/wgshare/lib/pages/homePage/home_view.dart +++ b/wgshare/lib/pages/homePage/home_view.dart @@ -37,13 +37,15 @@ class HomePageState extends State with AutomaticKeepAliveClientMixin { super.build(context); return PopScope( canPop: false, - onPopInvoked: (bool didPop) async { - if (didPop) { - return; - } else { - SystemNavigator.pop(); - } - }, + onPopInvoked: (bool didPop) async { + if (didPop) { + return; + } + if (logic.closeOnConfirm(context)) { + // 系统级别导航栈 退出程序 + SystemNavigator.pop(); + } + }, child: Scaffold( appBar: AppBar( surfaceTintColor: Colors.white, diff --git a/wgshare/lib/pages/metting/meeting_main_logic.dart b/wgshare/lib/pages/metting/meeting_main_logic.dart index 60ce81e..db9658d 100644 --- a/wgshare/lib/pages/metting/meeting_main_logic.dart +++ b/wgshare/lib/pages/metting/meeting_main_logic.dart @@ -236,25 +236,11 @@ class MeetingMainLogic extends GetxController with RequestToolMixin { // 如果是自己在共享 }else{ // 共享不是自己 - // 判断当前会议室是否存在共享成员 - var isCurrentUserIsCamera = false; for (var i = 0; i < state.cacheUsers.value.length; i++) { if (state.remoteUid.value == state.cacheUsers.value[i].screenShareId) { state.cacheUsers.value[i].enableShare = true; - isCurrentUserIsCamera = true; } } - - if (isCurrentUserIsCamera == true) { - // 当前会议室存在全员观看主播时,切换页面到视频状态 - debugPrint("wgs输出===:当前会议室存在全员观看主播时,切换页面到视频状态"); - changePageState(1); - } else { - // 当前会议室不存在全员观看主播时,设置主播ID为空并切换页面到视频状态 - debugPrint("wgs输出===:当前会议室不存在全员观看主播时,设置主播ID为空并切换页面到视频状态"); - state.remoteUid.value = ""; - changePageState(1); - } } } }