diff --git a/lib/infrastructure/mqtt.dart b/lib/infrastructure/mqtt.dart index c2d37326..caa6218c 100644 --- a/lib/infrastructure/mqtt.dart +++ b/lib/infrastructure/mqtt.dart @@ -2,8 +2,6 @@ import 'dart:convert'; import 'package:cbj_integrations_controller/domain/core/request_types.dart'; import 'package:cbj_integrations_controller/domain/i_mqtt_server_repository.dart'; -import 'package:cbj_integrations_controller/domain/i_saved_devices_repo.dart'; -import 'package:cbj_integrations_controller/domain/i_saved_rooms_repo.dart'; import 'package:cbj_integrations_controller/infrastructure/devices/device_helper/device_helper.dart'; import 'package:cbj_integrations_controller/infrastructure/gen/cbj_hub_server/protoc_as_dart/cbj_hub_server.pbgrpc.dart'; import 'package:cbj_integrations_controller/infrastructure/generic_entities/abstract_entity/device_entity_base.dart'; @@ -83,7 +81,7 @@ class MqttServerRepository extends IMqttServerRepository { EntityState.state(EntityStateGRPC.waitingInComp); /// Sends directly to device connector conjecture - ISavedDevicesRepo.instance.addOrUpdateFromMqtt(deviceEntityBase); + // ISavedDevicesRepo.instance.addOrUpdateFromMqtt(deviceEntityBase); return; } else if (entityFromTheApp is DeviceEntityBase) { @@ -94,7 +92,7 @@ class MqttServerRepository extends IMqttServerRepository { // ConnectorDevicesStreamFromMqtt.fromMqttStream.add(entityFromTheApp); } else if (entityFromTheApp is RoomEntityDtos) { logger.i('Loop?'); - ISavedRoomsRepo.instance.addOrUpdateRoom(entityFromTheApp.toDomain()); + // ISavedRoomsRepo.instance.addOrUpdateRoom(entityFromTheApp.toDomain()); /// Sends directly to device connector conjecture HubRequestsToApp.streamRequestsToApp.add( diff --git a/lib/presentation/core/entities_utils.dart b/lib/presentation/core/entities_utils.dart index d243bb87..3f5fca76 100644 --- a/lib/presentation/core/entities_utils.dart +++ b/lib/presentation/core/entities_utils.dart @@ -6,14 +6,6 @@ import 'package:material_design_icons_flutter/material_design_icons_flutter.dart class EntitiesUtils { static IconData iconOfDeviceType(EntityTypes deviceType) { switch (deviceType) { - case EntityTypes.airConditioner: - // TODO: Handle this case. - break; - case EntityTypes.babyMonitor: - // TODO: Handle this case. - break; - case EntityTypes.bed: - return Icons.bed; case EntityTypes.blinds: return FontAwesomeIcons.alignJustify; case EntityTypes.boiler: @@ -23,31 +15,14 @@ class EntitiesUtils { break; case EntityTypes.button: return Icons.smart_button; - case EntityTypes.buttonWithLight: - // TODO: Handle this case. - break; - case EntityTypes.coffeeMachine: - // TODO: Handle this case. - break; case EntityTypes.computerApp: return Icons.computer; - case EntityTypes.dishwasher: - // TODO: Handle this case. - break; case EntityTypes.emptyEntity: // TODO: Handle this case. break; case EntityTypes.hub: // TODO: Handle this case. break; - case EntityTypes.humiditySensor: - // TODO: Handle this case. - break; - case EntityTypes.kettle: - // TODO: Handle this case. - break; - case EntityTypes.lightSensor: - return Icons.sensors; case EntityTypes.light: case EntityTypes.dimmableLight: case EntityTypes.rgbLights: @@ -55,16 +30,6 @@ class EntitiesUtils { case EntityTypes.rgbwLights: case EntityTypes.cctLight: return FontAwesomeIcons.lightbulb; - case EntityTypes.microphone: - return Icons.mic; - case EntityTypes.motionSensor: - // TODO: Handle this case. - break; - case EntityTypes.oven: - // TODO: Handle this case. - break; - case EntityTypes.oxygenSensor: - return Icons.sensors; case EntityTypes.phoneApp: return Icons.phone; case EntityTypes.pingEntity: @@ -77,9 +42,6 @@ class EntitiesUtils { case EntityTypes.scanner: case EntityTypes.printerWithScanner: return Icons.print; - case EntityTypes.refrigerator: - // TODO: Handle this case. - break; case EntityTypes.routerEntity: return Icons.router; case EntityTypes.securityCamera: @@ -88,37 +50,15 @@ class EntitiesUtils { return Icons.computer; case EntityTypes.smartPlug: return MdiIcons.powerSocketAu; - case EntityTypes.smartSpeakers: - return Icons.speaker; case EntityTypes.smartTV: return Icons.tv; case EntityTypes.smartTypeNotSupported: // TODO: Handle this case. break; - case EntityTypes.smartWatch: - return Icons.watch; - case EntityTypes.smartWaterBottle: - // TODO: Handle this case. - break; - case EntityTypes.smokeDetector: - case EntityTypes.smokeSensor: - case EntityTypes.soundSensor: - return Icons.sensors; case EntityTypes.switch_: return MdiIcons.lightSwitch; - case EntityTypes.teapot: - // TODO: Handle this case. - break; - case EntityTypes.temperatureSensor: - return MdiIcons.temperatureCelsius; - case EntityTypes.toaster: - return MdiIcons.toaster; - case EntityTypes.vacuumCleaner: - return MdiIcons.vacuum; case EntityTypes.voiceAssistant: return MdiIcons.voicemail; - case EntityTypes.washingMachine: - return MdiIcons.washingMachine; } return Icons.question_mark; } diff --git a/lib/presentation/pages/add_new_automation_process/add_action/widgets/action_choose_information.dart b/lib/presentation/pages/add_action_page.dart similarity index 93% rename from lib/presentation/pages/add_new_automation_process/add_action/widgets/action_choose_information.dart rename to lib/presentation/pages/add_action_page.dart index 0768f3c6..0c9be1d4 100644 --- a/lib/presentation/pages/add_new_automation_process/add_action/widgets/action_choose_information.dart +++ b/lib/presentation/pages/add_action_page.dart @@ -5,9 +5,32 @@ import 'package:cbj_integrations_controller/infrastructure/generic_entities/abst import 'package:cybearjinni/domain/device/i_device_repository.dart'; import 'package:cybearjinni/presentation/atoms/atoms.dart'; import 'package:cybearjinni/presentation/core/snack_bar_service.dart'; +import 'package:cybearjinni/presentation/molecules/molecules.dart'; import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:hexcolor/hexcolor.dart'; +@RoutePage>>>() +class AddActionPage extends StatelessWidget { + void backButtonFunction(BuildContext context) {} + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + children: [ + TopBarMolecule( + pageName: 'Add Action', + leftIcon: FontAwesomeIcons.arrowLeft, + leftIconFunction: (_) => context.router.pop(), + ), + ActionChooseInformation(), + ], + ), + ); + } +} + class ActionChooseInformation extends StatefulWidget { @override State createState() => diff --git a/lib/presentation/pages/add_new_automation_process/add_bindings/add_binding_page.dart b/lib/presentation/pages/add_bindings/add_binding_page.dart similarity index 88% rename from lib/presentation/pages/add_new_automation_process/add_bindings/add_binding_page.dart rename to lib/presentation/pages/add_bindings/add_binding_page.dart index 5663fb0e..c19f0940 100644 --- a/lib/presentation/pages/add_new_automation_process/add_bindings/add_binding_page.dart +++ b/lib/presentation/pages/add_bindings/add_binding_page.dart @@ -1,6 +1,6 @@ import 'package:auto_route/auto_route.dart'; import 'package:cybearjinni/presentation/molecules/molecules.dart'; -import 'package:cybearjinni/presentation/pages/add_new_automation_process/add_bindings/widgets/add_binding_widget.dart'; +import 'package:cybearjinni/presentation/pages/add_bindings/widgets/add_binding_widget.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:hexcolor/hexcolor.dart'; diff --git a/lib/presentation/pages/add_new_automation_process/add_bindings/widgets/add_binding_widget.dart b/lib/presentation/pages/add_bindings/widgets/add_binding_widget.dart similarity index 98% rename from lib/presentation/pages/add_new_automation_process/add_bindings/widgets/add_binding_widget.dart rename to lib/presentation/pages/add_bindings/widgets/add_binding_widget.dart index ba2a78be..5a252bec 100644 --- a/lib/presentation/pages/add_new_automation_process/add_bindings/widgets/add_binding_widget.dart +++ b/lib/presentation/pages/add_bindings/widgets/add_binding_widget.dart @@ -8,7 +8,7 @@ import 'package:cybearjinni/domain/device/i_device_repository.dart'; import 'package:cybearjinni/presentation/atoms/atoms.dart'; import 'package:cybearjinni/presentation/core/routes/app_router.gr.dart'; import 'package:cybearjinni/presentation/core/snack_bar_service.dart'; -import 'package:cybearjinni/presentation/pages/add_new_automation_process/add_bindings/widgets/binding_action_widget.dart'; +import 'package:cybearjinni/presentation/pages/add_bindings/widgets/binding_action_widget.dart'; import 'package:dartz/dartz.dart' as dartz; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; diff --git a/lib/presentation/pages/add_new_automation_process/add_bindings/widgets/binding_action_widget.dart b/lib/presentation/pages/add_bindings/widgets/binding_action_widget.dart similarity index 100% rename from lib/presentation/pages/add_new_automation_process/add_bindings/widgets/binding_action_widget.dart rename to lib/presentation/pages/add_bindings/widgets/binding_action_widget.dart diff --git a/lib/presentation/pages/add_new_automation_process/add_action/add_action_page.dart b/lib/presentation/pages/add_new_automation_process/add_action/add_action_page.dart deleted file mode 100644 index 328f57f6..00000000 --- a/lib/presentation/pages/add_new_automation_process/add_action/add_action_page.dart +++ /dev/null @@ -1,27 +0,0 @@ -import 'package:auto_route/auto_route.dart'; -import 'package:cbj_integrations_controller/infrastructure/generic_entities/abstract_entity/device_entity_base.dart'; -import 'package:cybearjinni/presentation/molecules/molecules.dart'; -import 'package:cybearjinni/presentation/pages/add_new_automation_process/add_action/widgets/action_choose_information.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; - -@RoutePage>>>() -class AddActionPage extends StatelessWidget { - void backButtonFunction(BuildContext context) {} - - @override - Widget build(BuildContext context) { - return Scaffold( - body: Column( - children: [ - TopBarMolecule( - pageName: 'Add Action', - leftIcon: FontAwesomeIcons.arrowLeft, - leftIconFunction: (_) => context.router.pop(), - ), - ActionChooseInformation(), - ], - ), - ); - } -} diff --git a/lib/presentation/pages/add_new_devices/add_new_cbj_devices.dart b/lib/presentation/pages/add_new_devices/add_new_cbj_devices.dart deleted file mode 100644 index 0e828e9e..00000000 --- a/lib/presentation/pages/add_new_devices/add_new_cbj_devices.dart +++ /dev/null @@ -1,101 +0,0 @@ -import 'dart:async'; - -import 'package:auto_route/auto_route.dart'; -import 'package:cbj_integrations_controller/infrastructure/generic_entities/generic_light_entity/generic_light_entity.dart'; -import 'package:cybearjinni/presentation/atoms/atoms.dart'; -import 'package:cybearjinni/presentation/molecules/molecules.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; - -/// This page will show all the CyBear Jinni devices that have connected to the -/// hotspot of the app device. -class AddNewCBJDevices extends StatefulWidget { - static List newDevicesList = []; - static List newDevicesStringList = []; - - @override - State createState() { - return _AddNewCBJDevices(); - } -} - -class _AddNewCBJDevices extends State { - _AddNewCBJDevices() { - // final CreateTheCBJAppServer createTheCBJAppServer = CreateTheCBJAppServer(); - // StreamController smartDeviceStream; - // - // createTheCBJAppServer.createServer(smartDeviceStream); - } - - @override - void initState() { - super.initState(); - setStateTimer(); - } - - // List newDevicesList = []; - - void setStateTimer() { - Timer.periodic(const Duration(seconds: 3), (Timer timer) { - setState(() { - // newDevicesList = AddNewCBJDevices.newDevicesList; - }); - }); - } - - void backButtonFunction(BuildContext context) { - context.router.pop(); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - body: Container( - width: MediaQuery.of(context).size.width, - decoration: BoxDecoration( - gradient: LinearGradient( - // Where the linear gradient begins and ends - begin: Alignment.topRight, - end: Alignment.bottomCenter, - // Add one stop for each color. Stops should increase from 0 to 1 - stops: const [0, 0, 0, 1], - colors: [ - Theme.of(context).primaryColor, - Theme.of(context).colorScheme.secondary, - Theme.of(context).colorScheme.secondary, - Theme.of(context).primaryColor, - ], - ), - ), - child: Column( - children: [ - TopBarMolecule( - pageName: 'Add New CyBear Jinni Devices', - leftIcon: FontAwesomeIcons.arrowLeft, - leftIconFunction: backButtonFunction, - ), - - const SizedBox( - height: 50, - ), - - const TextAtom( - "Can't find any devices", - style: TextStyle( - fontSize: 15.0, - ), - ), - // StreamBuilder(), - // Expanded( - // child: ListView( - // children: newDevicesList.map((SmartDeviceObject newDevice) { - // return SmartDeviceToConfigure(newDevice); - // }).toList(), - // ), - // ), - ], - ), - ), - ); - } -} diff --git a/lib/presentation/pages/add_new_room/add_new_room_page.dart b/lib/presentation/pages/add_new_room/add_new_room_page.dart deleted file mode 100644 index a62bac85..00000000 --- a/lib/presentation/pages/add_new_room/add_new_room_page.dart +++ /dev/null @@ -1,18 +0,0 @@ -import 'package:auto_route/auto_route.dart'; -import 'package:cybearjinni/presentation/atoms/atoms.dart'; -import 'package:cybearjinni/presentation/pages/add_new_room/widgets/add_new_room_form.dart'; -import 'package:flutter/material.dart'; - -@RoutePage() -class AddNewRoomPage extends StatelessWidget { - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - backgroundColor: Colors.purple, - title: const TextAtom('Add New Area'), - ), - body: AddNewRoomForm(), - ); - } -} diff --git a/lib/presentation/pages/add_new_room/widgets/add_new_room_form.dart b/lib/presentation/pages/add_new_room_page.dart similarity index 96% rename from lib/presentation/pages/add_new_room/widgets/add_new_room_form.dart rename to lib/presentation/pages/add_new_room_page.dart index 295caa26..a216a20a 100644 --- a/lib/presentation/pages/add_new_room/widgets/add_new_room_form.dart +++ b/lib/presentation/pages/add_new_room_page.dart @@ -14,6 +14,20 @@ import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:multi_select_flutter/multi_select_flutter.dart'; +@RoutePage() +class AddNewRoomPage extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.purple, + title: const TextAtom('Add New Area'), + ), + body: AddNewRoomForm(), + ); + } +} + class AddNewRoomForm extends StatefulWidget { @override State createState() => _AddNewRoomFormState(); diff --git a/lib/presentation/pages/add_new_automation_process/add_routine/add_routine_page.dart b/lib/presentation/pages/add_routine/add_routine_page.dart similarity index 91% rename from lib/presentation/pages/add_new_automation_process/add_routine/add_routine_page.dart rename to lib/presentation/pages/add_routine/add_routine_page.dart index fa8c0b86..fe27d822 100644 --- a/lib/presentation/pages/add_new_automation_process/add_routine/add_routine_page.dart +++ b/lib/presentation/pages/add_routine/add_routine_page.dart @@ -1,7 +1,7 @@ import 'package:auto_route/auto_route.dart'; import 'package:cbj_integrations_controller/domain/routine/value_objects_routine_cbj.dart'; import 'package:cybearjinni/presentation/molecules/molecules.dart'; -import 'package:cybearjinni/presentation/pages/add_new_automation_process/add_routine/widgets/add_routine_widget.dart'; +import 'package:cybearjinni/presentation/pages/add_routine/widgets/add_routine_widget.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:hexcolor/hexcolor.dart'; diff --git a/lib/presentation/pages/add_new_automation_process/add_routine/widgets/add_routine_widget.dart b/lib/presentation/pages/add_routine/widgets/add_routine_widget.dart similarity index 98% rename from lib/presentation/pages/add_new_automation_process/add_routine/widgets/add_routine_widget.dart rename to lib/presentation/pages/add_routine/widgets/add_routine_widget.dart index 71e7686d..1a89553b 100644 --- a/lib/presentation/pages/add_new_automation_process/add_routine/widgets/add_routine_widget.dart +++ b/lib/presentation/pages/add_routine/widgets/add_routine_widget.dart @@ -9,7 +9,7 @@ import 'package:cybearjinni/domain/device/i_device_repository.dart'; import 'package:cybearjinni/presentation/atoms/atoms.dart'; import 'package:cybearjinni/presentation/core/routes/app_router.gr.dart'; import 'package:cybearjinni/presentation/core/snack_bar_service.dart'; -import 'package:cybearjinni/presentation/pages/add_new_automation_process/add_routine/widgets/routine_action_widget.dart'; +import 'package:cybearjinni/presentation/pages/add_routine/widgets/routine_action_widget.dart'; import 'package:dartz/dartz.dart' as dartz; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; diff --git a/lib/presentation/pages/add_new_automation_process/add_routine/widgets/routine_action_widget.dart b/lib/presentation/pages/add_routine/widgets/routine_action_widget.dart similarity index 100% rename from lib/presentation/pages/add_new_automation_process/add_routine/widgets/routine_action_widget.dart rename to lib/presentation/pages/add_routine/widgets/routine_action_widget.dart diff --git a/lib/presentation/pages/add_new_automation_process/add_scene/add_scene_page.dart b/lib/presentation/pages/add_scene/add_scene_page.dart similarity index 88% rename from lib/presentation/pages/add_new_automation_process/add_scene/add_scene_page.dart rename to lib/presentation/pages/add_scene/add_scene_page.dart index c3f22a76..b856cd11 100644 --- a/lib/presentation/pages/add_new_automation_process/add_scene/add_scene_page.dart +++ b/lib/presentation/pages/add_scene/add_scene_page.dart @@ -1,6 +1,6 @@ import 'package:auto_route/auto_route.dart'; import 'package:cybearjinni/presentation/molecules/molecules.dart'; -import 'package:cybearjinni/presentation/pages/add_new_automation_process/add_scene/widgets/add_scene_widget.dart'; +import 'package:cybearjinni/presentation/pages/add_scene/widgets/add_scene_widget.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:hexcolor/hexcolor.dart'; diff --git a/lib/presentation/pages/add_new_automation_process/add_scene/widgets/add_scene_widget.dart b/lib/presentation/pages/add_scene/widgets/add_scene_widget.dart similarity index 98% rename from lib/presentation/pages/add_new_automation_process/add_scene/widgets/add_scene_widget.dart rename to lib/presentation/pages/add_scene/widgets/add_scene_widget.dart index 63e88c24..93be15e2 100644 --- a/lib/presentation/pages/add_new_automation_process/add_scene/widgets/add_scene_widget.dart +++ b/lib/presentation/pages/add_scene/widgets/add_scene_widget.dart @@ -9,7 +9,7 @@ import 'package:cybearjinni/domain/device/i_device_repository.dart'; import 'package:cybearjinni/presentation/atoms/atoms.dart'; import 'package:cybearjinni/presentation/core/routes/app_router.gr.dart'; import 'package:cybearjinni/presentation/core/snack_bar_service.dart'; -import 'package:cybearjinni/presentation/pages/add_new_automation_process/add_scene/widgets/scene_action_widget.dart'; +import 'package:cybearjinni/presentation/pages/add_scene/widgets/scene_action_widget.dart'; import 'package:dartz/dartz.dart' as dartz; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; diff --git a/lib/presentation/pages/add_new_automation_process/add_scene/widgets/scene_action_widget.dart b/lib/presentation/pages/add_scene/widgets/scene_action_widget.dart similarity index 100% rename from lib/presentation/pages/add_new_automation_process/add_scene/widgets/scene_action_widget.dart rename to lib/presentation/pages/add_scene/widgets/scene_action_widget.dart diff --git a/lib/presentation/pages/change_room_for_devices/change_room_for_devices_page.dart b/lib/presentation/pages/change_room_for_devices/change_room_for_devices_page.dart deleted file mode 100644 index 2b2dd82f..00000000 --- a/lib/presentation/pages/change_room_for_devices/change_room_for_devices_page.dart +++ /dev/null @@ -1,28 +0,0 @@ -import 'package:auto_route/auto_route.dart'; -import 'package:cybearjinni/presentation/molecules/molecules.dart'; -import 'package:cybearjinni/presentation/pages/change_room_for_devices/widgets/change_room_for_devices_widget.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; - -@RoutePage() -class ChangeRoomForDevicesPage extends StatelessWidget { - void backButtonFunction(BuildContext context) { - context.router.pop(); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - body: Column( - children: [ - TopBarMolecule( - pageName: 'Change Area For Devices', - leftIcon: FontAwesomeIcons.arrowLeft, - leftIconFunction: backButtonFunction, - ), - ChangeRoomForDevicesWidget(), - ], - ), - ); - } -} diff --git a/lib/presentation/pages/change_room_for_devices/widgets/change_room_for_devices_widget.dart b/lib/presentation/pages/change_room_for_devices_page.dart similarity index 91% rename from lib/presentation/pages/change_room_for_devices/widgets/change_room_for_devices_widget.dart rename to lib/presentation/pages/change_room_for_devices_page.dart index f72277f3..f5ebd970 100644 --- a/lib/presentation/pages/change_room_for_devices/widgets/change_room_for_devices_widget.dart +++ b/lib/presentation/pages/change_room_for_devices_page.dart @@ -7,10 +7,35 @@ import 'package:cybearjinni/domain/device/i_device_repository.dart'; import 'package:cybearjinni/presentation/atoms/atoms.dart'; import 'package:cybearjinni/presentation/core/routes/app_router.gr.dart'; import 'package:cybearjinni/presentation/core/snack_bar_service.dart'; +import 'package:cybearjinni/presentation/molecules/molecules.dart'; import 'package:dartz/dartz.dart' as dartz; import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:multi_select_flutter/multi_select_flutter.dart'; +@RoutePage() +class ChangeRoomForDevicesPage extends StatelessWidget { + void backButtonFunction(BuildContext context) { + context.router.pop(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + children: [ + TopBarMolecule( + pageName: 'Change Area For Devices', + leftIcon: FontAwesomeIcons.arrowLeft, + leftIconFunction: backButtonFunction, + ), + ChangeRoomForDevicesWidget(), + ], + ), + ); + } +} + class ChangeRoomForDevicesWidget extends StatefulWidget { @override State createState() => diff --git a/lib/presentation/pages/add_new_automation_process/choose_automation_type_to_add/choose_automation_type_to_add_page.dart b/lib/presentation/pages/choose_automation_type_to_add_page.dart similarity index 100% rename from lib/presentation/pages/add_new_automation_process/choose_automation_type_to_add/choose_automation_type_to_add_page.dart rename to lib/presentation/pages/choose_automation_type_to_add_page.dart diff --git a/lib/presentation/pages/connect_to_hub_more/connect_to_hub_more_page.dart b/lib/presentation/pages/connect_to_hub_more/connect_to_hub_more_page.dart deleted file mode 100644 index 9d3304ca..00000000 --- a/lib/presentation/pages/connect_to_hub_more/connect_to_hub_more_page.dart +++ /dev/null @@ -1,75 +0,0 @@ -import 'package:auto_route/auto_route.dart'; -import 'package:cybearjinni/presentation/atoms/atoms.dart'; -import 'package:cybearjinni/presentation/pages/connect_to_hub_more/widgets/connect_to_hub_more_widget.dart'; -import 'package:flutter/material.dart'; -import 'package:hexcolor/hexcolor.dart'; - -@RoutePage() -class ConnectToHubMorePage extends StatelessWidget { - @override - Widget build(BuildContext context) { - return Scaffold( - body: Container( - decoration: BoxDecoration( - gradient: LinearGradient( - colors: [ - HexColor('#9355e5'), - HexColor('#b162e4'), - ], - ), - ), - child: Column( - children: [ - const SizedBox( - height: 50, - ), - Container( - alignment: Alignment.center, - child: const TextAtom( - 'More Connections Options', - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 23, - color: Colors.white, - ), - ), - ), - const SizedBox( - height: 40, - ), - Expanded( - child: Center( - child: ConnectToHubMoreWidget(), - ), - ), - const SizedBox( - height: 15, - ), - Container( - margin: const EdgeInsets.symmetric(horizontal: 5), - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - TextButton( - onPressed: () async { - context.router.pop(); - }, - style: TextButton.styleFrom( - minimumSize: const Size(70, 30), - backgroundColor: HexColor('#985dc7'), - foregroundColor: Colors.white, - ), - child: const TextAtom( - 'Back', - style: TextStyle(color: Colors.white), - ), - ), - ], - ), - ), - ], - ), - ), - ); - } -} diff --git a/lib/presentation/pages/connect_to_hub_more/widgets/connect_to_hub_more_widget.dart b/lib/presentation/pages/connect_to_hub_more_page.dart similarity index 74% rename from lib/presentation/pages/connect_to_hub_more/widgets/connect_to_hub_more_widget.dart rename to lib/presentation/pages/connect_to_hub_more_page.dart index b2791137..37065e76 100644 --- a/lib/presentation/pages/connect_to_hub_more/widgets/connect_to_hub_more_widget.dart +++ b/lib/presentation/pages/connect_to_hub_more_page.dart @@ -12,6 +12,76 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:kt_dart/kt.dart'; +@RoutePage() +class ConnectToHubMorePage extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + body: Container( + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + HexColor('#9355e5'), + HexColor('#b162e4'), + ], + ), + ), + child: Column( + children: [ + const SizedBox( + height: 50, + ), + Container( + alignment: Alignment.center, + child: const TextAtom( + 'More Connections Options', + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 23, + color: Colors.white, + ), + ), + ), + const SizedBox( + height: 40, + ), + Expanded( + child: Center( + child: ConnectToHubMoreWidget(), + ), + ), + const SizedBox( + height: 15, + ), + Container( + margin: const EdgeInsets.symmetric(horizontal: 5), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () async { + context.router.pop(); + }, + style: TextButton.styleFrom( + minimumSize: const Size(70, 30), + backgroundColor: HexColor('#985dc7'), + foregroundColor: Colors.white, + ), + child: const TextAtom( + 'Back', + style: TextStyle(color: Colors.white), + ), + ), + ], + ), + ), + ], + ), + ), + ); + } +} + class ConnectToHubMoreWidget extends StatefulWidget { @override State createState() => _ConnectToHubMoreWidgetState(); diff --git a/lib/presentation/pages/home_page/tabs/smart_devices_tab/settings_page_of_smart_devices.dart b/lib/presentation/pages/home_page/tabs/smart_devices_tab/settings_page_of_smart_devices.dart deleted file mode 100644 index c74b7fba..00000000 --- a/lib/presentation/pages/home_page/tabs/smart_devices_tab/settings_page_of_smart_devices.dart +++ /dev/null @@ -1,73 +0,0 @@ -import 'package:auto_route/auto_route.dart'; -import 'package:cybearjinni/presentation/atoms/atoms.dart'; -import 'package:cybearjinni/presentation/molecules/molecules.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; - -class SettingsPageSmartDevices extends StatelessWidget { - void backButtonFunction(BuildContext context) { - context.router.pop(); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - body: Container( - width: MediaQuery.of(context).size.width, - decoration: BoxDecoration( - gradient: LinearGradient( - // Where the linear gradient begins and ends - begin: Alignment.topRight, - end: Alignment.bottomCenter, - // Add one stop for each color. Stops should increase from 0 to 1 - stops: const [0, 0, 0, 1], - colors: [ - Theme.of(context).primaryColor, - Theme.of(context).colorScheme.secondary, - Theme.of(context).colorScheme.secondary, - Theme.of(context).primaryColor, - ], - ), - ), - child: Column( - children: [ - TopBarMolecule( - pageName: 'Smart Devices Settings', - leftIcon: FontAwesomeIcons.arrowLeft, - leftIconFunction: backButtonFunction, - ), - const SizedBox( - height: 30, - ), - Container( - height: 35, - width: MediaQuery.of(context).size.width - 20, - decoration: const BoxDecoration( - color: Colors.black38, - borderRadius: BorderRadius.all(Radius.circular(10)), - ), - alignment: Alignment.center, - child: TextAtom( - 'Open Access Point', - style: TextStyle( - fontSize: 25, - color: Theme.of(context).textTheme.bodyLarge!.color, - ), - ), - ), - const SizedBox( - height: 20, - ), - // Expanded( - // child: BlocProvider( - // create: (context) => getIt() - // ..add(ManageAccessPointEvent.initialized()), - // child: OpenAccessPointWidget(), - // ), - // ), - ], - ), - ), - ); - } -} diff --git a/lib/presentation/pages/pages.dart b/lib/presentation/pages/pages.dart index 7bfe00b2..b75ecafa 100644 --- a/lib/presentation/pages/pages.dart +++ b/lib/presentation/pages/pages.dart @@ -1,30 +1,30 @@ -export 'package:cybearjinni/presentation/pages/add_new_automation_process/add_action/add_action_page.dart'; -export 'package:cybearjinni/presentation/pages/add_new_automation_process/add_bindings/add_binding_page.dart'; -export 'package:cybearjinni/presentation/pages/add_new_automation_process/add_routine/add_routine_page.dart'; -export 'package:cybearjinni/presentation/pages/add_new_automation_process/add_routine/pick_repeat_time/pick_repeat_time_page.dart'; -export 'package:cybearjinni/presentation/pages/add_new_automation_process/add_scene/add_scene_page.dart'; -export 'package:cybearjinni/presentation/pages/add_new_automation_process/choose_automation_type_to_add/choose_automation_type_to_add_page.dart'; +export 'package:cybearjinni/presentation/pages/add_action_page.dart'; +export 'package:cybearjinni/presentation/pages/add_bindings/add_binding_page.dart'; export 'package:cybearjinni/presentation/pages/add_new_devices_process/choose_device_vendor_to_add/choose_device_vendor_to_add_page.dart'; export 'package:cybearjinni/presentation/pages/add_new_devices_process/computer_connection_check/computer_connection_check_page.dart'; export 'package:cybearjinni/presentation/pages/add_new_devices_process/configure_new_cbj_comp/configure_new_cbj_comp_page.dart'; export 'package:cybearjinni/presentation/pages/add_new_devices_process/connect_to_home_wifi/connect_to_home_wifi_page.dart'; export 'package:cybearjinni/presentation/pages/add_new_devices_process/open_access_point/open_access_pointi_page.dart'; export 'package:cybearjinni/presentation/pages/add_new_devices_process/scan_for_new_cbj_comps/scan_for_new_cbj_comps_page.dart'; -export 'package:cybearjinni/presentation/pages/add_new_room/add_new_room_page.dart'; +export 'package:cybearjinni/presentation/pages/add_new_room_page.dart'; +export 'package:cybearjinni/presentation/pages/add_routine/add_routine_page.dart'; +export 'package:cybearjinni/presentation/pages/add_scene/add_scene_page.dart'; export 'package:cybearjinni/presentation/pages/add_vendors_pages/add_esphome_vendor/add_esphome_vendor_page.dart'; export 'package:cybearjinni/presentation/pages/add_vendors_pages/add_ewelink_vendor/add_ewelink_vendor_page.dart'; export 'package:cybearjinni/presentation/pages/add_vendors_pages/add_lifx_vendor/add_lifx_vendor_page.dart'; -export 'package:cybearjinni/presentation/pages/change_room_for_devices/change_room_for_devices_page.dart'; +export 'package:cybearjinni/presentation/pages/change_room_for_devices_page.dart'; +export 'package:cybearjinni/presentation/pages/choose_automation_type_to_add_page.dart'; export 'package:cybearjinni/presentation/pages/connect_to_hub/connect_to_hub_page.dart'; -export 'package:cybearjinni/presentation/pages/connect_to_hub_more/connect_to_hub_more_page.dart'; +export 'package:cybearjinni/presentation/pages/connect_to_hub_more_page.dart'; export 'package:cybearjinni/presentation/pages/entities_in_network_page.dart'; export 'package:cybearjinni/presentation/pages/entities_in_room_page.dart'; export 'package:cybearjinni/presentation/pages/home_page/home_page.dart'; export 'package:cybearjinni/presentation/pages/introduction_screen/introduction_screen_page.dart'; -export 'package:cybearjinni/presentation/pages/plus_button/plus_button.dart'; -export 'package:cybearjinni/presentation/pages/remote_pipes/remote_pipes_page.dart'; +export 'package:cybearjinni/presentation/pages/pick_repeat_time_page.dart'; +export 'package:cybearjinni/presentation/pages/plus_button.dart'; +export 'package:cybearjinni/presentation/pages/remote_pipes_page.dart'; export 'package:cybearjinni/presentation/pages/scenes/scenes_page.dart'; export 'package:cybearjinni/presentation/pages/smart_camera_container_page.dart'; -export 'package:cybearjinni/presentation/pages/software_info/software_info_page.dart'; +export 'package:cybearjinni/presentation/pages/software_info_page.dart'; export 'package:cybearjinni/presentation/pages/splash_page.dart'; export 'package:cybearjinni/presentation/pages/video_stream_output_container_page.dart'; diff --git a/lib/presentation/pages/add_new_automation_process/add_routine/pick_repeat_time/pick_repeat_time_page.dart b/lib/presentation/pages/pick_repeat_time_page.dart similarity index 100% rename from lib/presentation/pages/add_new_automation_process/add_routine/pick_repeat_time/pick_repeat_time_page.dart rename to lib/presentation/pages/pick_repeat_time_page.dart diff --git a/lib/presentation/pages/plus_button.dart b/lib/presentation/pages/plus_button.dart new file mode 100644 index 00000000..37b72f94 --- /dev/null +++ b/lib/presentation/pages/plus_button.dart @@ -0,0 +1,282 @@ +import 'package:auto_route/auto_route.dart'; +import 'package:cbj_integrations_controller/domain/hub/hub_entity.dart'; +import 'package:cybearjinni/domain/connections_service.dart'; +import 'package:cybearjinni/domain/i_hub_connection_repository.dart'; +import 'package:cybearjinni/presentation/atoms/atoms.dart'; +import 'package:cybearjinni/presentation/core/routes/app_router.gr.dart'; +import 'package:cybearjinni/presentation/molecules/molecules.dart'; +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:iconify_flutter/iconify_flutter.dart'; +import 'package:iconify_flutter/icons/simple_icons.dart'; +import 'package:url_launcher/url_launcher.dart'; + +@RoutePage() +class PlusButtonPage extends StatelessWidget { + Future _logout(BuildContext context) async { + context.router.replace(const ConnectToHubRoute()); + ConnectionsService.setCurrentConnectionType(null); + } + + @override + Widget build(BuildContext context) { + final ThemeData themeData = Theme.of(context); + final TextTheme textTheme = themeData.textTheme; + final ColorScheme colorScheme = themeData.colorScheme; + + return Scaffold( + body: Column( + children: [ + TopBarMolecule( + pageName: 'Add and Manage', + leftIcon: FontAwesomeIcons.arrowLeft, + leftIconFunction: (_) => context.router.pop(), + ), + SingleChildScrollView( + child: Column( + children: [ + const SizedBox( + height: 30, + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 15), + alignment: Alignment.topLeft, + child: TextAtom( + 'Add:', + style: textTheme.titleMedium, + ), + ), + const SizedBox( + height: 10, + ), + ColoredBox( + color: Colors.white, + child: Column( + children: [ + const SizedBox(height: 1), + ColoredBox( + color: Colors.indigoAccent.withOpacity(0.7), + child: ListTile( + leading: FaIcon( + FontAwesomeIcons.camera, + color: colorScheme.background, + ), + title: TextAtom( + 'Turn Phone To a Security Camera', + style: TextStyle( + color: + Theme.of(context).textTheme.bodyLarge!.color, + ), + ), + onTap: () async { + context.router + .push(const SmartCameraContainerRoute()); + await IHubConnectionRepository.instance + .closeConnection(); + }, + ), + ), + const SizedBox( + height: 1, + ), + ColoredBox( + color: Colors.brown.withOpacity(0.9), + child: ListTile( + leading: FaIcon( + FontAwesomeIcons.solidLightbulb, + color: colorScheme.background, + ), + title: TextAtom( + 'Add Entity', + style: TextStyle( + color: + Theme.of(context).textTheme.bodyLarge!.color, + ), + ), + onTap: () { + context.router + .push(const ChooseDeviceVendorToAddRoute()); + }, + ), + ), + const SizedBox(height: 1), + ColoredBox( + color: Colors.blue, + child: ListTile( + leading: FaIcon( + FontAwesomeIcons.globe, + color: colorScheme.background, + ), + title: TextAtom( + 'Add Remote Control Support', + style: TextStyle( + color: + Theme.of(context).textTheme.bodyLarge!.color, + ), + ), + onTap: () { + context.router.push(const RemotePipesRoute()); + }, + ), + ), + const SizedBox(height: 1), + ColoredBox( + color: Colors.purple.withOpacity(0.7), + child: ListTile( + leading: FaIcon( + FontAwesomeIcons.sitemap, + color: colorScheme.background, + ), + title: TextAtom( + 'Add Automation', + style: TextStyle( + color: + Theme.of(context).textTheme.bodyLarge!.color, + ), + ), + onTap: () { + context.router + .push(const ChooseAutomationTypeToAddRoute()); + }, + ), + ), + const SizedBox(height: 1), + ], + ), + ), + const SizedBox( + height: 40, + ), + Container( + alignment: Alignment.topLeft, + padding: const EdgeInsets.symmetric(horizontal: 15), + child: TextAtom( + 'Manage:', + style: textTheme.titleMedium, + ), + ), + const SizedBox( + height: 10, + ), + ColoredBox( + color: Colors.white, + child: Column( + children: [ + const SizedBox( + height: 1, + ), + ColoredBox( + color: Colors.pink.withOpacity(0.9), + child: ListTile( + leading: FaIcon( + FontAwesomeIcons.computer, + color: colorScheme.background, + ), + title: TextAtom( + 'All Entities in the network', + style: TextStyle( + color: + Theme.of(context).textTheme.bodyLarge!.color, + ), + ), + onTap: () => context.router + .push(const EntitiesInNetworkRoute()), + ), + ), + const SizedBox( + height: 1, + ), + ColoredBox( + color: Colors.redAccent.withOpacity(0.9), + child: ListTile( + leading: Iconify( + SimpleIcons.node_red, + color: colorScheme.background, + ), + title: TextAtom( + 'Open Node-RED of Hub', + style: TextStyle( + color: + Theme.of(context).textTheme.bodyLarge!.color, + ), + ), + onTap: () { + final HubEntity? hubEntity = + IHubConnectionRepository.hubEntity; + if (hubEntity != null && + hubEntity.lastKnownIp.isValid()) { + final String lastKnownIp = + hubEntity.lastKnownIp.getOrCrash(); + launchUrl( + Uri.parse('http://$lastKnownIp:1880'), + mode: LaunchMode.externalApplication, + ); + } else { + showDialog( + context: context, + builder: (_) => const AlertDialog( + title: TextAtom( + "Can't find Hub/Node-Red IP to connect to", + ), + ), + ); + } + }, + ), + ), + const SizedBox( + height: 1, + ), + ColoredBox( + color: Colors.orangeAccent, + child: ListTile( + leading: FaIcon( + FontAwesomeIcons.info, + color: colorScheme.background, + ), + title: TextAtom( + 'Software Info', + style: TextStyle( + color: + Theme.of(context).textTheme.bodyLarge!.color, + ), + ), + onTap: () { + context.router.push(const SoftwareInfoRoute()); + }, + ), + ), + const SizedBox( + height: 1, + ), + ColoredBox( + color: Colors.greenAccent, + child: ListTile( + leading: FaIcon( + FontAwesomeIcons.rightFromBracket, + color: colorScheme.background, + ), + title: TextAtom( + 'Log Out', + style: TextStyle( + color: + Theme.of(context).textTheme.bodyLarge!.color, + ), + ), + onTap: () => _logout(context), + ), + ), + const SizedBox( + height: 1, + ), + ], + ), + ), + ], + ), + ), + ], + ), + ); + } +} diff --git a/lib/presentation/pages/plus_button/plus_button.dart b/lib/presentation/pages/plus_button/plus_button.dart deleted file mode 100644 index dfed4225..00000000 --- a/lib/presentation/pages/plus_button/plus_button.dart +++ /dev/null @@ -1,24 +0,0 @@ -import 'package:auto_route/auto_route.dart'; -import 'package:cybearjinni/presentation/molecules/molecules.dart'; -import 'package:cybearjinni/presentation/pages/plus_button/widgets/plus_button_wighet.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; - -@RoutePage() -class PlusButtonPage extends StatelessWidget { - @override - Widget build(BuildContext context) { - return Scaffold( - body: Column( - children: [ - TopBarMolecule( - pageName: 'Add and Manage', - leftIcon: FontAwesomeIcons.arrowLeft, - leftIconFunction: (_) => context.router.pop(), - ), - PlusButtonWidget(), - ], - ), - ); - } -} diff --git a/lib/presentation/pages/plus_button/widgets/plus_button_wighet.dart b/lib/presentation/pages/plus_button/widgets/plus_button_wighet.dart deleted file mode 100644 index 80ed5bff..00000000 --- a/lib/presentation/pages/plus_button/widgets/plus_button_wighet.dart +++ /dev/null @@ -1,258 +0,0 @@ -import 'package:auto_route/auto_route.dart'; -import 'package:cbj_integrations_controller/domain/hub/hub_entity.dart'; -import 'package:cybearjinni/domain/connections_service.dart'; -import 'package:cybearjinni/domain/i_hub_connection_repository.dart'; -import 'package:cybearjinni/presentation/atoms/atoms.dart'; -import 'package:cybearjinni/presentation/core/routes/app_router.gr.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:iconify_flutter/iconify_flutter.dart'; -import 'package:iconify_flutter/icons/simple_icons.dart'; -import 'package:url_launcher/url_launcher.dart'; - -class PlusButtonWidget extends StatelessWidget { - Future _logout(BuildContext context) async { - context.router.replace(const ConnectToHubRoute()); - ConnectionsService.setCurrentConnectionType(null); - } - - @override - Widget build(BuildContext context) { - final ThemeData themeData = Theme.of(context); - final TextTheme textTheme = themeData.textTheme; - final ColorScheme colorScheme = themeData.colorScheme; - - return SingleChildScrollView( - child: Column( - children: [ - const SizedBox( - height: 30, - ), - Container( - padding: const EdgeInsets.symmetric(horizontal: 15), - alignment: Alignment.topLeft, - child: TextAtom( - 'Add:', - style: textTheme.titleMedium, - ), - ), - const SizedBox( - height: 10, - ), - ColoredBox( - color: Colors.white, - child: Column( - children: [ - const SizedBox(height: 1), - ColoredBox( - color: Colors.indigoAccent.withOpacity(0.7), - child: ListTile( - leading: FaIcon( - FontAwesomeIcons.camera, - color: colorScheme.background, - ), - title: TextAtom( - 'Turn Phone To a Security Camera', - style: TextStyle( - color: Theme.of(context).textTheme.bodyLarge!.color, - ), - ), - onTap: () async { - context.router.push(const SmartCameraContainerRoute()); - await IHubConnectionRepository.instance.closeConnection(); - }, - ), - ), - const SizedBox( - height: 1, - ), - ColoredBox( - color: Colors.brown.withOpacity(0.9), - child: ListTile( - leading: FaIcon( - FontAwesomeIcons.solidLightbulb, - color: colorScheme.background, - ), - title: TextAtom( - 'Add Entity', - style: TextStyle( - color: Theme.of(context).textTheme.bodyLarge!.color, - ), - ), - onTap: () { - context.router.push(const ChooseDeviceVendorToAddRoute()); - }, - ), - ), - const SizedBox(height: 1), - ColoredBox( - color: Colors.blue, - child: ListTile( - leading: FaIcon( - FontAwesomeIcons.globe, - color: colorScheme.background, - ), - title: TextAtom( - 'Add Remote Control Support', - style: TextStyle( - color: Theme.of(context).textTheme.bodyLarge!.color, - ), - ), - onTap: () { - context.router.push(const RemotePipesRoute()); - }, - ), - ), - const SizedBox(height: 1), - ColoredBox( - color: Colors.purple.withOpacity(0.7), - child: ListTile( - leading: FaIcon( - FontAwesomeIcons.sitemap, - color: colorScheme.background, - ), - title: TextAtom( - 'Add Automation', - style: TextStyle( - color: Theme.of(context).textTheme.bodyLarge!.color, - ), - ), - onTap: () { - context.router - .push(const ChooseAutomationTypeToAddRoute()); - }, - ), - ), - const SizedBox(height: 1), - ], - ), - ), - const SizedBox( - height: 40, - ), - Container( - alignment: Alignment.topLeft, - padding: const EdgeInsets.symmetric(horizontal: 15), - child: TextAtom( - 'Manage:', - style: textTheme.titleMedium, - ), - ), - const SizedBox( - height: 10, - ), - ColoredBox( - color: Colors.white, - child: Column( - children: [ - const SizedBox( - height: 1, - ), - ColoredBox( - color: Colors.pink.withOpacity(0.9), - child: ListTile( - leading: FaIcon( - FontAwesomeIcons.computer, - color: colorScheme.background, - ), - title: TextAtom( - 'All Entities in the network', - style: TextStyle( - color: Theme.of(context).textTheme.bodyLarge!.color, - ), - ), - onTap: () => - context.router.push(const EntitiesInNetworkRoute()), - ), - ), - const SizedBox( - height: 1, - ), - ColoredBox( - color: Colors.redAccent.withOpacity(0.9), - child: ListTile( - leading: Iconify( - SimpleIcons.node_red, - color: colorScheme.background, - ), - title: TextAtom( - 'Open Node-RED of Hub', - style: TextStyle( - color: Theme.of(context).textTheme.bodyLarge!.color, - ), - ), - onTap: () { - final HubEntity? hubEntity = - IHubConnectionRepository.hubEntity; - if (hubEntity != null && - hubEntity.lastKnownIp.isValid()) { - final String lastKnownIp = - hubEntity.lastKnownIp.getOrCrash(); - launchUrl( - Uri.parse('http://$lastKnownIp:1880'), - mode: LaunchMode.externalApplication, - ); - } else { - showDialog( - context: context, - builder: (_) => const AlertDialog( - title: TextAtom( - "Can't find Hub/Node-Red IP to connect to", - ), - ), - ); - } - }, - ), - ), - const SizedBox( - height: 1, - ), - ColoredBox( - color: Colors.orangeAccent, - child: ListTile( - leading: FaIcon( - FontAwesomeIcons.info, - color: colorScheme.background, - ), - title: TextAtom( - 'Software Info', - style: TextStyle( - color: Theme.of(context).textTheme.bodyLarge!.color, - ), - ), - onTap: () { - context.router.push(const SoftwareInfoRoute()); - }, - ), - ), - const SizedBox( - height: 1, - ), - ColoredBox( - color: Colors.greenAccent, - child: ListTile( - leading: FaIcon( - FontAwesomeIcons.rightFromBracket, - color: colorScheme.background, - ), - title: TextAtom( - 'Log Out', - style: TextStyle( - color: Theme.of(context).textTheme.bodyLarge!.color, - ), - ), - onTap: () => _logout(context), - ), - ), - const SizedBox( - height: 1, - ), - ], - ), - ), - ], - ), - ); - } -} diff --git a/lib/presentation/pages/remote_pipes/remote_pipes_page.dart b/lib/presentation/pages/remote_pipes/remote_pipes_page.dart deleted file mode 100644 index 1fedc23b..00000000 --- a/lib/presentation/pages/remote_pipes/remote_pipes_page.dart +++ /dev/null @@ -1,51 +0,0 @@ -import 'package:adaptive_action_sheet/adaptive_action_sheet.dart'; -import 'package:auto_route/auto_route.dart'; -import 'package:cybearjinni/presentation/atoms/atoms.dart'; -import 'package:cybearjinni/presentation/molecules/molecules.dart'; -import 'package:cybearjinni/presentation/pages/remote_pipes/widgets/manage_remote_pipes_widget.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; - -@RoutePage() -class RemotePipesPage extends StatelessWidget { - /// Execute when remote pipes press the icon in top right side - void userCogFunction(BuildContext context) { - showAdaptiveActionSheet( - context: context, - actions: [ - BottomSheetAction( - title: const TextAtom( - '➕ Add remote pipes', - style: TextStyle(color: Colors.green, fontSize: 23), - ), - onPressed: (_) { - // context.router.push(const AddUserToHomeRoute()); - }, - ), - ], - ); - } - - void leftIconFunction(BuildContext context) { - context.router.pop(); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - body: Column( - children: [ - TopBarMolecule( - pageName: 'Remote Pipes', - rightIconFunction: userCogFunction, - leftIcon: FontAwesomeIcons.arrowLeft, - leftIconFunction: leftIconFunction, - ), - Expanded( - child: RemotePipesWidget(), - ), - ], - ), - ); - } -} diff --git a/lib/presentation/pages/remote_pipes/widgets/error_remote_pipes_card_widget.dart b/lib/presentation/pages/remote_pipes/widgets/error_remote_pipes_card_widget.dart deleted file mode 100644 index 1beff35b..00000000 --- a/lib/presentation/pages/remote_pipes/widgets/error_remote_pipes_card_widget.dart +++ /dev/null @@ -1,42 +0,0 @@ -import 'package:cybearjinni/domain/home_user/home_user_entity.dart'; -import 'package:cybearjinni/presentation/atoms/atoms.dart'; -import 'package:flutter/material.dart'; - -class ErrorRemotePipesCard extends StatelessWidget { - const ErrorRemotePipesCard({ - required this.homeUser, - super.key, - }); - - final HomeUserEntity? homeUser; - - @override - Widget build(BuildContext context) { - return Card( - color: Theme.of(context).colorScheme.error, - child: Padding( - padding: const EdgeInsets.all(4), - child: Column( - children: [ - TextAtom( - 'Invalid remote pipes, please, contact support', - style: Theme.of(context) - .primaryTextTheme - .bodyMedium! - .copyWith(fontSize: 18), - ), - const SizedBox(height: 2), - TextAtom( - 'Details for nerds:', - style: Theme.of(context).primaryTextTheme.bodyMedium, - ), - TextAtom( - homeUser!.failureOption.fold(() => '', (f) => f.toString()), - style: Theme.of(context).primaryTextTheme.bodyMedium, - ), - ], - ), - ), - ); - } -} diff --git a/lib/presentation/pages/remote_pipes/widgets/remote_pipes_card_widget.dart b/lib/presentation/pages/remote_pipes/widgets/remote_pipes_card_widget.dart deleted file mode 100644 index 5a87e7b1..00000000 --- a/lib/presentation/pages/remote_pipes/widgets/remote_pipes_card_widget.dart +++ /dev/null @@ -1,50 +0,0 @@ -import 'package:cybearjinni/domain/home_user/home_user_entity.dart'; -import 'package:cybearjinni/presentation/atoms/atoms.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; - -class RemotePipesCard extends StatelessWidget { - const RemotePipesCard({ - required this.homeUser, - super.key, - }); - - final HomeUserEntity? homeUser; - - @override - Widget build(BuildContext context) { - return Container( - decoration: BoxDecoration( - border: Border( - top: BorderSide( - color: Theme.of(context).textTheme.bodyLarge!.color!, - ), - bottom: BorderSide( - color: Theme.of(context).textTheme.bodyLarge!.color!, - ), - ), - ), - height: 100, - child: Center( - child: ListTile( - leading: FaIcon( - FontAwesomeIcons.userGraduate, - color: Theme.of(context).textTheme.bodyLarge!.color, - ), - title: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - TextAtom( - homeUser!.email!.getOrCrash()!, - style: TextStyle( - color: Theme.of(context).textTheme.bodyLarge!.color, - ), - ), - ], - ), - onTap: () {}, - ), - ), - ); - } -} diff --git a/lib/presentation/pages/remote_pipes/widgets/manage_remote_pipes_widget.dart b/lib/presentation/pages/remote_pipes_page.dart similarity index 67% rename from lib/presentation/pages/remote_pipes/widgets/manage_remote_pipes_widget.dart rename to lib/presentation/pages/remote_pipes_page.dart index d92973b0..98791095 100644 --- a/lib/presentation/pages/remote_pipes/widgets/manage_remote_pipes_widget.dart +++ b/lib/presentation/pages/remote_pipes_page.dart @@ -1,12 +1,58 @@ +import 'package:adaptive_action_sheet/adaptive_action_sheet.dart'; import 'package:auto_route/auto_route.dart'; import 'package:cbj_integrations_controller/domain/remote_pipes/i_remote_pipes_repository.dart'; import 'package:cbj_integrations_controller/domain/remote_pipes/remote_pipes_entity.dart'; import 'package:cbj_integrations_controller/domain/remote_pipes/remote_pipes_value_objects.dart'; import 'package:cybearjinni/presentation/atoms/atoms.dart'; import 'package:cybearjinni/presentation/core/snack_bar_service.dart'; +import 'package:cybearjinni/presentation/molecules/molecules.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +@RoutePage() +class RemotePipesPage extends StatelessWidget { + /// Execute when remote pipes press the icon in top right side + void userCogFunction(BuildContext context) { + showAdaptiveActionSheet( + context: context, + actions: [ + BottomSheetAction( + title: const TextAtom( + '➕ Add remote pipes', + style: TextStyle(color: Colors.green, fontSize: 23), + ), + onPressed: (_) { + // context.router.push(const AddUserToHomeRoute()); + }, + ), + ], + ); + } + + void leftIconFunction(BuildContext context) { + context.router.pop(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + children: [ + TopBarMolecule( + pageName: 'Remote Pipes', + rightIconFunction: userCogFunction, + leftIcon: FontAwesomeIcons.arrowLeft, + leftIconFunction: leftIconFunction, + ), + Expanded( + child: RemotePipesWidget(), + ), + ], + ), + ); + } +} + /// Show light toggles in a container with the background color from smart room /// object class RemotePipesWidget extends StatefulWidget { diff --git a/lib/presentation/pages/software_info/software_info_page.dart b/lib/presentation/pages/software_info/software_info_page.dart deleted file mode 100644 index 033728f4..00000000 --- a/lib/presentation/pages/software_info/software_info_page.dart +++ /dev/null @@ -1,51 +0,0 @@ -import 'package:adaptive_action_sheet/adaptive_action_sheet.dart'; -import 'package:auto_route/auto_route.dart'; -import 'package:cybearjinni/presentation/atoms/atoms.dart'; -import 'package:cybearjinni/presentation/molecules/molecules.dart'; -import 'package:cybearjinni/presentation/pages/software_info/widgets/software_info_widget.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; - -@RoutePage() -class SoftwareInfoPage extends StatelessWidget { - /// Execute when software nfo press the icon in top right side - void userCogFunction(BuildContext context) { - showAdaptiveActionSheet( - context: context, - actions: [ - BottomSheetAction( - title: const TextAtom( - '➕ Add software nfo', - style: TextStyle(color: Colors.green, fontSize: 23), - ), - onPressed: (_) { - // context.router.push(const AddUserToHomeRoute()); - }, - ), - ], - ); - } - - void leftIconFunction(BuildContext context) { - context.router.pop(); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - body: Column( - children: [ - TopBarMolecule( - pageName: 'Software Info', - rightIconFunction: userCogFunction, - leftIcon: FontAwesomeIcons.arrowLeft, - leftIconFunction: leftIconFunction, - ), - Expanded( - child: SoftwareInfoWidget(), - ), - ], - ), - ); - } -} diff --git a/lib/presentation/pages/software_info/widgets/error_software_info_card_widget.dart b/lib/presentation/pages/software_info/widgets/error_software_info_card_widget.dart deleted file mode 100644 index ac74e263..00000000 --- a/lib/presentation/pages/software_info/widgets/error_software_info_card_widget.dart +++ /dev/null @@ -1,42 +0,0 @@ -import 'package:cybearjinni/domain/home_user/home_user_entity.dart'; -import 'package:cybearjinni/presentation/atoms/atoms.dart'; -import 'package:flutter/material.dart'; - -class ErrorSoftwareInfoCard extends StatelessWidget { - const ErrorSoftwareInfoCard({ - required this.homeUser, - super.key, - }); - - final HomeUserEntity? homeUser; - - @override - Widget build(BuildContext context) { - return Card( - color: Theme.of(context).colorScheme.error, - child: Padding( - padding: const EdgeInsets.all(4), - child: Column( - children: [ - TextAtom( - 'Invalid software nfo, please, contact support', - style: Theme.of(context) - .primaryTextTheme - .bodyMedium! - .copyWith(fontSize: 18), - ), - const SizedBox(height: 2), - TextAtom( - 'Details for nerds:', - style: Theme.of(context).primaryTextTheme.bodyMedium, - ), - TextAtom( - homeUser!.failureOption.fold(() => '', (f) => f.toString()), - style: Theme.of(context).primaryTextTheme.bodyMedium, - ), - ], - ), - ), - ); - } -} diff --git a/lib/presentation/pages/software_info/widgets/software_info_card_widget.dart b/lib/presentation/pages/software_info/widgets/software_info_card_widget.dart deleted file mode 100644 index e9230606..00000000 --- a/lib/presentation/pages/software_info/widgets/software_info_card_widget.dart +++ /dev/null @@ -1,50 +0,0 @@ -import 'package:cybearjinni/domain/home_user/home_user_entity.dart'; -import 'package:cybearjinni/presentation/atoms/atoms.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; - -class SoftwareInfoCard extends StatelessWidget { - const SoftwareInfoCard({ - required this.homeUser, - super.key, - }); - - final HomeUserEntity? homeUser; - - @override - Widget build(BuildContext context) { - return Container( - decoration: BoxDecoration( - border: Border( - top: BorderSide( - color: Theme.of(context).textTheme.bodyLarge!.color!, - ), - bottom: BorderSide( - color: Theme.of(context).textTheme.bodyLarge!.color!, - ), - ), - ), - height: 100, - child: Center( - child: ListTile( - leading: FaIcon( - FontAwesomeIcons.userGraduate, - color: Theme.of(context).textTheme.bodyLarge!.color, - ), - title: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - TextAtom( - homeUser!.email!.getOrCrash()!, - style: TextStyle( - color: Theme.of(context).textTheme.bodyLarge!.color, - ), - ), - ], - ), - onTap: () {}, - ), - ), - ); - } -} diff --git a/lib/presentation/pages/software_info/widgets/software_info_widget.dart b/lib/presentation/pages/software_info_page.dart similarity index 80% rename from lib/presentation/pages/software_info/widgets/software_info_widget.dart rename to lib/presentation/pages/software_info_page.dart index ed320cc1..982efa8a 100644 --- a/lib/presentation/pages/software_info/widgets/software_info_widget.dart +++ b/lib/presentation/pages/software_info_page.dart @@ -1,7 +1,55 @@ +import 'package:adaptive_action_sheet/adaptive_action_sheet.dart'; +import 'package:auto_route/auto_route.dart'; import 'package:cybearjinni/domain/software_info/i_software_info_repository.dart'; import 'package:cybearjinni/domain/software_info/software_info_entity.dart'; import 'package:cybearjinni/presentation/atoms/atoms.dart'; +import 'package:cybearjinni/presentation/molecules/molecules.dart'; import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; + +@RoutePage() +class SoftwareInfoPage extends StatelessWidget { + /// Execute when software nfo press the icon in top right side + void userCogFunction(BuildContext context) { + showAdaptiveActionSheet( + context: context, + actions: [ + BottomSheetAction( + title: const TextAtom( + '➕ Add software nfo', + style: TextStyle(color: Colors.green, fontSize: 23), + ), + onPressed: (_) { + // context.router.push(const AddUserToHomeRoute()); + }, + ), + ], + ); + } + + void leftIconFunction(BuildContext context) { + context.router.pop(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + children: [ + TopBarMolecule( + pageName: 'Software Info', + rightIconFunction: userCogFunction, + leftIcon: FontAwesomeIcons.arrowLeft, + leftIconFunction: leftIconFunction, + ), + Expanded( + child: SoftwareInfoWidget(), + ), + ], + ), + ); + } +} /// Show light toggles in a container with the background color from smart room /// object diff --git a/lib/presentation/pages/splash_page.dart b/lib/presentation/pages/splash_page.dart index 27b8d446..75efb2e8 100644 --- a/lib/presentation/pages/splash_page.dart +++ b/lib/presentation/pages/splash_page.dart @@ -1,7 +1,6 @@ import 'dart:io'; import 'package:auto_route/auto_route.dart'; -import 'package:cbj_integrations_controller/domain/i_saved_devices_repo.dart'; import 'package:cbj_integrations_controller/domain/local_db/i_local_db_repository.dart'; import 'package:cbj_integrations_controller/infrastructure/node_red/node_red_repository.dart'; import 'package:cbj_integrations_controller/infrastructure/system_commands/system_commands_manager_d.dart'; @@ -36,7 +35,7 @@ class _SplashPageState extends State { await Future.value([ IDbRepository.instance.initializeDb(isFlutter: true), ILocalDbRepository.instance.asyncConstructor(), - ISavedDevicesRepo.instance.setUpAllFromDb(), + // ISavedDevicesRepo.instance.setUpAllFromDb(), ]); MqttServerRepository(); PhoneCommandsD();