mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-11-27 15:14:54 +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<SaveSelectionEvent>(_onSaveSelection);
|
||||
on<SelectOptionEvent>(_onOptionSelected);
|
||||
on<AddDeviceToGroup>(_addDeviceToGroup); // Register handler here
|
||||
on<AddDeviceToGroup>(_addDeviceToGroup);
|
||||
on<RemoveDeviceFromGroup>(_removeDeviceFromGroup);
|
||||
on<SexSceneSwitchInitial>(_fetchFourSceneSwitches);
|
||||
on<AssignDeviceScene>(assignScene);
|
||||
@ -45,6 +45,7 @@ class SixSceneBloc extends Bloc<SixSceneEvent, SixSceneState> {
|
||||
on<AssignRoomEvent>(_assignDevice);
|
||||
on<FetchRoomsEvent>(_fetchRoomsAndDevices);
|
||||
on<SixSceneInitialQuestion>(_onSixSceneInitial);
|
||||
on<DeleteDeviceEvent>(deleteDevice);
|
||||
}
|
||||
|
||||
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(
|
||||
SaveNameEvent event, Emitter<SixSceneState> emit) async {
|
||||
if (_validateInputs()) return;
|
||||
@ -358,11 +370,14 @@ class SixSceneBloc extends Bloc<SixSceneEvent, SixSceneState> {
|
||||
sixSceneId);
|
||||
deviceStatus.switch_backlight = switchStatus;
|
||||
|
||||
add(const SixSceneInitial());
|
||||
Future.delayed(const Duration(milliseconds: 250), () {
|
||||
add(const SexSceneSwitchInitial());
|
||||
});
|
||||
|
||||
Future.delayed(const Duration(milliseconds: 250), () {
|
||||
emit(ChangeSwitchState(isEnable: switchStatus));
|
||||
emit(UpdateState(device: deviceStatus));
|
||||
});
|
||||
} catch (_) {
|
||||
emit(const SixSceneFailedState(errorMessage: 'Something went wrong'));
|
||||
}
|
||||
|
||||
@ -116,6 +116,7 @@ class TickTimer extends SixSceneEvent {
|
||||
class StopTimer extends SixSceneEvent {}
|
||||
|
||||
class OnClose extends SixSceneEvent {}
|
||||
class DeleteDeviceEvent extends SixSceneEvent {}
|
||||
|
||||
class ChangeNameEvent extends SixSceneEvent {
|
||||
final bool? value;
|
||||
|
||||
@ -42,11 +42,11 @@ class FourSceneBloc extends Bloc<FourSceneEvent, FourSceneState> {
|
||||
on<RemoveDeviceFromGroup>(_removeDeviceFromGroup);
|
||||
on<FourSceneInitialQuestion>(_onFourSceneInitial);
|
||||
on<FetchDeviceScene>(_fetchDeviceScene);
|
||||
on<ControlDeviceScene>(_controlDevice);
|
||||
on<FourSceneSwitchInitial>(_fetchFourSceneSwitches);
|
||||
on<AssignDeviceScene>(assignScene);
|
||||
on<GetSceneBySwitchName>(getSceneByName);
|
||||
on<SelectSceneEvent>(_selectScene);
|
||||
on<DeleteDeviceEvent>(deleteDevice);
|
||||
}
|
||||
|
||||
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(
|
||||
FourSceneInitial event, Emitter<FourSceneState> emit) async {
|
||||
emit(FourSceneLoadingState());
|
||||
@ -246,26 +258,26 @@ class FourSceneBloc extends Bloc<FourSceneEvent, FourSceneState> {
|
||||
}
|
||||
}
|
||||
|
||||
void _controlDevice(
|
||||
ControlDeviceScene event, Emitter<FourSceneState> emit) async {
|
||||
emit(FourSceneLoadingState());
|
||||
try {
|
||||
deviceStatus.switch_backlight = !event.backLight!;
|
||||
emit(UpdateState(device: deviceStatus));
|
||||
final response = await DevicesAPI.controlDevice(
|
||||
DeviceControlModel(
|
||||
deviceId: fourSceneId,
|
||||
code: 'switch_backlight',
|
||||
value: !event.backLight!),
|
||||
fourSceneId);
|
||||
// void _controlDevice(
|
||||
// ControlDeviceScene event, Emitter<FourSceneState> emit) async {
|
||||
// emit(FourSceneLoadingState());
|
||||
// try {
|
||||
// deviceStatus.switch_backlight = !event.backLight!;
|
||||
// emit(UpdateState(device: deviceStatus));
|
||||
// final response = await DevicesAPI.controlDevice(
|
||||
// DeviceControlModel(
|
||||
// deviceId: fourSceneId,
|
||||
// code: 'switch_backlight',
|
||||
// value: !event.backLight!),
|
||||
// fourSceneId);
|
||||
|
||||
if (!response['success']) {
|
||||
// add(InitialEvent(groupScreen: oneTouchGroup));
|
||||
}
|
||||
} catch (_) {
|
||||
// add(InitialEvent(groupScreen: oneTouchGroup));
|
||||
}
|
||||
}
|
||||
// if (!response['success']) {
|
||||
// // add(InitialEvent(groupScreen: oneTouchGroup));
|
||||
// }
|
||||
// } catch (_) {
|
||||
// // add(InitialEvent(groupScreen: oneTouchGroup));
|
||||
// }
|
||||
// }
|
||||
|
||||
Future fetchDeviceInfo(
|
||||
FourSceneInitialInfo event, Emitter<FourSceneState> emit) async {
|
||||
@ -394,9 +406,13 @@ class FourSceneBloc extends Bloc<FourSceneEvent, FourSceneState> {
|
||||
value: switchStatus),
|
||||
fourSceneId);
|
||||
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(UpdateState(device: deviceStatus));
|
||||
});
|
||||
} catch (_) {
|
||||
add(const FourSceneInitial());
|
||||
}
|
||||
|
||||
@ -108,6 +108,7 @@ class TickTimer extends FourSceneEvent {
|
||||
class StopTimer extends FourSceneEvent {}
|
||||
|
||||
class OnClose extends FourSceneEvent {}
|
||||
class DeleteDeviceEvent extends FourSceneEvent {}
|
||||
|
||||
class ChangeNameEvent extends FourSceneEvent {
|
||||
final bool? value;
|
||||
@ -206,10 +207,6 @@ class AssignRoomEvent extends FourSceneEvent {
|
||||
|
||||
class FetchDeviceScene extends FourSceneEvent {}
|
||||
|
||||
class ControlDeviceScene extends FourSceneEvent {
|
||||
final bool? backLight;
|
||||
const ControlDeviceScene({this.backLight});
|
||||
}
|
||||
|
||||
class FourSceneSwitchInitial extends FourSceneEvent {
|
||||
const FourSceneSwitchInitial();
|
||||
|
||||
@ -89,8 +89,9 @@ class FaqSixScenePage extends StatelessWidget {
|
||||
fontSize: 12,
|
||||
fontColor: ColorsManager.grayColor,
|
||||
),
|
||||
Expanded(
|
||||
child: DefaultContainer(
|
||||
displayedQuestions.isEmpty
|
||||
? const SizedBox()
|
||||
: DefaultContainer(
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: displayedQuestions.length,
|
||||
@ -108,7 +109,8 @@ class FaqSixScenePage extends StatelessWidget {
|
||||
child: SizedBox(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.start,
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.start,
|
||||
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/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/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_info_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();
|
||||
},
|
||||
confirmTab: () {
|
||||
// context
|
||||
// .read<
|
||||
// CreateSceneBloc>()
|
||||
// .add(DeleteSceneEvent(
|
||||
// sceneId: sceneId,
|
||||
// unitUuid: HomeCubit
|
||||
// .getInstance()
|
||||
// .selectedSpace!
|
||||
// .id!,
|
||||
// ));
|
||||
Navigator.of(context).pop();
|
||||
_bloc.add(
|
||||
DeleteDeviceEvent());
|
||||
},
|
||||
);
|
||||
},
|
||||
|
||||
@ -100,12 +100,15 @@ class _SelectSwitchDialogState extends State<SelectSwitchDialog> {
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
const Center(
|
||||
const Padding(
|
||||
padding: EdgeInsets.only(bottom: 15, left: 5, right: 5, top: 10),
|
||||
child: Center(
|
||||
child: Text(
|
||||
'Please select one of the switches available to continue',
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
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(
|
||||
crossAxisAlignment:
|
||||
|
||||
@ -89,8 +89,9 @@ class FaqFourScenePage extends StatelessWidget {
|
||||
fontSize: 12,
|
||||
fontColor: ColorsManager.grayColor,
|
||||
),
|
||||
Expanded(
|
||||
child: DefaultContainer(
|
||||
displayedQuestions.isEmpty
|
||||
? const SizedBox()
|
||||
: DefaultContainer(
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: displayedQuestions.length,
|
||||
@ -100,7 +101,8 @@ class FaqFourScenePage extends StatelessWidget {
|
||||
onTap: () {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(
|
||||
builder: (context) => QuestionPageFourScene(
|
||||
builder: (context) =>
|
||||
QuestionPageFourScene(
|
||||
questionModel: faq,
|
||||
)),
|
||||
);
|
||||
@ -108,7 +110,8 @@ class FaqFourScenePage extends StatelessWidget {
|
||||
child: SizedBox(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.start,
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
@ -139,7 +142,6 @@ class FaqFourScenePage extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
)),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
@ -395,17 +395,8 @@ class FourSceneSettings extends StatelessWidget {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
confirmTab: () {
|
||||
// context
|
||||
// .read<
|
||||
// CreateSceneBloc>()
|
||||
// .add(DeleteSceneEvent(
|
||||
// sceneId: sceneId,
|
||||
// unitUuid: HomeCubit
|
||||
// .getInstance()
|
||||
// .selectedSpace!
|
||||
// .id!,
|
||||
// ));
|
||||
Navigator.of(context).pop();
|
||||
_bloc.add(
|
||||
DeleteDeviceEvent());
|
||||
},
|
||||
);
|
||||
},
|
||||
|
||||
@ -84,12 +84,15 @@ class _FourSelectSwitchDialogState extends State<FourSelectSwitchDialog> {
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
const Center(
|
||||
const Padding(
|
||||
padding: EdgeInsets.only(bottom: 15, left: 5, right: 5, top: 10),
|
||||
child: Center(
|
||||
child: Text(
|
||||
'Please select one of the switches available to continue',
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
|
||||
@ -1118,6 +1118,4 @@ class Assets {
|
||||
static const String minusIcon = "assets/icons/minus_icon.svg";
|
||||
static const String addDevicesIcon = "assets/icons/add_devices_icon.svg";
|
||||
static const String fourSceneIcon = "assets/icons/four_scene_icon.svg";
|
||||
|
||||
//powerClampIcon
|
||||
}
|
||||
|
||||
@ -217,4 +217,8 @@ abstract class ApiEndpoints {
|
||||
|
||||
static const String fourSceneByName =
|
||||
'/device/{deviceUuid}/scenes?switchName={switchName}';
|
||||
|
||||
|
||||
static const String resetDevice =
|
||||
'/factory/reset/{deviceUuid}';
|
||||
}
|
||||
|
||||
@ -513,4 +513,20 @@ class DevicesAPI {
|
||||
);
|
||||
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(
|
||||
String unitId, String communityId) async {
|
||||
final response = await _httpService.get(
|
||||
|
||||
Reference in New Issue
Block a user