fix:逻辑梳理

This commit is contained in:
liyi 2024-12-05 13:51:28 +08:00
parent a677def7f3
commit f337f6d346
7 changed files with 96 additions and 36 deletions

View File

@ -4,6 +4,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:star_lock/flavors.dart';
import 'package:star_lock/login/login/starLock_login_state.dart';
import 'package:star_lock/talk/startChart/handle/impl/udp_talk_ping_handler.dart';
import 'package:star_lock/talk/startChart/start_chart_manage.dart';
import 'package:star_lock/tools/appFirstEnterHandle.dart';
import 'package:star_lock/tools/wechat/customer_tool.dart';
@ -250,6 +251,18 @@ class _StarLockLoginPageState extends State<StarLockLoginPage> {
);
},
),
SubmitBtn(
btnName: '播放铃声',
onClick: () {
UdpTalkPingHandler().playRingtone();
},
),
SubmitBtn(
btnName: '停止播放铃声',
onClick: () {
UdpTalkPingHandler().stopRingtone();
},
),
SizedBox(height: 50.w),
Row(
mainAxisAlignment: MainAxisAlignment.center,

View File

@ -1,25 +0,0 @@
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:get/get.dart';
import 'package:star_lock/appRouters.dart';
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
import '../../start_chart_manage.dart';
class UdpCallRequestHandler extends ScpMessageBaseHandle
implements ScpMessageHandler {
@override
void handle(ScpMessage scpMessage) {
final GenericResp genericResp = scpMessage.Payload;
if (checkGenericRespSuccess(genericResp)) {
//
Get.toNamed(
Routers.lockMonitoringPage,
arguments: <String, String>{'lockId': '111'},
);
}
}
}

View File

@ -10,7 +10,6 @@ import '../../start_chart_manage.dart';
class UdpHeartBeatHandler extends ScpMessageBaseHandle implements ScpMessageHandler {
@override
void handle(ScpMessage scpMessage) {
final startChartManage = StartChartManage();
final HeartbeatResponse heartbeatResponse = scpMessage.Payload;
final statusCode = heartbeatResponse.statusCode;
if (statusCode != null &&

View File

@ -14,8 +14,21 @@ class UdpTalkAcceptHandler extends ScpMessageBaseHandle
void handle(ScpMessage scpMessage) {
final GenericResp genericResp = scpMessage.Payload;
if (checkGenericRespSuccess(genericResp)) {
// TODO
// TODO
//
//
startChartManage.sendGenericRespSuccessMessage(
ToPeerId: scpMessage.FromPeerId!,
FromPeerId: scpMessage.ToPeerId!,
PayloadType: scpMessage.PayloadType!,
);
//
startChartManage.startTalkPingMessageTimer();
//
talkePingOverTimeTimerManager.startTimer();
//
talkePingOverTimeTimerManager.setOnTimeout(() {
EasyLoading.showToast('通话异常中断', duration: 2000.milliseconds);
});
}
}
}

View File

@ -1,12 +1,8 @@
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:get/get.dart';
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
import '../../start_chart_manage.dart';
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
class UdpTalkPingHandler extends ScpMessageBaseHandle
implements ScpMessageHandler {
@ -14,7 +10,10 @@ class UdpTalkPingHandler extends ScpMessageBaseHandle
void handle(ScpMessage scpMessage) {
final GenericResp genericResp = scpMessage.Payload;
if (checkGenericRespSuccess(genericResp)) {
// TODO
//
talkePingOverTimeTimerManager.receiveMessage();
//
startChartManage.changeCallingStatus(true);
}
}

View File

@ -0,0 +1,61 @@
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:get/get.dart';
import 'package:star_lock/appRouters.dart';
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
import 'package:star_lock/tools/storage.dart';
import '../../start_chart_manage.dart';
class UdpTalkRequestHandler extends ScpMessageBaseHandle
implements ScpMessageHandler {
@override
void handle(ScpMessage scpMessage) {
final GenericResp genericResp = scpMessage.Payload;
if (checkGenericRespSuccess(genericResp)) {
//
startChartManage.sendGenericRespSuccessMessage(
ToPeerId: scpMessage.FromPeerId!,
FromPeerId: scpMessage.ToPeerId!,
PayloadType: scpMessage.PayloadType!,
);
//
_talkRequestEvent();
}
}
//
void _talkRequestEvent() {
playRingtone();
_showTalkRequestNotification();
//
Get.toNamed(
Routers.lockMonitoringPage,
arguments: <String, String>{'lockId': '111'},
);
}
//
Future<void> _showTalkRequestNotification() async {
const AndroidNotificationDetails androidPlatformChannelSpecifics =
AndroidNotificationDetails('1', 'flutter_channel',
importance: Importance.max,
priority: Priority.high,
playSound: true,
ticker: 'ticker');
const NotificationDetails platformChannelSpecifics =
NotificationDetails(android: androidPlatformChannelSpecifics);
//
String? getLockName = await Storage.getString(saveLockAlias);
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
FlutterLocalNotificationsPlugin();
//
await flutterLocalNotificationsPlugin.show(0, '呼叫提醒'.tr,
'${'收到来自'.tr}($getLockName)${'锁的呼叫'.tr}', platformChannelSpecifics,
payload: 'item x');
}
}

View File

@ -1,6 +1,6 @@
import 'package:star_lock/talk/startChart/constant/payload_type_constant.dart';
import 'package:star_lock/talk/startChart/handle/impl/udp_ble_passthrough_handler.dart';
import 'package:star_lock/talk/startChart/handle/impl/udp_call_request_handler.dart';
import 'package:star_lock/talk/startChart/handle/impl/udp_talk_request_handler.dart';
import 'package:star_lock/talk/startChart/handle/impl/udp_echo_test_handler.dart';
import 'package:star_lock/talk/startChart/handle/impl/udp_gateway_reset_handler.dart';
import 'package:star_lock/talk/startChart/handle/impl/udp_gateway_transfer_handler.dart';
@ -39,7 +39,7 @@ class ScpMessageHandlerFactory {
case PayloadTypeConstant.talkReceiverTransfer:
return UdpTalkReceiverTransferHandler();
case PayloadTypeConstant.callRequest:
return UdpCallRequestHandler();
return UdpTalkRequestHandler();
case PayloadTypeConstant.talkPush:
return UdpTalkPushHandler();
case PayloadTypeConstant.talkReject: