mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-07-15 01:35:23 +00:00
4 and 6 scene
This commit is contained in:
@ -34,7 +34,7 @@ class SixSceneBloc extends Bloc<SixSceneEvent, SixSceneState> {
|
|||||||
on<SearchScenesEvent>(searchScene);
|
on<SearchScenesEvent>(searchScene);
|
||||||
on<SaveSelectionEvent>(_onSaveSelection);
|
on<SaveSelectionEvent>(_onSaveSelection);
|
||||||
on<SelectOptionEvent>(_onOptionSelected);
|
on<SelectOptionEvent>(_onOptionSelected);
|
||||||
on<AddDeviceToGroup>(_addDeviceToGroup); // Register handler here
|
on<AddDeviceToGroup>(_addDeviceToGroup);
|
||||||
on<RemoveDeviceFromGroup>(_removeDeviceFromGroup);
|
on<RemoveDeviceFromGroup>(_removeDeviceFromGroup);
|
||||||
on<SexSceneSwitchInitial>(_fetchFourSceneSwitches);
|
on<SexSceneSwitchInitial>(_fetchFourSceneSwitches);
|
||||||
on<AssignDeviceScene>(assignScene);
|
on<AssignDeviceScene>(assignScene);
|
||||||
@ -45,6 +45,7 @@ class SixSceneBloc extends Bloc<SixSceneEvent, SixSceneState> {
|
|||||||
on<AssignRoomEvent>(_assignDevice);
|
on<AssignRoomEvent>(_assignDevice);
|
||||||
on<FetchRoomsEvent>(_fetchRoomsAndDevices);
|
on<FetchRoomsEvent>(_fetchRoomsAndDevices);
|
||||||
on<SixSceneInitialQuestion>(_onSixSceneInitial);
|
on<SixSceneInitialQuestion>(_onSixSceneInitial);
|
||||||
|
on<DeleteDeviceEvent>(deleteDevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
final TextEditingController nameController =
|
final TextEditingController nameController =
|
||||||
@ -138,6 +139,17 @@ class SixSceneBloc extends Bloc<SixSceneEvent, SixSceneState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
deleteDevice(DeleteDeviceEvent event, Emitter<SixSceneState> emit) async {
|
||||||
|
try {
|
||||||
|
emit(SixSceneLoadingState());
|
||||||
|
var response = await DevicesAPI.resetDevise(devicesUuid: sixSceneId);
|
||||||
|
add(const SixSceneInitialInfo());
|
||||||
|
CustomSnackBar.displaySnackBar('Reset Successfully');
|
||||||
|
} catch (e) {
|
||||||
|
emit(SixSceneFailedState(errorMessage: e.toString()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> saveName(
|
Future<void> saveName(
|
||||||
SaveNameEvent event, Emitter<SixSceneState> emit) async {
|
SaveNameEvent event, Emitter<SixSceneState> emit) async {
|
||||||
if (_validateInputs()) return;
|
if (_validateInputs()) return;
|
||||||
@ -358,11 +370,14 @@ class SixSceneBloc extends Bloc<SixSceneEvent, SixSceneState> {
|
|||||||
sixSceneId);
|
sixSceneId);
|
||||||
deviceStatus.switch_backlight = switchStatus;
|
deviceStatus.switch_backlight = switchStatus;
|
||||||
|
|
||||||
add(const SixSceneInitial());
|
Future.delayed(const Duration(milliseconds: 250), () {
|
||||||
add(const SexSceneSwitchInitial());
|
add(const SexSceneSwitchInitial());
|
||||||
|
});
|
||||||
|
|
||||||
|
Future.delayed(const Duration(milliseconds: 250), () {
|
||||||
emit(ChangeSwitchState(isEnable: switchStatus));
|
emit(ChangeSwitchState(isEnable: switchStatus));
|
||||||
emit(UpdateState(device: deviceStatus));
|
emit(UpdateState(device: deviceStatus));
|
||||||
|
});
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
emit(const SixSceneFailedState(errorMessage: 'Something went wrong'));
|
emit(const SixSceneFailedState(errorMessage: 'Something went wrong'));
|
||||||
}
|
}
|
||||||
|
@ -116,6 +116,7 @@ class TickTimer extends SixSceneEvent {
|
|||||||
class StopTimer extends SixSceneEvent {}
|
class StopTimer extends SixSceneEvent {}
|
||||||
|
|
||||||
class OnClose extends SixSceneEvent {}
|
class OnClose extends SixSceneEvent {}
|
||||||
|
class DeleteDeviceEvent extends SixSceneEvent {}
|
||||||
|
|
||||||
class ChangeNameEvent extends SixSceneEvent {
|
class ChangeNameEvent extends SixSceneEvent {
|
||||||
final bool? value;
|
final bool? value;
|
||||||
|
@ -42,11 +42,11 @@ class FourSceneBloc extends Bloc<FourSceneEvent, FourSceneState> {
|
|||||||
on<RemoveDeviceFromGroup>(_removeDeviceFromGroup);
|
on<RemoveDeviceFromGroup>(_removeDeviceFromGroup);
|
||||||
on<FourSceneInitialQuestion>(_onFourSceneInitial);
|
on<FourSceneInitialQuestion>(_onFourSceneInitial);
|
||||||
on<FetchDeviceScene>(_fetchDeviceScene);
|
on<FetchDeviceScene>(_fetchDeviceScene);
|
||||||
on<ControlDeviceScene>(_controlDevice);
|
|
||||||
on<FourSceneSwitchInitial>(_fetchFourSceneSwitches);
|
on<FourSceneSwitchInitial>(_fetchFourSceneSwitches);
|
||||||
on<AssignDeviceScene>(assignScene);
|
on<AssignDeviceScene>(assignScene);
|
||||||
on<GetSceneBySwitchName>(getSceneByName);
|
on<GetSceneBySwitchName>(getSceneByName);
|
||||||
on<SelectSceneEvent>(_selectScene);
|
on<SelectSceneEvent>(_selectScene);
|
||||||
|
on<DeleteDeviceEvent>(deleteDevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
final TextEditingController nameController =
|
final TextEditingController nameController =
|
||||||
@ -190,6 +190,18 @@ class FourSceneBloc extends Bloc<FourSceneEvent, FourSceneState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
deleteDevice(DeleteDeviceEvent event, Emitter<FourSceneState> emit) async {
|
||||||
|
try {
|
||||||
|
emit(FourSceneLoadingState());
|
||||||
|
var response = await DevicesAPI.resetDevise(devicesUuid: fourSceneId);
|
||||||
|
CustomSnackBar.displaySnackBar('Reset Successfully');
|
||||||
|
emit(UpdateState(device: deviceStatus));
|
||||||
|
} catch (e) {
|
||||||
|
emit(FourSceneFailedState(errorMessage: e.toString()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void _fetchDeviceStatus(
|
void _fetchDeviceStatus(
|
||||||
FourSceneInitial event, Emitter<FourSceneState> emit) async {
|
FourSceneInitial event, Emitter<FourSceneState> emit) async {
|
||||||
emit(FourSceneLoadingState());
|
emit(FourSceneLoadingState());
|
||||||
@ -246,26 +258,26 @@ class FourSceneBloc extends Bloc<FourSceneEvent, FourSceneState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _controlDevice(
|
// void _controlDevice(
|
||||||
ControlDeviceScene event, Emitter<FourSceneState> emit) async {
|
// ControlDeviceScene event, Emitter<FourSceneState> emit) async {
|
||||||
emit(FourSceneLoadingState());
|
// emit(FourSceneLoadingState());
|
||||||
try {
|
// try {
|
||||||
deviceStatus.switch_backlight = !event.backLight!;
|
// deviceStatus.switch_backlight = !event.backLight!;
|
||||||
emit(UpdateState(device: deviceStatus));
|
// emit(UpdateState(device: deviceStatus));
|
||||||
final response = await DevicesAPI.controlDevice(
|
// final response = await DevicesAPI.controlDevice(
|
||||||
DeviceControlModel(
|
// DeviceControlModel(
|
||||||
deviceId: fourSceneId,
|
// deviceId: fourSceneId,
|
||||||
code: 'switch_backlight',
|
// code: 'switch_backlight',
|
||||||
value: !event.backLight!),
|
// value: !event.backLight!),
|
||||||
fourSceneId);
|
// fourSceneId);
|
||||||
|
|
||||||
if (!response['success']) {
|
// if (!response['success']) {
|
||||||
// add(InitialEvent(groupScreen: oneTouchGroup));
|
// // add(InitialEvent(groupScreen: oneTouchGroup));
|
||||||
}
|
// }
|
||||||
} catch (_) {
|
// } catch (_) {
|
||||||
// add(InitialEvent(groupScreen: oneTouchGroup));
|
// // add(InitialEvent(groupScreen: oneTouchGroup));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
Future fetchDeviceInfo(
|
Future fetchDeviceInfo(
|
||||||
FourSceneInitialInfo event, Emitter<FourSceneState> emit) async {
|
FourSceneInitialInfo event, Emitter<FourSceneState> emit) async {
|
||||||
@ -394,9 +406,13 @@ class FourSceneBloc extends Bloc<FourSceneEvent, FourSceneState> {
|
|||||||
value: switchStatus),
|
value: switchStatus),
|
||||||
fourSceneId);
|
fourSceneId);
|
||||||
deviceStatus.switch_backlight = switchStatus;
|
deviceStatus.switch_backlight = switchStatus;
|
||||||
add(const FourSceneInitial());
|
Future.delayed(const Duration(milliseconds: 200), () {
|
||||||
|
add(const FourSceneSwitchInitial());
|
||||||
|
});
|
||||||
|
Future.delayed(const Duration(milliseconds: 200), () {
|
||||||
emit(ChangeSwitchState(isEnable: switchStatus));
|
emit(ChangeSwitchState(isEnable: switchStatus));
|
||||||
|
emit(UpdateState(device: deviceStatus));
|
||||||
|
});
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
add(const FourSceneInitial());
|
add(const FourSceneInitial());
|
||||||
}
|
}
|
||||||
|
@ -108,6 +108,7 @@ class TickTimer extends FourSceneEvent {
|
|||||||
class StopTimer extends FourSceneEvent {}
|
class StopTimer extends FourSceneEvent {}
|
||||||
|
|
||||||
class OnClose extends FourSceneEvent {}
|
class OnClose extends FourSceneEvent {}
|
||||||
|
class DeleteDeviceEvent extends FourSceneEvent {}
|
||||||
|
|
||||||
class ChangeNameEvent extends FourSceneEvent {
|
class ChangeNameEvent extends FourSceneEvent {
|
||||||
final bool? value;
|
final bool? value;
|
||||||
@ -206,10 +207,6 @@ class AssignRoomEvent extends FourSceneEvent {
|
|||||||
|
|
||||||
class FetchDeviceScene extends FourSceneEvent {}
|
class FetchDeviceScene extends FourSceneEvent {}
|
||||||
|
|
||||||
class ControlDeviceScene extends FourSceneEvent {
|
|
||||||
final bool? backLight;
|
|
||||||
const ControlDeviceScene({this.backLight});
|
|
||||||
}
|
|
||||||
|
|
||||||
class FourSceneSwitchInitial extends FourSceneEvent {
|
class FourSceneSwitchInitial extends FourSceneEvent {
|
||||||
const FourSceneSwitchInitial();
|
const FourSceneSwitchInitial();
|
||||||
|
@ -89,8 +89,9 @@ class FaqSixScenePage extends StatelessWidget {
|
|||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
fontColor: ColorsManager.grayColor,
|
fontColor: ColorsManager.grayColor,
|
||||||
),
|
),
|
||||||
Expanded(
|
displayedQuestions.isEmpty
|
||||||
child: DefaultContainer(
|
? const SizedBox()
|
||||||
|
: DefaultContainer(
|
||||||
child: ListView.builder(
|
child: ListView.builder(
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
itemCount: displayedQuestions.length,
|
itemCount: displayedQuestions.length,
|
||||||
@ -108,7 +109,8 @@ class FaqSixScenePage extends StatelessWidget {
|
|||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment.start,
|
||||||
crossAxisAlignment:
|
crossAxisAlignment:
|
||||||
CrossAxisAlignment.start,
|
CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
@ -139,7 +141,6 @@ class FaqSixScenePage extends StatelessWidget {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
)),
|
)),
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -9,7 +9,6 @@ import 'package:syncrow_app/features/devices/model/device_model.dart';
|
|||||||
import 'package:syncrow_app/features/devices/model/six_scene_model.dart';
|
import 'package:syncrow_app/features/devices/model/six_scene_model.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/6_scene_switch/6_scene_setting/faq_six_scene_page.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/6_scene_switch/6_scene_setting/faq_six_scene_page.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/6_scene_switch/6_scene_setting/share_six_scene_page.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/6_scene_switch/6_scene_setting/share_six_scene_page.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/6_scene_switch/6_scene_setting/six_scene_create_group.dart';
|
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/6_scene_switch/6_scene_setting/six_scene_delete_dialog.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/6_scene_switch/6_scene_setting/six_scene_delete_dialog.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/6_scene_switch/6_scene_setting/six_scene_info_page.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/6_scene_switch/6_scene_setting/six_scene_info_page.dart';
|
||||||
import 'package:syncrow_app/features/devices/view/widgets/6_scene_switch/6_scene_setting/six_scene_profile_page.dart';
|
import 'package:syncrow_app/features/devices/view/widgets/6_scene_switch/6_scene_setting/six_scene_profile_page.dart';
|
||||||
@ -382,17 +381,8 @@ class SixSceneSettings extends StatelessWidget {
|
|||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
},
|
},
|
||||||
confirmTab: () {
|
confirmTab: () {
|
||||||
// context
|
_bloc.add(
|
||||||
// .read<
|
DeleteDeviceEvent());
|
||||||
// CreateSceneBloc>()
|
|
||||||
// .add(DeleteSceneEvent(
|
|
||||||
// sceneId: sceneId,
|
|
||||||
// unitUuid: HomeCubit
|
|
||||||
// .getInstance()
|
|
||||||
// .selectedSpace!
|
|
||||||
// .id!,
|
|
||||||
// ));
|
|
||||||
Navigator.of(context).pop();
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -100,12 +100,15 @@ class _SelectSwitchDialogState extends State<SelectSwitchDialog> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: 20),
|
const SizedBox(height: 20),
|
||||||
const Center(
|
const Padding(
|
||||||
|
padding: EdgeInsets.only(bottom: 15, left: 5, right: 5, top: 10),
|
||||||
|
child: Center(
|
||||||
child: Text(
|
child: Text(
|
||||||
'Please select one of the switches available to continue',
|
'Please select one of the switches available to continue',
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
|
@ -198,6 +198,13 @@ class SixSceneScreen extends StatelessWidget {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
if (value == true) {
|
||||||
|
_bloc.add(const SixSceneInitial());
|
||||||
|
_bloc.add(
|
||||||
|
const SixSceneInitialInfo());
|
||||||
|
_bloc.add(
|
||||||
|
const SexSceneSwitchInitial());
|
||||||
|
}
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment:
|
crossAxisAlignment:
|
||||||
|
@ -89,8 +89,9 @@ class FaqFourScenePage extends StatelessWidget {
|
|||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
fontColor: ColorsManager.grayColor,
|
fontColor: ColorsManager.grayColor,
|
||||||
),
|
),
|
||||||
Expanded(
|
displayedQuestions.isEmpty
|
||||||
child: DefaultContainer(
|
? const SizedBox()
|
||||||
|
: DefaultContainer(
|
||||||
child: ListView.builder(
|
child: ListView.builder(
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
itemCount: displayedQuestions.length,
|
itemCount: displayedQuestions.length,
|
||||||
@ -100,7 +101,8 @@ class FaqFourScenePage extends StatelessWidget {
|
|||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).push(
|
Navigator.of(context).push(
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) => QuestionPageFourScene(
|
builder: (context) =>
|
||||||
|
QuestionPageFourScene(
|
||||||
questionModel: faq,
|
questionModel: faq,
|
||||||
)),
|
)),
|
||||||
);
|
);
|
||||||
@ -108,7 +110,8 @@ class FaqFourScenePage extends StatelessWidget {
|
|||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment.start,
|
||||||
crossAxisAlignment:
|
crossAxisAlignment:
|
||||||
CrossAxisAlignment.start,
|
CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
@ -139,7 +142,6 @@ class FaqFourScenePage extends StatelessWidget {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
)),
|
)),
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -395,17 +395,8 @@ class FourSceneSettings extends StatelessWidget {
|
|||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
},
|
},
|
||||||
confirmTab: () {
|
confirmTab: () {
|
||||||
// context
|
_bloc.add(
|
||||||
// .read<
|
DeleteDeviceEvent());
|
||||||
// CreateSceneBloc>()
|
|
||||||
// .add(DeleteSceneEvent(
|
|
||||||
// sceneId: sceneId,
|
|
||||||
// unitUuid: HomeCubit
|
|
||||||
// .getInstance()
|
|
||||||
// .selectedSpace!
|
|
||||||
// .id!,
|
|
||||||
// ));
|
|
||||||
Navigator.of(context).pop();
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -84,12 +84,15 @@ class _FourSelectSwitchDialogState extends State<FourSelectSwitchDialog> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: 20),
|
const SizedBox(height: 20),
|
||||||
const Center(
|
const Padding(
|
||||||
|
padding: EdgeInsets.only(bottom: 15, left: 5, right: 5, top: 10),
|
||||||
|
child: Center(
|
||||||
child: Text(
|
child: Text(
|
||||||
'Please select one of the switches available to continue',
|
'Please select one of the switches available to continue',
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
|
@ -1118,6 +1118,4 @@ class Assets {
|
|||||||
static const String minusIcon = "assets/icons/minus_icon.svg";
|
static const String minusIcon = "assets/icons/minus_icon.svg";
|
||||||
static const String addDevicesIcon = "assets/icons/add_devices_icon.svg";
|
static const String addDevicesIcon = "assets/icons/add_devices_icon.svg";
|
||||||
static const String fourSceneIcon = "assets/icons/four_scene_icon.svg";
|
static const String fourSceneIcon = "assets/icons/four_scene_icon.svg";
|
||||||
|
|
||||||
//powerClampIcon
|
|
||||||
}
|
}
|
||||||
|
@ -217,4 +217,8 @@ abstract class ApiEndpoints {
|
|||||||
|
|
||||||
static const String fourSceneByName =
|
static const String fourSceneByName =
|
||||||
'/device/{deviceUuid}/scenes?switchName={switchName}';
|
'/device/{deviceUuid}/scenes?switchName={switchName}';
|
||||||
|
|
||||||
|
|
||||||
|
static const String resetDevice =
|
||||||
|
'/factory/reset/{deviceUuid}';
|
||||||
}
|
}
|
||||||
|
@ -513,4 +513,20 @@ class DevicesAPI {
|
|||||||
);
|
);
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Future resetDevise({
|
||||||
|
String? devicesUuid,
|
||||||
|
}) async {
|
||||||
|
final response = await _httpService.post(
|
||||||
|
path: ApiEndpoints.resetDevice.replaceAll('{deviceUuid}', devicesUuid!),
|
||||||
|
showServerMessage: false,
|
||||||
|
body: {
|
||||||
|
"devicesUuid": [devicesUuid]
|
||||||
|
},
|
||||||
|
expectedResponseModel: (json) {
|
||||||
|
return json;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
return response;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,6 +60,8 @@ class SpacesAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//factory/reset/{deviceUuid}
|
||||||
|
|
||||||
static Future<String> generateInvitationCode(
|
static Future<String> generateInvitationCode(
|
||||||
String unitId, String communityId) async {
|
String unitId, String communityId) async {
|
||||||
final response = await _httpService.get(
|
final response = await _httpService.get(
|
||||||
|
Reference in New Issue
Block a user