Merge branch 'develop_liyi' of http://code.star-lock.cn/StarlockTeam/app-starlock into develop_liyi

# Conflicts:
#	lib/main/lockMian/lockMain/lockMain_page.dart
This commit is contained in:
“DaisyWu” 2024-12-23 18:26:49 +08:00
commit 5b56557444
7 changed files with 76 additions and 18 deletions

View File

@ -12,6 +12,7 @@ import 'package:star_lock/mine/about/debug/debug_tool.dart';
import 'package:star_lock/network/api_provider.dart'; import 'package:star_lock/network/api_provider.dart';
import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/network/api_repository.dart';
import 'package:star_lock/network/start_chart_api.dart'; import 'package:star_lock/network/start_chart_api.dart';
import 'package:star_lock/talk/startChart/appLifecycle_observer.dart';
import 'package:star_lock/tools/bugly/bugly_tool.dart'; import 'package:star_lock/tools/bugly/bugly_tool.dart';
import 'package:star_lock/tools/device_info_service.dart'; import 'package:star_lock/tools/device_info_service.dart';
import 'package:star_lock/tools/platform_info_services.dart'; import 'package:star_lock/tools/platform_info_services.dart';
@ -29,6 +30,10 @@ FutureOr<void> main() async {
FlutterBugly.postCatchedException(() async { FlutterBugly.postCatchedException(() async {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
// AppLifecycleObserver()
AppLifecycleObserver appLifecycleObserver = AppLifecycleObserver();
WidgetsBinding.instance.addObserver(appLifecycleObserver);
await _setCommonServices(); await _setCommonServices();
// //

View File

@ -9,6 +9,7 @@ import 'package:star_lock/app_settings/app_colors.dart';
import 'package:star_lock/blue/blue_manage.dart'; import 'package:star_lock/blue/blue_manage.dart';
import 'package:star_lock/main/lockMian/lockList/lockList_xhj_page.dart'; import 'package:star_lock/main/lockMian/lockList/lockList_xhj_page.dart';
import 'package:star_lock/main/lockMian/lockMain/lockMain_state.dart'; import 'package:star_lock/main/lockMian/lockMain/lockMain_state.dart';
import 'package:star_lock/talk/startChart/proto/talk_request.pb.dart';
import 'package:star_lock/talk/startChart/start_chart_manage.dart'; import 'package:star_lock/talk/startChart/start_chart_manage.dart';
import 'package:star_lock/tools/noData.dart'; import 'package:star_lock/tools/noData.dart';
import 'package:star_lock/tools/submitBtn.dart'; import 'package:star_lock/tools/submitBtn.dart';
@ -106,6 +107,13 @@ class _StarLockMainPageState extends State<StarLockMainPage>
), ),
onPressed: () { onPressed: () {
Scaffold.of(context).openDrawer(); Scaffold.of(context).openDrawer();
final writeToBuffer = TalkReq(
callerName: 'T9A_d9904c8c47c8',
callerType: TalkReq_CallerTypeE.Lock)
.writeToBuffer();
final talkReq = TalkReq.fromBuffer(writeToBuffer);
print('$talkReq\nwriteToBuffer:$writeToBuffer');
}, },
)), )),
backgroundColor: AppColors.mainColor, backgroundColor: AppColors.mainColor,

View File

@ -2707,7 +2707,8 @@ class ApiProvider extends BaseProvider {
'starchartPeerPublicKey': starchartPeerPublicKey, 'starchartPeerPublicKey': starchartPeerPublicKey,
'starchartPeerPrivateKey': starchartPeerPrivateKey, 'starchartPeerPrivateKey': starchartPeerPrivateKey,
}), }),
isUnShowLoading: true); isUnShowLoading: true,
isShowNetworkErrorMsg: false);
} }
extension ExtensionString on String { extension ExtensionString on String {

View File

@ -0,0 +1,42 @@
import 'package:flutter/widgets.dart';
import 'package:star_lock/talk/startChart/start_chart_manage.dart';
class AppLifecycleObserver extends WidgetsBindingObserver {
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
super.didChangeAppLifecycleState(state);
//
print('AppLifecycleState: $state');
//
if (state == AppLifecycleState.paused) {
//
onAppPaused();
} else if (state == AppLifecycleState.resumed) {
//
onAppResumed();
} else if (state == AppLifecycleState.detached) {
//
onAppDetached();
}
}
void onAppPaused() {
//
print('App has entered the background.');
StartChartManage().destruction();
}
void onAppResumed() {
//
StartChartManage().init();
print('App has resumed to the foreground.');
}
void onAppDetached() {
//
StartChartManage().destruction();
print('App has been detached.');
}
}

View File

@ -260,7 +260,6 @@ class ScpMessage {
} else { } else {
throw FormatException("Invalid PayloadLength length"); throw FormatException("Invalid PayloadLength length");
} }
// print("message result: $message");
// Payload // Payload
if (message.PayloadLength != null && if (message.PayloadLength != null &&
@ -526,36 +525,36 @@ class ScpMessage {
required List<int> byte, required List<int> byte,
required int payloadType, required int payloadType,
}) { }) {
// print(
// '_handleFragmentedPayload spTotal:$spTotal spindex:$spIndex} byte:${byte.take(20)}');
// //
if (!_packetBuffer.containsKey(messageId)) { if (!_packetBuffer.containsKey(messageId)) {
_packetBuffer[messageId] = List.filled(spTotal, []); _packetBuffer[messageId] = List.filled(spTotal, []);
} }
//
if (spIndex < 1 || spIndex > spTotal) {
print('Invalid spIndex: $spIndex for messageId: $messageId');
return null;
}
// //
_packetBuffer[messageId]![spIndex - 1] = byte; _packetBuffer[messageId]![spIndex - 1] = byte;
// //
if (_packetBuffer[messageId]!.every((packet) => packet.isNotEmpty)) { if (_packetBuffer[messageId]!.every((packet) => packet.isNotEmpty)) {
// //
List<int> completePayload = List<int> completePayload = _packetBuffer[messageId]!.expand((packet) => packet).toList();
_packetBuffer[messageId]!.expand((packet) => packet).toList();
// //
_packetBuffer.remove(messageId); _packetBuffer.remove(messageId);
// payload
if (payloadType == PayloadTypeConstant.talkData) { if (payloadType == PayloadTypeConstant.talkData) {
// payload
final TalkData talkData = TalkData.fromBuffer(completePayload); final TalkData talkData = TalkData.fromBuffer(completePayload);
return talkData; return talkData;
} else {
String payload = utf8.decode(completePayload);
return payload;
} }
return completePayload;
// payload
// final TalkData talkData = TalkData.fromBuffer(completePayload);
// String payload = utf8.decode(completePayload);
} else { } else {
// null // null
return null; return null;

View File

@ -19,10 +19,11 @@ class UdpEchoTestHandler extends ScpMessageBaseHandle
// TODO: // TODO:
final List<int> payload = scpMessage.Payload; final List<int> payload = scpMessage.Payload;
talkDataRepository.addTalkData(
TalkData(content: payload, contentType: TalkData_ContentTypeE.Image));
if (payload is String) { if (payload is String) {
EasyLoading.showToast(scpMessage.Payload, duration: 2000.milliseconds); EasyLoading.showToast(scpMessage.Payload, duration: 2000.milliseconds);
} else {
talkDataRepository.addTalkData(
TalkData(content: payload, contentType: TalkData_ContentTypeE.Image));
} }
} }

View File

@ -79,7 +79,7 @@ class StartChartManage {
int talkDataIntervalTime = 10; // (ms) int talkDataIntervalTime = 10; // (ms)
Timer? talkDataTimer; // Timer? talkDataTimer; //
final int _maxPayloadSize = 1 * 1024; // final int _maxPayloadSize = 8 * 1024; //
// //
TalkExpect defaultTalkExpect = TalkExpect( TalkExpect defaultTalkExpect = TalkExpect(
@ -126,6 +126,7 @@ class StartChartManage {
FromPeerId = requestStarChartRegisterNode.peer!.id ?? ''; FromPeerId = requestStarChartRegisterNode.peer!.id ?? '';
bindUserStarchart(); bindUserStarchart();
} }
} }
// //
@ -947,12 +948,13 @@ class StartChartManage {
/// ///
void destruction() async { void destruction() async {
isOnlineStartChartServer = false;
stopTalkExpectMessageTimer(); stopTalkExpectMessageTimer();
stopTalkPingMessageTimer(); stopTalkPingMessageTimer();
stopHeartbeat(); stopHeartbeat();
stopReStartOnlineStartChartServer(); stopReStartOnlineStartChartServer();
stopTalkDataTimer(); stopTalkDataTimer();
await Storage.removerRelayInfo(); // await Storage.removerRelayInfo();
await Storage.removerStarChartRegisterNodeInfo(); // await Storage.removerStarChartRegisterNodeInfo();
} }
} }