优化了tcp实时更新对UI线程的压力和对用弹窗的重复弹窗的影响。
更换了路径规划的的经纬度的字段名和取操作的名字更换。
This commit is contained in:
@@ -117,73 +117,26 @@ class _HomePageState extends State<HomePage> {
|
||||
tenantName: '',
|
||||
);
|
||||
|
||||
return BlocBuilder<PermissionRequestBloc, PermissionRequestState>(
|
||||
buildWhen: (p, c) {
|
||||
final shouldRebuild = p.runtimeType != c.runtimeType;
|
||||
debugPrint('🔍 [HomePage-BlocBuilder] buildWhen 检查: previous=${p.runtimeType}, current=${c.runtimeType}, shouldRebuild=$shouldRebuild');
|
||||
return shouldRebuild;
|
||||
},
|
||||
builder: (context, permissionState) {
|
||||
debugPrint('🔍 [HomePage-BlocBuilder] builder 被调用,当前状态: ${permissionState.runtimeType}');
|
||||
|
||||
return Stack(
|
||||
children: [
|
||||
Scaffold(
|
||||
backgroundColor: const Color(0xFFF7F7F7),
|
||||
body: CustomScrollView(
|
||||
physics: const BouncingScrollPhysics(),
|
||||
slivers: [
|
||||
SliverToBoxAdapter(child: ImmersionHeader(device: currentDevice ?? defaultDevice)),
|
||||
const SliverToBoxAdapter(child: QuickActionsGrid()),
|
||||
SliverToBoxAdapter(child: WorkParamsCard()),
|
||||
const SliverToBoxAdapter(child: SizedBox(height: 120)),
|
||||
],
|
||||
),
|
||||
),
|
||||
if (permissionState is PermissionRequestDialogVisible)
|
||||
_buildPermissionDialog(context, permissionState),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildPermissionDialog(BuildContext context, PermissionRequestDialogVisible state) {
|
||||
debugPrint('🔍 [HomePage] 🚨 弹窗正在显示!platform=${state.platform}');
|
||||
|
||||
final deviceId = context.read<DevicesCubit>().state.selectedDevice?.deviceName ?? "";
|
||||
final permissionBloc = context.read<PermissionRequestBloc>();
|
||||
|
||||
return Container(
|
||||
color: Colors.black54,
|
||||
alignment: Alignment.center,
|
||||
child: AlertDialog(
|
||||
title: Text(AppLocalizations.of(context).translate('remote_control.permission_request_title')),
|
||||
content: Text(AppLocalizations.of(context).translate('remote_control.permission_request_content')),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
permissionBloc.add(PermissionDialogDismissed(
|
||||
agree: false,
|
||||
deviceId: deviceId,
|
||||
));
|
||||
},
|
||||
child: Text(AppLocalizations.of(context).translate('remote_control.refuse')),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
permissionBloc.add(PermissionDialogDismissed(
|
||||
agree: true,
|
||||
deviceId: deviceId,
|
||||
));
|
||||
},
|
||||
child: Text(AppLocalizations.of(context).translate('remote_control.agree')),
|
||||
),
|
||||
// 🔥 移除 PermissionRequestBloc 监听,统一由 RemoteControlCubit 处理权限弹窗
|
||||
return Scaffold(
|
||||
backgroundColor: const Color(0xFFF7F7F7),
|
||||
body: CustomScrollView(
|
||||
physics: const BouncingScrollPhysics(),
|
||||
slivers: [
|
||||
SliverToBoxAdapter(child: ImmersionHeader(device: currentDevice ?? defaultDevice)),
|
||||
const SliverToBoxAdapter(child: QuickActionsGrid()),
|
||||
SliverToBoxAdapter(child: WorkParamsCard()),
|
||||
const SliverToBoxAdapter(child: SizedBox(height: 120)),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// 🔥 移除首页的权限弹窗方法,统一由 RemoteControlCubit 处理
|
||||
// Widget _buildPermissionDialog(BuildContext context, PermissionRequestDialogVisible state) {
|
||||
// ...
|
||||
// }
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
|
||||
Reference in New Issue
Block a user