diff --git a/lib/features/scene/view/scene_rooms_tabbar.dart b/lib/features/scene/view/scene_rooms_tabbar.dart index 9208d06..c677a72 100644 --- a/lib/features/scene/view/scene_rooms_tabbar.dart +++ b/lib/features/scene/view/scene_rooms_tabbar.dart @@ -29,25 +29,38 @@ class _SceneRoomsTabBarDevicesViewState @override void initState() { - selectedSpace = HomeCubit.getInstance().selectedSpace!; - rooms = List.from(HomeCubit.getInstance().selectedSpace?.subspaces ?? []); - if (rooms != null) { - if (rooms![0].id != '-1') { - rooms?.insert( - 0, + super.initState(); + + WidgetsBinding.instance.addPostFrameCallback((_) { + selectedSpace = HomeCubit.getInstance().selectedSpace!; + + rooms = List.from(selectedSpace.subspaces ?? []); + + if (rooms != null && rooms!.isNotEmpty) { + if (rooms![0].id != '-1') { + rooms?.insert( + 0, + SubSpaceModel( + name: 'All Devices', + devices: context.read().allDevices, + id: '-1', + ), + ); + } + } else { + rooms = [ SubSpaceModel( name: 'All Devices', devices: context.read().allDevices, id: '-1', - ), - ); + ) + ]; } - } - _tabController = - TabController(length: rooms!.length, vsync: this, initialIndex: 0); - _tabController.addListener(_handleTabSwitched); - super.initState(); + _tabController = TabController(length: rooms!.length, vsync: this); + _tabController.addListener(_handleTabSwitched); + setState(() {}); + }); } void _handleTabSwitched() {