mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-07-16 01:56:19 +00:00
Refactor code structure and update dependencies
Clean up code structure, remove unused imports, and update dependencies. No functional changes made, only code organization improvements.
This commit is contained in:
@ -5,6 +5,7 @@ import 'package:flutter_svg/flutter_svg.dart';
|
|||||||
import 'package:syncrow_app/features/app_layout/model/space_model.dart';
|
import 'package:syncrow_app/features/app_layout/model/space_model.dart';
|
||||||
import 'package:syncrow_app/features/app_layout/view/widgets/app_bar_home_dropdown.dart';
|
import 'package:syncrow_app/features/app_layout/view/widgets/app_bar_home_dropdown.dart';
|
||||||
import 'package:syncrow_app/features/dashboard/view/dashboard_view.dart';
|
import 'package:syncrow_app/features/dashboard/view/dashboard_view.dart';
|
||||||
|
import 'package:syncrow_app/features/devices/bloc/devices_cubit.dart';
|
||||||
import 'package:syncrow_app/features/devices/model/room_model.dart';
|
import 'package:syncrow_app/features/devices/model/room_model.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/devices_view_body.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/devices_view_body.dart';
|
||||||
import 'package:syncrow_app/features/menu/view/menu_view.dart';
|
import 'package:syncrow_app/features/menu/view/menu_view.dart';
|
||||||
@ -260,7 +261,10 @@ class HomeCubit extends Cubit<HomeState> {
|
|||||||
final List<Widget> pages = [
|
final List<Widget> pages = [
|
||||||
const DashboardView(),
|
const DashboardView(),
|
||||||
// const LayoutPage(),
|
// const LayoutPage(),
|
||||||
const DevicesViewBody(),
|
BlocProvider(
|
||||||
|
create: (context) => DevicesCubit(),
|
||||||
|
child: const DevicesViewBody(),
|
||||||
|
),
|
||||||
const SceneView(),
|
const SceneView(),
|
||||||
const MenuView(),
|
const MenuView(),
|
||||||
];
|
];
|
||||||
|
@ -13,36 +13,44 @@ class DefaultNavBar extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return BlocBuilder<HomeCubit, HomeState>(
|
return BlocProvider(
|
||||||
builder: (context, state) {
|
create: (context) => DevicesCubit(),
|
||||||
var cubit = HomeCubit.getInstance();
|
child: BlocBuilder<DevicesCubit, DevicesState>(
|
||||||
return SizedBox(
|
builder: (context, state) {
|
||||||
height: Constants.bottomNavBarHeight,
|
return BlocBuilder<HomeCubit, HomeState>(
|
||||||
child: BottomNavigationBar(
|
builder: (context, state) {
|
||||||
backgroundColor: Colors.transparent,
|
var cubit = HomeCubit.getInstance();
|
||||||
onTap: (int index) {
|
return SizedBox(
|
||||||
cubit.updatePageIndex(index);
|
height: Constants.bottomNavBarHeight,
|
||||||
if (DevicesCubit.get(context).chosenCategoryView != null) {
|
child: BottomNavigationBar(
|
||||||
DevicesCubit.getInstance().clearCategoriesSelection(context);
|
backgroundColor: Colors.transparent,
|
||||||
}
|
onTap: (int index) {
|
||||||
if (HomeCubit.getInstance().selectedRoom != null) {
|
cubit.updatePageIndex(index);
|
||||||
HomeCubit.getInstance().unselectRoom();
|
if (DevicesCubit.get(context).chosenCategoryView != null) {
|
||||||
}
|
DevicesCubit.get(context)
|
||||||
|
.clearCategoriesSelection(context);
|
||||||
|
}
|
||||||
|
if (HomeCubit.getInstance().selectedRoom != null) {
|
||||||
|
HomeCubit.getInstance().unselectRoom();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
currentIndex: HomeCubit.pageIndex,
|
||||||
|
selectedItemColor: ColorsManager.primaryColor,
|
||||||
|
selectedLabelStyle: const TextStyle(
|
||||||
|
color: ColorsManager.primaryColor,
|
||||||
|
fontSize: 10,
|
||||||
|
),
|
||||||
|
showUnselectedLabels: true,
|
||||||
|
unselectedItemColor: Colors.grey,
|
||||||
|
type: BottomNavigationBarType.fixed,
|
||||||
|
elevation: 0,
|
||||||
|
items: HomeCubit.bottomNavItems,
|
||||||
|
),
|
||||||
|
);
|
||||||
},
|
},
|
||||||
currentIndex: HomeCubit.pageIndex,
|
);
|
||||||
selectedItemColor: ColorsManager.primaryColor,
|
},
|
||||||
selectedLabelStyle: const TextStyle(
|
),
|
||||||
color: ColorsManager.primaryColor,
|
|
||||||
fontSize: 10,
|
|
||||||
),
|
|
||||||
showUnselectedLabels: true,
|
|
||||||
unselectedItemColor: Colors.grey,
|
|
||||||
type: BottomNavigationBarType.fixed,
|
|
||||||
elevation: 0,
|
|
||||||
items: HomeCubit.bottomNavItems,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ import 'package:syncrow_app/utils/resource_manager/constants.dart';
|
|||||||
part 'devices_state.dart';
|
part 'devices_state.dart';
|
||||||
|
|
||||||
class DevicesCubit extends Cubit<DevicesState> {
|
class DevicesCubit extends Cubit<DevicesState> {
|
||||||
DevicesCubit._() : super(DevicesInitial()) {
|
DevicesCubit() : super(DevicesInitial()) {
|
||||||
if (HomeCubit.getInstance().selectedSpace != null) {
|
if (HomeCubit.getInstance().selectedSpace != null) {
|
||||||
fetchGroups(HomeCubit.getInstance().selectedSpace!.id!);
|
fetchGroups(HomeCubit.getInstance().selectedSpace!.id!);
|
||||||
for (var room in HomeCubit.getInstance().selectedSpace!.rooms!) {
|
for (var room in HomeCubit.getInstance().selectedSpace!.rooms!) {
|
||||||
@ -32,18 +32,18 @@ class DevicesCubit extends Cubit<DevicesState> {
|
|||||||
}
|
}
|
||||||
bool _isClosed = false;
|
bool _isClosed = false;
|
||||||
|
|
||||||
static DevicesCubit? _instance;
|
// static DevicesCubit? _instance;
|
||||||
static DevicesCubit getInstance() {
|
// static DevicesCubit.get(context) {
|
||||||
// If an instance already exists, return it
|
// // If an instance already exists, return it
|
||||||
_instance ??= DevicesCubit._();
|
// _instance ??= DevicesCubit._();
|
||||||
return _instance!;
|
// return _instance!;
|
||||||
}
|
// }
|
||||||
|
|
||||||
@override
|
// @override
|
||||||
Future<void> close() {
|
// Future<void> close() {
|
||||||
_isClosed = true;
|
// _isClosed = true;
|
||||||
return super.close();
|
// return super.close();
|
||||||
}
|
// }
|
||||||
|
|
||||||
static DevicesCubit get(context) => BlocProvider.of(context);
|
static DevicesCubit get(context) => BlocProvider.of(context);
|
||||||
|
|
||||||
|
@ -1,20 +1,17 @@
|
|||||||
import 'package:flutter/material.dart';
|
// import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
// import 'package:syncrow_app/features/devices/view/widgets/devices_view_body.dart';
|
||||||
import 'package:syncrow_app/features/devices/bloc/devices_cubit.dart';
|
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/devices_view_body.dart';
|
|
||||||
|
|
||||||
class DevicesView extends StatelessWidget {
|
// class DevicesView extends StatelessWidget {
|
||||||
const DevicesView({super.key}); // Fixing the syntax for super.key
|
// const DevicesView({super.key});
|
||||||
|
|
||||||
@override
|
// @override
|
||||||
Widget build(BuildContext context) {
|
// Widget build(BuildContext context) {
|
||||||
return BlocBuilder<DevicesCubit, DevicesState>(
|
// print('built DevicesView');
|
||||||
builder: (_, state) => Container(
|
// return Container(
|
||||||
padding: const EdgeInsets.all(8),
|
// padding: const EdgeInsets.all(8),
|
||||||
width: MediaQuery.of(context).size.width,
|
// width: MediaQuery.of(context).size.width,
|
||||||
height: MediaQuery.of(context).size.height,
|
// height: MediaQuery.of(context).size.height,
|
||||||
child: const DevicesViewBody(),
|
// child: const DevicesViewBody(),
|
||||||
),
|
// );
|
||||||
);
|
// }
|
||||||
}
|
// }
|
||||||
}
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
|
import 'package:syncrow_app/features/devices/bloc/devices_cubit.dart';
|
||||||
import 'package:syncrow_app/features/devices/model/device_model.dart';
|
import 'package:syncrow_app/features/devices/model/device_model.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/ACs/ac_interface_controls.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/ACs/ac_interface_controls.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/ACs/ac_interface_temp_unit.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/ACs/ac_interface_temp_unit.dart';
|
||||||
|
@ -41,9 +41,8 @@ class ACsList extends StatelessWidget {
|
|||||||
itemCount:
|
itemCount:
|
||||||
DevicesCubit.get(context).chosenCategory!.devices!.length,
|
DevicesCubit.get(context).chosenCategory!.devices!.length,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
DeviceModel ac = DevicesCubit.get(context)
|
DeviceModel ac =
|
||||||
.chosenCategory!
|
DevicesCubit.get(context).chosenCategory!.devices![index];
|
||||||
.devices![index];
|
|
||||||
return Column(
|
return Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
|
@ -18,80 +18,95 @@ class DevicesViewBody extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return BlocBuilder<HomeCubit, HomeState>(
|
return BlocConsumer<DevicesCubit, DevicesState>(
|
||||||
|
listener: (context, state) {
|
||||||
|
if (state is GetDevicesError) {
|
||||||
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
|
SnackBar(
|
||||||
|
content: Text(state.errorMsg),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
} else if (state is DevicesCategoriesError) {
|
||||||
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
|
SnackBar(
|
||||||
|
content: Text(state.errorMsg),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
} else if (state is DeviceControlError) {
|
||||||
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
|
SnackBar(
|
||||||
|
content: Text(state.errorMsg),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
builder: (context, state) {
|
builder: (context, state) {
|
||||||
return BlocBuilder<DevicesCubit, DevicesState>(
|
if (state is DevicesLoading ||
|
||||||
builder: (context, state) {
|
state is GetDevicesLoading ||
|
||||||
if (state is DevicesLoading) {
|
state is DevicesCategoriesLoading) {
|
||||||
return const Center(child: CircularProgressIndicator());
|
return const Center(child: CircularProgressIndicator());
|
||||||
} else {
|
} else {
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: EdgeInsets.only(
|
padding: EdgeInsets.only(
|
||||||
top: Constants.appBarHeight,
|
top: Constants.appBarHeight,
|
||||||
bottom: Constants.bottomNavBarHeight,
|
bottom: Constants.bottomNavBarHeight,
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
const DevicesViewHeader(),
|
||||||
|
const RoomsSlider(),
|
||||||
|
const SizedBox(
|
||||||
|
height: 10,
|
||||||
),
|
),
|
||||||
child: Column(
|
Expanded(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
child: PageView(
|
||||||
children: [
|
controller: HomeCubit.getInstance().devicesPageController,
|
||||||
const DevicesViewHeader(),
|
onPageChanged: (index) {
|
||||||
const RoomsSlider(),
|
HomeCubit.getInstance().devicesPageChanged(index);
|
||||||
const SizedBox(
|
},
|
||||||
height: 10,
|
children: [
|
||||||
),
|
const WizardPage(),
|
||||||
Expanded(
|
if (HomeCubit.getInstance().selectedSpace != null)
|
||||||
child: PageView(
|
if (HomeCubit.getInstance().selectedSpace!.rooms !=
|
||||||
controller:
|
null)
|
||||||
HomeCubit.getInstance().devicesPageController,
|
...HomeCubit.getInstance().selectedSpace!.rooms!.map(
|
||||||
onPageChanged: (index) {
|
(room) {
|
||||||
HomeCubit.getInstance().devicesPageChanged(index);
|
return RoomPage(
|
||||||
},
|
room: room,
|
||||||
children: [
|
);
|
||||||
const WizardPage(),
|
},
|
||||||
if (HomeCubit.getInstance().selectedSpace != null)
|
)
|
||||||
if (HomeCubit.getInstance().selectedSpace!.rooms !=
|
],
|
||||||
null)
|
),
|
||||||
...HomeCubit.getInstance()
|
),
|
||||||
|
HomeCubit.getInstance().selectedSpace != null
|
||||||
|
? Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(
|
||||||
|
vertical: 7,
|
||||||
|
),
|
||||||
|
child: SmoothPageIndicator(
|
||||||
|
controller:
|
||||||
|
HomeCubit.getInstance().devicesPageController,
|
||||||
|
count: HomeCubit.getInstance()
|
||||||
.selectedSpace!
|
.selectedSpace!
|
||||||
.rooms!
|
.rooms!
|
||||||
.map(
|
.length +
|
||||||
(room) {
|
1,
|
||||||
return RoomPage(
|
effect: const WormEffect(
|
||||||
room: room,
|
paintStyle: PaintingStyle.stroke,
|
||||||
);
|
dotHeight: 8,
|
||||||
},
|
dotWidth: 8,
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
HomeCubit.getInstance().selectedSpace != null
|
|
||||||
? Padding(
|
|
||||||
padding: const EdgeInsets.symmetric(
|
|
||||||
vertical: 7,
|
|
||||||
),
|
|
||||||
child: SmoothPageIndicator(
|
|
||||||
controller:
|
|
||||||
HomeCubit.getInstance().devicesPageController,
|
|
||||||
count: HomeCubit.getInstance()
|
|
||||||
.selectedSpace!
|
|
||||||
.rooms!
|
|
||||||
.length +
|
|
||||||
1,
|
|
||||||
effect: const WormEffect(
|
|
||||||
paintStyle: PaintingStyle.stroke,
|
|
||||||
dotHeight: 8,
|
|
||||||
dotWidth: 8,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
: const Center(
|
|
||||||
child: BodyLarge(text: 'No Home Found'),
|
|
||||||
),
|
),
|
||||||
],
|
),
|
||||||
),
|
)
|
||||||
);
|
: const Center(
|
||||||
}
|
child: BodyLarge(text: 'No Home Found'),
|
||||||
},
|
),
|
||||||
);
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
import 'package:syncrow_app/features/devices/bloc/devices_cubit.dart';
|
import 'package:syncrow_app/features/devices/bloc/devices_cubit.dart';
|
||||||
import 'package:syncrow_app/features/devices/model/device_model.dart';
|
import 'package:syncrow_app/features/devices/model/device_model.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/lights/light_interface_contols.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/lights/light_interface_contols.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/lights/light_interface_switch.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/lights/light_interface_switch.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/lights/light_interface_timer.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/lights/light_interface_timer.dart';
|
||||||
|
import 'package:syncrow_app/features/shared_widgets/text_widgets/body_large.dart';
|
||||||
|
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
|
||||||
|
import 'package:syncrow_app/utils/resource_manager/font_manager.dart';
|
||||||
|
|
||||||
class LightInterface extends StatelessWidget {
|
class LightInterface extends StatelessWidget {
|
||||||
const LightInterface({super.key, required this.light});
|
const LightInterface({super.key, required this.light});
|
||||||
@ -15,16 +19,38 @@ class LightInterface extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return BlocBuilder<DevicesCubit, DevicesState>(
|
return BlocBuilder<DevicesCubit, DevicesState>(
|
||||||
builder: (context, state) {
|
builder: (context, state) {
|
||||||
return Padding(
|
return AnnotatedRegion(
|
||||||
padding: const EdgeInsets.only(top: 70, right: 20, left: 20),
|
value: SystemUiOverlayStyle(
|
||||||
child: SingleChildScrollView(
|
statusBarColor: ColorsManager.primaryColor.withOpacity(0.5),
|
||||||
child: Column(
|
statusBarIconBrightness: Brightness.light,
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
),
|
||||||
children: [
|
child: SafeArea(
|
||||||
LightInterfaceSwitch(light: light),
|
child: Scaffold(
|
||||||
LightInterfaceContols(light: light),
|
backgroundColor: ColorsManager.backgroundColor,
|
||||||
const LightInterfaceTimer(),
|
extendBodyBehindAppBar: true,
|
||||||
],
|
extendBody: true,
|
||||||
|
appBar: AppBar(
|
||||||
|
backgroundColor: Colors.transparent,
|
||||||
|
centerTitle: true,
|
||||||
|
title: BodyLarge(
|
||||||
|
text: light.name ?? "",
|
||||||
|
fontColor: ColorsManager.primaryColor,
|
||||||
|
fontWeight: FontsManager.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
body: Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 70, right: 20, left: 20),
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
|
children: [
|
||||||
|
LightInterfaceSwitch(light: light),
|
||||||
|
LightInterfaceContols(light: light),
|
||||||
|
const LightInterfaceTimer(),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
|
import 'package:syncrow_app/features/devices/bloc/devices_cubit.dart';
|
||||||
import 'package:syncrow_app/features/devices/model/device_model.dart';
|
import 'package:syncrow_app/features/devices/model/device_model.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/ACs/ac_interface.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/ACs/ac_interface.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/lights/light_interface.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/lights/light_interface.dart';
|
||||||
@ -30,7 +32,10 @@ class RoomPageSwitch extends StatelessWidget {
|
|||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
CustomPageRoute(
|
CustomPageRoute(
|
||||||
builder: (context) => AcInterface(deviceModel: device),
|
builder: (context) => BlocProvider(
|
||||||
|
create: (context) => DevicesCubit(),
|
||||||
|
child: AcInterface(deviceModel: device),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@ -51,15 +56,21 @@ class RoomPageSwitch extends StatelessWidget {
|
|||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
CustomPageRoute(
|
CustomPageRoute(
|
||||||
builder: (context) => LightInterface(light: device),
|
builder: (context) => BlocProvider(
|
||||||
|
create: (context) => DevicesCubit(),
|
||||||
|
child: LightInterface(light: device),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
case DeviceType.ThreeGang:
|
case DeviceType.ThreeGang:
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
CustomPageRoute(
|
CustomPageRoute(
|
||||||
builder: (context) => ThreeGangInterface(
|
builder: (context) => BlocProvider(
|
||||||
gangSwitch: device,
|
create: (context) => DevicesCubit(),
|
||||||
|
child: ThreeGangInterface(
|
||||||
|
gangSwitch: device,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -6,9 +6,11 @@ import 'package:syncrow_app/features/app_layout/bloc/home_cubit.dart';
|
|||||||
import 'package:syncrow_app/features/devices/model/device_model.dart';
|
import 'package:syncrow_app/features/devices/model/device_model.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/ACs/category_view_app_bar.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/ACs/category_view_app_bar.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/three_gang/three_gang_interface_body.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/three_gang/three_gang_interface_body.dart';
|
||||||
|
import 'package:syncrow_app/features/shared_widgets/text_widgets/body_large.dart';
|
||||||
import 'package:syncrow_app/generated/assets.dart';
|
import 'package:syncrow_app/generated/assets.dart';
|
||||||
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
|
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
|
||||||
import 'package:syncrow_app/utils/resource_manager/constants.dart';
|
import 'package:syncrow_app/utils/resource_manager/constants.dart';
|
||||||
|
import 'package:syncrow_app/utils/resource_manager/font_manager.dart';
|
||||||
|
|
||||||
class ThreeGangInterface extends StatelessWidget {
|
class ThreeGangInterface extends StatelessWidget {
|
||||||
const ThreeGangInterface({super.key, required this.gangSwitch});
|
const ThreeGangInterface({super.key, required this.gangSwitch});
|
||||||
@ -23,38 +25,43 @@ class ThreeGangInterface extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
child: SafeArea(
|
child: SafeArea(
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
backgroundColor: ColorsManager.backgroundColor,
|
backgroundColor: ColorsManager.backgroundColor,
|
||||||
extendBodyBehindAppBar: true,
|
extendBodyBehindAppBar: true,
|
||||||
extendBody: true,
|
extendBody: true,
|
||||||
appBar: const CategoryViewAppBar(),
|
appBar: AppBar(
|
||||||
body: BlocBuilder<HomeCubit, HomeState>(
|
backgroundColor: Colors.transparent,
|
||||||
builder: (context, state) {
|
centerTitle: true,
|
||||||
return Container(
|
title: BodyLarge(
|
||||||
width: MediaQuery.sizeOf(context).width,
|
text: gangSwitch.name ?? "",
|
||||||
height: MediaQuery.sizeOf(context).height,
|
fontColor: ColorsManager.primaryColor,
|
||||||
decoration: const BoxDecoration(
|
fontWeight: FontsManager.bold,
|
||||||
image: DecorationImage(
|
),
|
||||||
image: AssetImage(
|
),
|
||||||
Assets.imagesBackground,
|
body: Container(
|
||||||
),
|
width: MediaQuery.sizeOf(context).width,
|
||||||
fit: BoxFit.cover,
|
height: MediaQuery.sizeOf(context).height,
|
||||||
opacity: 0.4,
|
decoration: const BoxDecoration(
|
||||||
),
|
image: DecorationImage(
|
||||||
),
|
image: AssetImage(
|
||||||
child: Padding(
|
Assets.imagesBackground,
|
||||||
padding: EdgeInsets.only(
|
),
|
||||||
top: Constants.appBarHeight,
|
fit: BoxFit.cover,
|
||||||
left: Constants.defaultPadding,
|
opacity: 0.4,
|
||||||
right: Constants.defaultPadding,
|
),
|
||||||
bottom: Constants.bottomNavBarHeight,
|
),
|
||||||
),
|
child: Padding(
|
||||||
child: ThreeGangInterfaceBody(
|
padding: EdgeInsets.only(
|
||||||
device: gangSwitch,
|
top: Constants.appBarHeight,
|
||||||
),
|
left: Constants.defaultPadding,
|
||||||
),
|
right: Constants.defaultPadding,
|
||||||
);
|
bottom: Constants.bottomNavBarHeight,
|
||||||
},
|
),
|
||||||
)),
|
child: ThreeGangInterfaceBody(
|
||||||
|
device: gangSwitch,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
import 'package:syncrow_app/features/auth/bloc/auth_cubit.dart';
|
import 'package:syncrow_app/features/auth/bloc/auth_cubit.dart';
|
||||||
|
import 'package:syncrow_app/features/devices/bloc/devices_cubit.dart';
|
||||||
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
|
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
|
||||||
import 'package:syncrow_app/utils/resource_manager/constants.dart';
|
import 'package:syncrow_app/utils/resource_manager/constants.dart';
|
||||||
import 'package:syncrow_app/utils/resource_manager/theme_manager.dart';
|
import 'package:syncrow_app/utils/resource_manager/theme_manager.dart';
|
||||||
@ -18,12 +19,8 @@ class MyApp extends StatelessWidget {
|
|||||||
MediaQuery.sizeOf(context).height * Constants.appBarHeightPercentage;
|
MediaQuery.sizeOf(context).height * Constants.appBarHeightPercentage;
|
||||||
Constants.bottomNavBarHeight = MediaQuery.sizeOf(context).height *
|
Constants.bottomNavBarHeight = MediaQuery.sizeOf(context).height *
|
||||||
Constants.bottomNavBarHeightPercentage;
|
Constants.bottomNavBarHeightPercentage;
|
||||||
return MultiBlocProvider(
|
return BlocProvider(
|
||||||
providers: [
|
create: (context) => AuthCubit(),
|
||||||
BlocProvider(
|
|
||||||
create: (context) => AuthCubit(),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
child: MaterialApp(
|
child: MaterialApp(
|
||||||
debugShowCheckedModeBanner: false,
|
debugShowCheckedModeBanner: false,
|
||||||
color: ColorsManager.primaryColor,
|
color: ColorsManager.primaryColor,
|
||||||
|
@ -25,13 +25,9 @@ class Router {
|
|||||||
return MaterialPageRoute(
|
return MaterialPageRoute(
|
||||||
builder: (_) => const SplashView(), settings: settings);
|
builder: (_) => const SplashView(), settings: settings);
|
||||||
|
|
||||||
case Routes.devicesRoute:
|
// case Routes.devicesRoute:
|
||||||
return MaterialPageRoute(
|
// return MaterialPageRoute(
|
||||||
builder: (_) => BlocProvider(
|
// builder: (_) => const DevicesView(), settings: settings);
|
||||||
create: (_) => DevicesCubit.getInstance(),
|
|
||||||
child: const DevicesView(),
|
|
||||||
),
|
|
||||||
settings: settings);
|
|
||||||
|
|
||||||
case Routes.profileRoute:
|
case Routes.profileRoute:
|
||||||
return MaterialPageRoute(
|
return MaterialPageRoute(
|
||||||
|
@ -30,10 +30,12 @@ class ServerFailure extends Failure {
|
|||||||
|
|
||||||
case DioExceptionType.badResponse:
|
case DioExceptionType.badResponse:
|
||||||
{
|
{
|
||||||
var document = parser.parse(dioError.response!.data.toString());
|
// var document = parser.parse(dioError.response!.data.toString());
|
||||||
var message = document.body!.text;
|
// var message = document.body!.text;
|
||||||
return ServerFailure.fromResponse(
|
return ServerFailure.fromResponse(
|
||||||
dioError.response!.statusCode!, message);
|
dioError.response!.statusCode!, dioError.response!.data.toString()
|
||||||
|
// message
|
||||||
|
);
|
||||||
}
|
}
|
||||||
case DioExceptionType.cancel:
|
case DioExceptionType.cancel:
|
||||||
return ServerFailure("The request to ApiServer was canceled");
|
return ServerFailure("The request to ApiServer was canceled");
|
||||||
|
Reference in New Issue
Block a user