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_repository.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/device_info_service.dart';
import 'package:star_lock/tools/platform_info_services.dart';
@ -29,6 +30,10 @@ FutureOr<void> main() async {
FlutterBugly.postCatchedException(() async {
WidgetsFlutterBinding.ensureInitialized();
// AppLifecycleObserver()
AppLifecycleObserver appLifecycleObserver = AppLifecycleObserver();
WidgetsBinding.instance.addObserver(appLifecycleObserver);
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/main/lockMian/lockList/lockList_xhj_page.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/tools/noData.dart';
import 'package:star_lock/tools/submitBtn.dart';
@ -106,6 +107,13 @@ class _StarLockMainPageState extends State<StarLockMainPage>
),
onPressed: () {
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,

View File

@ -2707,7 +2707,8 @@ class ApiProvider extends BaseProvider {
'starchartPeerPublicKey': starchartPeerPublicKey,
'starchartPeerPrivateKey': starchartPeerPrivateKey,
}),
isUnShowLoading: true);
isUnShowLoading: true,
isShowNetworkErrorMsg: false);
}
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 {
throw FormatException("Invalid PayloadLength length");
}
// print("message result: $message");
// Payload
if (message.PayloadLength != null &&
@ -526,36 +525,36 @@ class ScpMessage {
required List<int> byte,
required int payloadType,
}) {
// print(
// '_handleFragmentedPayload spTotal:$spTotal spindex:$spIndex} byte:${byte.take(20)}');
//
if (!_packetBuffer.containsKey(messageId)) {
_packetBuffer[messageId] = List.filled(spTotal, []);
}
//
if (spIndex < 1 || spIndex > spTotal) {
print('Invalid spIndex: $spIndex for messageId: $messageId');
return null;
}
//
_packetBuffer[messageId]![spIndex - 1] = byte;
//
if (_packetBuffer[messageId]!.every((packet) => packet.isNotEmpty)) {
//
List<int> completePayload =
_packetBuffer[messageId]!.expand((packet) => packet).toList();
List<int> completePayload = _packetBuffer[messageId]!.expand((packet) => packet).toList();
//
_packetBuffer.remove(messageId);
// payload
if (payloadType == PayloadTypeConstant.talkData) {
// payload
final TalkData talkData = TalkData.fromBuffer(completePayload);
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 {
// null
return null;

View File

@ -19,10 +19,11 @@ class UdpEchoTestHandler extends ScpMessageBaseHandle
// TODO:
final List<int> payload = scpMessage.Payload;
talkDataRepository.addTalkData(
TalkData(content: payload, contentType: TalkData_ContentTypeE.Image));
if (payload is String) {
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)
Timer? talkDataTimer; //
final int _maxPayloadSize = 1 * 1024; //
final int _maxPayloadSize = 8 * 1024; //
//
TalkExpect defaultTalkExpect = TalkExpect(
@ -126,6 +126,7 @@ class StartChartManage {
FromPeerId = requestStarChartRegisterNode.peer!.id ?? '';
bindUserStarchart();
}
}
//
@ -947,12 +948,13 @@ class StartChartManage {
///
void destruction() async {
isOnlineStartChartServer = false;
stopTalkExpectMessageTimer();
stopTalkPingMessageTimer();
stopHeartbeat();
stopReStartOnlineStartChartServer();
stopTalkDataTimer();
await Storage.removerRelayInfo();
await Storage.removerStarChartRegisterNodeInfo();
// await Storage.removerRelayInfo();
// await Storage.removerStarChartRegisterNodeInfo();
}
}