mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-07-17 02:25:16 +00:00
Bug fixes 3
This commit is contained in:
@ -35,10 +35,12 @@ class OneGangBloc extends Bloc<OneGangEvent, OneGangState> {
|
|||||||
on<OnClose>(_onClose);
|
on<OnClose>(_onClose);
|
||||||
|
|
||||||
on<ToggleDaySelectionEvent>(toggleDaySelection);
|
on<ToggleDaySelectionEvent>(toggleDaySelection);
|
||||||
on<ThreeGangSave>(saveSchedule);
|
on<ScheduleSave>(saveSchedule);
|
||||||
on<GetScheduleEvent>(getSchedule);
|
on<GetScheduleEvent>(getSchedule);
|
||||||
on<ToggleScheduleEvent>(toggleChange);
|
on<ToggleScheduleEvent>(toggleChange);
|
||||||
on<DeleteScheduleEvent>(deleteSchedule);
|
on<DeleteScheduleEvent>(deleteSchedule);
|
||||||
|
on<ToggleSelectedEvent>(toggleSelectedIndex);
|
||||||
|
on<ToggleCreateScheduleEvent>(toggleCreateSchedule);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _fetchOneGangStatus(InitialEvent event, Emitter<OneGangState> emit) async {
|
void _fetchOneGangStatus(InitialEvent event, Emitter<OneGangState> emit) async {
|
||||||
@ -196,7 +198,7 @@ class OneGangBloc extends Bloc<OneGangEvent, OneGangState> {
|
|||||||
];
|
];
|
||||||
|
|
||||||
Future<void> saveSchedule(
|
Future<void> saveSchedule(
|
||||||
ThreeGangSave event,
|
ScheduleSave event,
|
||||||
Emitter<OneGangState> emit,
|
Emitter<OneGangState> emit,
|
||||||
) async {
|
) async {
|
||||||
try {
|
try {
|
||||||
@ -211,8 +213,9 @@ class OneGangBloc extends Bloc<OneGangEvent, OneGangState> {
|
|||||||
days: selectedDays);
|
days: selectedDays);
|
||||||
CustomSnackBar.displaySnackBar('Save Successfully');
|
CustomSnackBar.displaySnackBar('Save Successfully');
|
||||||
add(GetScheduleEvent());
|
add(GetScheduleEvent());
|
||||||
emit(ThreeGangSaveSchedule());
|
emit(SaveSchedule());
|
||||||
toggleCreateSchedule();
|
|
||||||
|
add(const ToggleCreateScheduleEvent(index:1 ));
|
||||||
} else {
|
} else {
|
||||||
CustomSnackBar.displaySnackBar('Please select days');
|
CustomSnackBar.displaySnackBar('Please select days');
|
||||||
}
|
}
|
||||||
@ -287,14 +290,23 @@ class OneGangBloc extends Bloc<OneGangEvent, OneGangState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void toggleCreateSchedule() {
|
// void toggleCreateSchedule() {
|
||||||
emit(LoadingInitialState());
|
// emit(LoadingInitialState());
|
||||||
createSchedule = !createSchedule;
|
// createSchedule = !createSchedule;
|
||||||
selectedDays.clear();
|
// selectedDays.clear();
|
||||||
selectedTime = DateTime.now();
|
// selectedTime = DateTime.now();
|
||||||
emit(UpdateCreateScheduleState(createSchedule));
|
// emit(UpdateCreateScheduleState(createSchedule));
|
||||||
emit(ChangeSlidingSegmentState(value: 1));
|
// emit(ChangeSlidingSegmentState(value: 1));
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
void toggleCreateSchedule(ToggleCreateScheduleEvent event, Emitter<OneGangState> emit) {
|
||||||
|
emit(LoadingInitialState());
|
||||||
|
createSchedule = !createSchedule;
|
||||||
|
selectedDays.clear();
|
||||||
|
selectedTime = DateTime.now();
|
||||||
|
emit(UpdateCreateScheduleState(createSchedule));
|
||||||
|
}
|
||||||
|
|
||||||
bool toggleSchedule = true;
|
bool toggleSchedule = true;
|
||||||
List<String> selectedDays = [];
|
List<String> selectedDays = [];
|
||||||
@ -317,9 +329,9 @@ class OneGangBloc extends Bloc<OneGangEvent, OneGangState> {
|
|||||||
|
|
||||||
int selectedTabIndex = 0;
|
int selectedTabIndex = 0;
|
||||||
|
|
||||||
void toggleSelectedIndex(index) {
|
void toggleSelectedIndex( ToggleSelectedEvent event, Emitter<OneGangState> emit) {
|
||||||
emit(LoadingInitialState());
|
emit(LoadingInitialState());
|
||||||
selectedTabIndex = index;
|
selectedTabIndex =event.index;
|
||||||
emit(ChangeSlidingSegmentState(value: selectedTabIndex));
|
emit(ChangeSlidingSegmentState(value: selectedTabIndex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ class OnClose extends OneGangEvent {}
|
|||||||
|
|
||||||
//------------------- Schedule ----------=---------
|
//------------------- Schedule ----------=---------
|
||||||
class GetScheduleEvent extends OneGangEvent {}
|
class GetScheduleEvent extends OneGangEvent {}
|
||||||
class ThreeGangSave extends OneGangEvent {}
|
class ScheduleSave extends OneGangEvent {}
|
||||||
class ToggleScheduleEvent extends OneGangEvent {
|
class ToggleScheduleEvent extends OneGangEvent {
|
||||||
final String id;
|
final String id;
|
||||||
final bool toggle;
|
final bool toggle;
|
||||||
@ -114,3 +114,19 @@ class DeleteScheduleEvent extends OneGangEvent {
|
|||||||
@override
|
@override
|
||||||
List<Object> get props => [id];
|
List<Object> get props => [id];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ToggleSelectedEvent extends OneGangEvent {
|
||||||
|
final int index;
|
||||||
|
const ToggleSelectedEvent({required this.index});
|
||||||
|
@override
|
||||||
|
List<Object> get props => [index];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ToggleCreateScheduleEvent extends OneGangEvent {
|
||||||
|
final int index;
|
||||||
|
const ToggleCreateScheduleEvent({required this.index});
|
||||||
|
@override
|
||||||
|
List<Object> get props => [index];
|
||||||
|
}
|
||||||
|
@ -77,7 +77,7 @@ class TimerRunInProgress extends OneGangState {
|
|||||||
|
|
||||||
class TimerRunComplete extends OneGangState {}
|
class TimerRunComplete extends OneGangState {}
|
||||||
|
|
||||||
class ThreeGangSaveSchedule extends OneGangState {}
|
class SaveSchedule extends OneGangState {}
|
||||||
|
|
||||||
class IsToggleState extends OneGangState {
|
class IsToggleState extends OneGangState {
|
||||||
final bool? onOff;
|
final bool? onOff;
|
||||||
|
@ -55,6 +55,9 @@ class ThreeGangBloc extends Bloc<ThreeGangEvent, ThreeGangState> {
|
|||||||
on<GetScheduleEvent>(getSchedule);
|
on<GetScheduleEvent>(getSchedule);
|
||||||
on<ToggleScheduleEvent>(toggleChange);
|
on<ToggleScheduleEvent>(toggleChange);
|
||||||
on<DeleteScheduleEvent>(deleteSchedule);
|
on<DeleteScheduleEvent>(deleteSchedule);
|
||||||
|
|
||||||
|
on<ToggleSelectedEvent>(toggleSelectedIndex);
|
||||||
|
on<ToggleCreateScheduleEvent>(toggleCreateSchedule);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _fetchThreeGangStatus(InitialEvent event, Emitter<ThreeGangState> emit) async {
|
void _fetchThreeGangStatus(InitialEvent event, Emitter<ThreeGangState> emit) async {
|
||||||
@ -528,7 +531,7 @@ class ThreeGangBloc extends Bloc<ThreeGangEvent, ThreeGangState> {
|
|||||||
CustomSnackBar.displaySnackBar('Save Successfully');
|
CustomSnackBar.displaySnackBar('Save Successfully');
|
||||||
add(GetScheduleEvent());
|
add(GetScheduleEvent());
|
||||||
emit(ThreeGangSaveSchedule());
|
emit(ThreeGangSaveSchedule());
|
||||||
toggleCreateSchedule();
|
add(const ToggleCreateScheduleEvent(index:1 ));
|
||||||
} else {
|
} else {
|
||||||
CustomSnackBar.displaySnackBar('Please select days');
|
CustomSnackBar.displaySnackBar('Please select days');
|
||||||
}
|
}
|
||||||
@ -603,23 +606,40 @@ class ThreeGangBloc extends Bloc<ThreeGangEvent, ThreeGangState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void toggleCreateSchedule() {
|
// void toggleCreateSchedule() {
|
||||||
emit(LoadingInitialState());
|
// emit(LoadingInitialState());
|
||||||
createSchedule = !createSchedule;
|
// createSchedule = !createSchedule;
|
||||||
selectedDays.clear();
|
// selectedDays.clear();
|
||||||
selectedTime = DateTime.now();
|
// selectedTime = DateTime.now();
|
||||||
emit(UpdateCreateScheduleState(createSchedule));
|
// emit(UpdateCreateScheduleState(createSchedule));
|
||||||
emit(ChangeSlidingSegmentState(value: 1));
|
// emit(ChangeSlidingSegmentState(value: 1));
|
||||||
}
|
// }
|
||||||
|
|
||||||
int selectedTabIndex = 0;
|
|
||||||
|
|
||||||
void toggleSelectedIndex(index) {
|
|
||||||
|
// void toggleSelectedIndex(index) {
|
||||||
|
// emit(LoadingInitialState());
|
||||||
|
// selectedTabIndex = index;
|
||||||
|
// emit(ChangeSlidingSegmentState(value: selectedTabIndex));
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
void toggleSelectedIndex( ToggleSelectedEvent event, Emitter<ThreeGangState> emit) {
|
||||||
emit(LoadingInitialState());
|
emit(LoadingInitialState());
|
||||||
selectedTabIndex = index;
|
selectedTabIndex =event.index;
|
||||||
emit(ChangeSlidingSegmentState(value: selectedTabIndex));
|
emit(ChangeSlidingSegmentState(value: selectedTabIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void toggleCreateSchedule(ToggleCreateScheduleEvent event, Emitter<ThreeGangState> emit) {
|
||||||
|
emit(LoadingInitialState());
|
||||||
|
createSchedule = !createSchedule;
|
||||||
|
selectedDays.clear();
|
||||||
|
selectedTime = DateTime.now();
|
||||||
|
emit(UpdateCreateScheduleState(createSchedule));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int selectedTabIndex = 0;
|
||||||
bool toggleSchedule = true;
|
bool toggleSchedule = true;
|
||||||
List<String> selectedDays = [];
|
List<String> selectedDays = [];
|
||||||
bool createSchedule = false;
|
bool createSchedule = false;
|
||||||
|
@ -119,3 +119,20 @@ class DeleteScheduleEvent extends ThreeGangEvent {
|
|||||||
@override
|
@override
|
||||||
List<Object> get props => [id];
|
List<Object> get props => [id];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class ToggleSelectedEvent extends ThreeGangEvent {
|
||||||
|
final int index;
|
||||||
|
const ToggleSelectedEvent({required this.index});
|
||||||
|
@override
|
||||||
|
List<Object> get props => [index];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ToggleCreateScheduleEvent extends ThreeGangEvent {
|
||||||
|
final int index;
|
||||||
|
const ToggleCreateScheduleEvent({required this.index});
|
||||||
|
@override
|
||||||
|
List<Object> get props => [index];
|
||||||
|
}
|
@ -35,7 +35,8 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
bool createSchedule = false;
|
bool createSchedule = false;
|
||||||
List<ScheduleModel> listSchedule = [];
|
List<ScheduleModel> listSchedule = [];
|
||||||
|
|
||||||
TwoGangBloc({required this.twoGangId, required this.switchCode}) : super(InitialState()) {
|
TwoGangBloc({required this.twoGangId, required this.switchCode})
|
||||||
|
: super(InitialState()) {
|
||||||
on<InitialEvent>(_fetchTwoGangStatus);
|
on<InitialEvent>(_fetchTwoGangStatus);
|
||||||
on<TwoGangUpdated>(_twoGangUpdated);
|
on<TwoGangUpdated>(_twoGangUpdated);
|
||||||
on<ChangeFirstSwitchStatusEvent>(_changeFirstSwitch);
|
on<ChangeFirstSwitchStatusEvent>(_changeFirstSwitch);
|
||||||
@ -54,28 +55,47 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
on<GetScheduleEvent>(getSchedule);
|
on<GetScheduleEvent>(getSchedule);
|
||||||
on<ToggleScheduleEvent>(toggleRepeat);
|
on<ToggleScheduleEvent>(toggleRepeat);
|
||||||
on<DeleteScheduleEvent>(deleteSchedule);
|
on<DeleteScheduleEvent>(deleteSchedule);
|
||||||
|
on<ToggleSelectedEvent>(toggleSelectedIndex);
|
||||||
|
on<ToggleCreateScheduleEvent>(toggleCreateSchedule);
|
||||||
}
|
}
|
||||||
|
|
||||||
DateTime? selectedTime = DateTime.now();
|
DateTime? selectedTime = DateTime.now();
|
||||||
|
|
||||||
void toggleCreateSchedule() {
|
// void toggleCreateSchedule() {
|
||||||
|
// emit(LoadingInitialState());
|
||||||
|
// createSchedule = !createSchedule;
|
||||||
|
// selectedDays.clear();
|
||||||
|
// selectedTime = DateTime.now();
|
||||||
|
// emit(UpdateCreateScheduleState(createSchedule));
|
||||||
|
// emit(ChangeSlidingSegmentState(value: 1));
|
||||||
|
// }
|
||||||
|
|
||||||
|
int selectedTabIndex = 0;
|
||||||
|
|
||||||
|
// void toggleSelectedIndex(index) {
|
||||||
|
// emit(LoadingInitialState());
|
||||||
|
// selectedTabIndex = index;
|
||||||
|
// emit(ChangeSlidingSegmentState(value: selectedTabIndex));
|
||||||
|
// }
|
||||||
|
|
||||||
|
void toggleSelectedIndex(
|
||||||
|
ToggleSelectedEvent event, Emitter<TwoGangState> emit) {
|
||||||
|
emit(LoadingInitialState());
|
||||||
|
selectedTabIndex = event.index;
|
||||||
|
emit(ChangeSlidingSegmentState(value: selectedTabIndex));
|
||||||
|
}
|
||||||
|
|
||||||
|
void toggleCreateSchedule(
|
||||||
|
ToggleCreateScheduleEvent event, Emitter<TwoGangState> emit) {
|
||||||
emit(LoadingInitialState());
|
emit(LoadingInitialState());
|
||||||
createSchedule = !createSchedule;
|
createSchedule = !createSchedule;
|
||||||
selectedDays.clear();
|
selectedDays.clear();
|
||||||
selectedTime = DateTime.now();
|
selectedTime = DateTime.now();
|
||||||
emit(UpdateCreateScheduleState(createSchedule));
|
emit(UpdateCreateScheduleState(createSchedule));
|
||||||
emit(ChangeSlidingSegmentState(value: 1));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int selectedTabIndex = 0;
|
void _fetchTwoGangStatus(
|
||||||
|
InitialEvent event, Emitter<TwoGangState> emit) async {
|
||||||
void toggleSelectedIndex(index) {
|
|
||||||
emit(LoadingInitialState());
|
|
||||||
selectedTabIndex = index;
|
|
||||||
emit(ChangeSlidingSegmentState(value: selectedTabIndex));
|
|
||||||
}
|
|
||||||
|
|
||||||
void _fetchTwoGangStatus(InitialEvent event, Emitter<TwoGangState> emit) async {
|
|
||||||
emit(LoadingInitialState());
|
emit(LoadingInitialState());
|
||||||
try {
|
try {
|
||||||
twoGangGroup = event.groupScreen;
|
twoGangGroup = event.groupScreen;
|
||||||
@ -87,7 +107,8 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
HomeCubit.getInstance().selectedSpace?.id ?? '', '2G');
|
HomeCubit.getInstance().selectedSpace?.id ?? '', '2G');
|
||||||
|
|
||||||
for (int i = 0; i < devicesList.length; i++) {
|
for (int i = 0; i < devicesList.length; i++) {
|
||||||
var response = await DevicesAPI.getDeviceStatus(devicesList[i].uuid ?? '');
|
var response =
|
||||||
|
await DevicesAPI.getDeviceStatus(devicesList[i].uuid ?? '');
|
||||||
List<StatusModel> statusModelList = [];
|
List<StatusModel> statusModelList = [];
|
||||||
for (var status in response['status']) {
|
for (var status in response['status']) {
|
||||||
statusModelList.add(StatusModel.fromJson(status));
|
statusModelList.add(StatusModel.fromJson(status));
|
||||||
@ -110,7 +131,8 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
emit(UpdateGroupState(twoGangList: groupTwoGangList, allSwitches: allSwitchesOn));
|
emit(UpdateGroupState(
|
||||||
|
twoGangList: groupTwoGangList, allSwitches: allSwitchesOn));
|
||||||
} else {
|
} else {
|
||||||
var response = await DevicesAPI.getDeviceStatus(twoGangId);
|
var response = await DevicesAPI.getDeviceStatus(twoGangId);
|
||||||
List<StatusModel> statusModelList = [];
|
List<StatusModel> statusModelList = [];
|
||||||
@ -129,18 +151,21 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
|
|
||||||
_listenToChanges() {
|
_listenToChanges() {
|
||||||
try {
|
try {
|
||||||
DatabaseReference ref = FirebaseDatabase.instance.ref('device-status/$twoGangId');
|
DatabaseReference ref =
|
||||||
|
FirebaseDatabase.instance.ref('device-status/$twoGangId');
|
||||||
Stream<DatabaseEvent> stream = ref.onValue;
|
Stream<DatabaseEvent> stream = ref.onValue;
|
||||||
|
|
||||||
stream.listen((DatabaseEvent event) async {
|
stream.listen((DatabaseEvent event) async {
|
||||||
if (_timer != null) {
|
if (_timer != null) {
|
||||||
await Future.delayed(const Duration(seconds: 2));
|
await Future.delayed(const Duration(seconds: 2));
|
||||||
}
|
}
|
||||||
Map<dynamic, dynamic> usersMap = event.snapshot.value as Map<dynamic, dynamic>;
|
Map<dynamic, dynamic> usersMap =
|
||||||
|
event.snapshot.value as Map<dynamic, dynamic>;
|
||||||
List<StatusModel> statusList = [];
|
List<StatusModel> statusList = [];
|
||||||
|
|
||||||
usersMap['status'].forEach((element) {
|
usersMap['status'].forEach((element) {
|
||||||
statusList.add(StatusModel(code: element['code'], value: element['value']));
|
statusList
|
||||||
|
.add(StatusModel(code: element['code'], value: element['value']));
|
||||||
});
|
});
|
||||||
|
|
||||||
deviceStatus = TwoGangModel.fromJson(statusList);
|
deviceStatus = TwoGangModel.fromJson(statusList);
|
||||||
@ -155,7 +180,8 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
emit(UpdateState(twoGangModel: deviceStatus));
|
emit(UpdateState(twoGangModel: deviceStatus));
|
||||||
}
|
}
|
||||||
|
|
||||||
void _changeFirstSwitch(ChangeFirstSwitchStatusEvent event, Emitter<TwoGangState> emit) async {
|
void _changeFirstSwitch(
|
||||||
|
ChangeFirstSwitchStatusEvent event, Emitter<TwoGangState> emit) async {
|
||||||
emit(LoadingNewSate(twoGangModel: deviceStatus));
|
emit(LoadingNewSate(twoGangModel: deviceStatus));
|
||||||
try {
|
try {
|
||||||
deviceStatus.firstSwitch = !event.value;
|
deviceStatus.firstSwitch = !event.value;
|
||||||
@ -181,7 +207,8 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _changeSecondSwitch(ChangeSecondSwitchStatusEvent event, Emitter<TwoGangState> emit) async {
|
void _changeSecondSwitch(
|
||||||
|
ChangeSecondSwitchStatusEvent event, Emitter<TwoGangState> emit) async {
|
||||||
emit(LoadingNewSate(twoGangModel: deviceStatus));
|
emit(LoadingNewSate(twoGangModel: deviceStatus));
|
||||||
try {
|
try {
|
||||||
deviceStatus.secondSwitch = !event.value;
|
deviceStatus.secondSwitch = !event.value;
|
||||||
@ -217,11 +244,15 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
final response = await Future.wait([
|
final response = await Future.wait([
|
||||||
DevicesAPI.controlDevice(
|
DevicesAPI.controlDevice(
|
||||||
DeviceControlModel(
|
DeviceControlModel(
|
||||||
deviceId: twoGangId, code: 'switch_1', value: deviceStatus.firstSwitch),
|
deviceId: twoGangId,
|
||||||
|
code: 'switch_1',
|
||||||
|
value: deviceStatus.firstSwitch),
|
||||||
twoGangId),
|
twoGangId),
|
||||||
DevicesAPI.controlDevice(
|
DevicesAPI.controlDevice(
|
||||||
DeviceControlModel(
|
DeviceControlModel(
|
||||||
deviceId: twoGangId, code: 'switch_2', value: deviceStatus.secondSwitch),
|
deviceId: twoGangId,
|
||||||
|
code: 'switch_2',
|
||||||
|
value: deviceStatus.secondSwitch),
|
||||||
twoGangId),
|
twoGangId),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -244,11 +275,15 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
final response = await Future.wait([
|
final response = await Future.wait([
|
||||||
DevicesAPI.controlDevice(
|
DevicesAPI.controlDevice(
|
||||||
DeviceControlModel(
|
DeviceControlModel(
|
||||||
deviceId: twoGangId, code: 'switch_1', value: deviceStatus.firstSwitch),
|
deviceId: twoGangId,
|
||||||
|
code: 'switch_1',
|
||||||
|
value: deviceStatus.firstSwitch),
|
||||||
twoGangId),
|
twoGangId),
|
||||||
DevicesAPI.controlDevice(
|
DevicesAPI.controlDevice(
|
||||||
DeviceControlModel(
|
DeviceControlModel(
|
||||||
deviceId: twoGangId, code: 'switch_2', value: deviceStatus.secondSwitch),
|
deviceId: twoGangId,
|
||||||
|
code: 'switch_2',
|
||||||
|
value: deviceStatus.secondSwitch),
|
||||||
twoGangId),
|
twoGangId),
|
||||||
]);
|
]);
|
||||||
if (response.every((element) => !element['success'])) {
|
if (response.every((element) => !element['success'])) {
|
||||||
@ -274,11 +309,15 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
final response = await Future.wait([
|
final response = await Future.wait([
|
||||||
DevicesAPI.controlDevice(
|
DevicesAPI.controlDevice(
|
||||||
DeviceControlModel(
|
DeviceControlModel(
|
||||||
deviceId: groupTwoGangList[i].deviceId, code: 'switch_1', value: true),
|
deviceId: groupTwoGangList[i].deviceId,
|
||||||
|
code: 'switch_1',
|
||||||
|
value: true),
|
||||||
groupTwoGangList[i].deviceId),
|
groupTwoGangList[i].deviceId),
|
||||||
DevicesAPI.controlDevice(
|
DevicesAPI.controlDevice(
|
||||||
DeviceControlModel(
|
DeviceControlModel(
|
||||||
deviceId: groupTwoGangList[i].deviceId, code: 'switch_2', value: true),
|
deviceId: groupTwoGangList[i].deviceId,
|
||||||
|
code: 'switch_2',
|
||||||
|
value: true),
|
||||||
groupTwoGangList[i].deviceId),
|
groupTwoGangList[i].deviceId),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -307,11 +346,15 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
final response = await Future.wait([
|
final response = await Future.wait([
|
||||||
DevicesAPI.controlDevice(
|
DevicesAPI.controlDevice(
|
||||||
DeviceControlModel(
|
DeviceControlModel(
|
||||||
deviceId: groupTwoGangList[i].deviceId, code: 'switch_1', value: false),
|
deviceId: groupTwoGangList[i].deviceId,
|
||||||
|
code: 'switch_1',
|
||||||
|
value: false),
|
||||||
groupTwoGangList[i].deviceId),
|
groupTwoGangList[i].deviceId),
|
||||||
DevicesAPI.controlDevice(
|
DevicesAPI.controlDevice(
|
||||||
DeviceControlModel(
|
DeviceControlModel(
|
||||||
deviceId: groupTwoGangList[i].deviceId, code: 'switch_2', value: false),
|
deviceId: groupTwoGangList[i].deviceId,
|
||||||
|
code: 'switch_2',
|
||||||
|
value: false),
|
||||||
groupTwoGangList[i].deviceId),
|
groupTwoGangList[i].deviceId),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -327,17 +370,20 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _changeSliding(ChangeSlidingSegment event, Emitter<TwoGangState> emit) async {
|
void _changeSliding(
|
||||||
|
ChangeSlidingSegment event, Emitter<TwoGangState> emit) async {
|
||||||
emit(ChangeSlidingSegmentState(value: event.value));
|
emit(ChangeSlidingSegmentState(value: event.value));
|
||||||
}
|
}
|
||||||
|
|
||||||
void _setCounterValue(SetCounterValue event, Emitter<TwoGangState> emit) async {
|
void _setCounterValue(
|
||||||
|
SetCounterValue event, Emitter<TwoGangState> emit) async {
|
||||||
emit(LoadingNewSate(twoGangModel: deviceStatus));
|
emit(LoadingNewSate(twoGangModel: deviceStatus));
|
||||||
int seconds = 0;
|
int seconds = 0;
|
||||||
try {
|
try {
|
||||||
seconds = event.duration.inSeconds;
|
seconds = event.duration.inSeconds;
|
||||||
final response = await DevicesAPI.controlDevice(
|
final response = await DevicesAPI.controlDevice(
|
||||||
DeviceControlModel(deviceId: twoGangId, code: event.deviceCode, value: seconds),
|
DeviceControlModel(
|
||||||
|
deviceId: twoGangId, code: event.deviceCode, value: seconds),
|
||||||
twoGangId);
|
twoGangId);
|
||||||
|
|
||||||
if (response['success'] ?? false) {
|
if (response['success'] ?? false) {
|
||||||
@ -362,7 +408,8 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _getCounterValue(GetCounterEvent event, Emitter<TwoGangState> emit) async {
|
void _getCounterValue(
|
||||||
|
GetCounterEvent event, Emitter<TwoGangState> emit) async {
|
||||||
emit(LoadingInitialState());
|
emit(LoadingInitialState());
|
||||||
try {
|
try {
|
||||||
add(GetScheduleEvent());
|
add(GetScheduleEvent());
|
||||||
@ -449,7 +496,8 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
CustomSnackBar.displaySnackBar('Save Successfully');
|
CustomSnackBar.displaySnackBar('Save Successfully');
|
||||||
add(GetScheduleEvent());
|
add(GetScheduleEvent());
|
||||||
emit(TwoGangSaveSchedule());
|
emit(TwoGangSaveSchedule());
|
||||||
toggleCreateSchedule();
|
add(const ToggleCreateScheduleEvent(index: 1));
|
||||||
|
// toggleCreateSchedule();
|
||||||
} else {
|
} else {
|
||||||
CustomSnackBar.displaySnackBar('Please select days');
|
CustomSnackBar.displaySnackBar('Please select days');
|
||||||
}
|
}
|
||||||
@ -469,7 +517,8 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
deviceId: twoGangId,
|
deviceId: twoGangId,
|
||||||
);
|
);
|
||||||
List<dynamic> jsonData = response;
|
List<dynamic> jsonData = response;
|
||||||
listSchedule = jsonData.map((item) => ScheduleModel.fromJson(item)).toList();
|
listSchedule =
|
||||||
|
jsonData.map((item) => ScheduleModel.fromJson(item)).toList();
|
||||||
emit(InitialState());
|
emit(InitialState());
|
||||||
} on DioException catch (e) {
|
} on DioException catch (e) {
|
||||||
final errorData = e.response!.data;
|
final errorData = e.response!.data;
|
||||||
@ -480,12 +529,13 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
|
|
||||||
int? getTimeStampWithoutSeconds(DateTime? dateTime) {
|
int? getTimeStampWithoutSeconds(DateTime? dateTime) {
|
||||||
if (dateTime == null) return null;
|
if (dateTime == null) return null;
|
||||||
DateTime dateTimeWithoutSeconds =
|
DateTime dateTimeWithoutSeconds = DateTime(dateTime.year, dateTime.month,
|
||||||
DateTime(dateTime.year, dateTime.month, dateTime.day, dateTime.hour, dateTime.minute);
|
dateTime.day, dateTime.hour, dateTime.minute);
|
||||||
return dateTimeWithoutSeconds.millisecondsSinceEpoch ~/ 1000;
|
return dateTimeWithoutSeconds.millisecondsSinceEpoch ~/ 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future toggleRepeat(ToggleScheduleEvent event, Emitter<TwoGangState> emit) async {
|
Future toggleRepeat(
|
||||||
|
ToggleScheduleEvent event, Emitter<TwoGangState> emit) async {
|
||||||
try {
|
try {
|
||||||
emit(LoadingInitialState());
|
emit(LoadingInitialState());
|
||||||
final response = await DevicesAPI.changeSchedule(
|
final response = await DevicesAPI.changeSchedule(
|
||||||
@ -504,7 +554,8 @@ class TwoGangBloc extends Bloc<TwoGangEvent, TwoGangState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future deleteSchedule(DeleteScheduleEvent event, Emitter<TwoGangState> emit) async {
|
Future deleteSchedule(
|
||||||
|
DeleteScheduleEvent event, Emitter<TwoGangState> emit) async {
|
||||||
try {
|
try {
|
||||||
emit(LoadingInitialState());
|
emit(LoadingInitialState());
|
||||||
final response = await DevicesAPI.deleteSchedule(
|
final response = await DevicesAPI.deleteSchedule(
|
||||||
|
@ -62,7 +62,7 @@ class GroupAllOffEvent extends TwoGangEvent {}
|
|||||||
|
|
||||||
|
|
||||||
// two_gang_event.dart
|
// two_gang_event.dart
|
||||||
class ToggleCreateScheduleEvent extends TwoGangEvent {}
|
// class ToggleCreateScheduleEvent extends TwoGangEvent {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -125,6 +125,20 @@ class TabChangedEvent extends TwoGangEvent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ToggleSelectedEvent extends TwoGangEvent {
|
||||||
|
final int index;
|
||||||
|
const ToggleSelectedEvent({required this.index});
|
||||||
|
@override
|
||||||
|
List<Object> get props => [index];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ToggleCreateScheduleEvent extends TwoGangEvent {
|
||||||
|
final int index;
|
||||||
|
const ToggleCreateScheduleEvent({required this.index});
|
||||||
|
@override
|
||||||
|
List<Object> get props => [index];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,6 +48,9 @@ class WaterHeaterBloc extends Bloc<WaterHeaterEvent, WaterHeaterState> {
|
|||||||
on<TickTimer>(_onTickTimer);
|
on<TickTimer>(_onTickTimer);
|
||||||
on<OnClose>(_onClose);
|
on<OnClose>(_onClose);
|
||||||
on<SelectTimeEvent>(showTime);
|
on<SelectTimeEvent>(showTime);
|
||||||
|
|
||||||
|
on<ToggleSelectedEvent>(toggleSelectedIndex);
|
||||||
|
on<ToggleCreateScheduleEvent>(toggleCreateSchedule);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _fetchWaterHeaterStatus(WaterHeaterInitial event, Emitter<WaterHeaterState> emit) async {
|
void _fetchWaterHeaterStatus(WaterHeaterInitial event, Emitter<WaterHeaterState> emit) async {
|
||||||
@ -201,7 +204,7 @@ class WaterHeaterBloc extends Bloc<WaterHeaterEvent, WaterHeaterState> {
|
|||||||
CustomSnackBar.displaySnackBar('Save Successfully');
|
CustomSnackBar.displaySnackBar('Save Successfully');
|
||||||
add(GetScheduleEvent());
|
add(GetScheduleEvent());
|
||||||
emit(SaveSchedule());
|
emit(SaveSchedule());
|
||||||
toggleCreateSchedule();
|
add(const ToggleCreateScheduleEvent(index:1 ));
|
||||||
}else{
|
}else{
|
||||||
CustomSnackBar.displaySnackBar('Please select days');
|
CustomSnackBar.displaySnackBar('Please select days');
|
||||||
}
|
}
|
||||||
@ -272,22 +275,43 @@ class WaterHeaterBloc extends Bloc<WaterHeaterEvent, WaterHeaterState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void toggleCreateSchedule() {
|
// void toggleCreateSchedule() {
|
||||||
emit(WHLoadingState());
|
// emit(WHLoadingState());
|
||||||
createSchedule = !createSchedule;
|
// createSchedule = !createSchedule;
|
||||||
selectedDays.clear();
|
// selectedDays.clear();
|
||||||
selectedTime=DateTime.now();
|
// selectedTime=DateTime.now();
|
||||||
emit(UpdateCreateScheduleState(createSchedule));
|
// emit(UpdateCreateScheduleState(createSchedule));
|
||||||
}
|
// }
|
||||||
|
|
||||||
void toggleCreateCirculate() {
|
void toggleCreateCirculate() {
|
||||||
emit(WHLoadingState());
|
emit(WHLoadingState());
|
||||||
createCirculate = !createCirculate;
|
createCirculate = !createCirculate;
|
||||||
selectedDays.clear();
|
selectedDays.clear();
|
||||||
selectedTime=DateTime.now();
|
selectedTime=DateTime.now();
|
||||||
emit(UpdateCreateScheduleState(createCirculate));
|
emit(UpdateCreateScheduleState(createCirculate));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// void toggleSelectedIndex(index) {
|
||||||
|
// emit(WHLoadingState());
|
||||||
|
// selectedTabIndex = index;
|
||||||
|
// emit(ChangeSlidingSegmentState(value: selectedTabIndex));
|
||||||
|
// }
|
||||||
|
void toggleSelectedIndex( ToggleSelectedEvent event, Emitter<WaterHeaterState> emit) {
|
||||||
|
emit(WHLoadingState());
|
||||||
|
selectedTabIndex =event.index;
|
||||||
|
emit(ChangeSlidingSegmentState(value: selectedTabIndex));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void toggleCreateSchedule(ToggleCreateScheduleEvent event, Emitter<WaterHeaterState> emit) {
|
||||||
|
emit(WHLoadingState());
|
||||||
|
createSchedule = !createSchedule;
|
||||||
|
selectedDays.clear();
|
||||||
|
selectedTime = DateTime.now();
|
||||||
|
emit(UpdateCreateScheduleState(createSchedule));
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> toggleDaySelection(
|
Future<void> toggleDaySelection(
|
||||||
ToggleDaySelectionEvent event,
|
ToggleDaySelectionEvent event,
|
||||||
Emitter<WaterHeaterState> emit,
|
Emitter<WaterHeaterState> emit,
|
||||||
@ -303,11 +327,6 @@ class WaterHeaterBloc extends Bloc<WaterHeaterEvent, WaterHeaterState> {
|
|||||||
|
|
||||||
int selectedTabIndex = 0;
|
int selectedTabIndex = 0;
|
||||||
|
|
||||||
void toggleSelectedIndex(index) {
|
|
||||||
emit(WHLoadingState());
|
|
||||||
selectedTabIndex = index;
|
|
||||||
emit(ChangeSlidingSegmentState(value: selectedTabIndex));
|
|
||||||
}
|
|
||||||
|
|
||||||
showTime(SelectTimeEvent event, Emitter<WaterHeaterState> emit) async {
|
showTime(SelectTimeEvent event, Emitter<WaterHeaterState> emit) async {
|
||||||
final TimeOfDay? timePicked = await showTimePicker(
|
final TimeOfDay? timePicked = await showTimePicker(
|
||||||
|
@ -98,4 +98,28 @@ class SelectTimeEvent extends WaterHeaterEvent {
|
|||||||
const SelectTimeEvent({required this.context, required this.isEffective});
|
const SelectTimeEvent({required this.context, required this.isEffective});
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [context, isEffective];
|
List<Object> get props => [context, isEffective];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ToggleSelectedEvent extends WaterHeaterEvent {
|
||||||
|
final int index;
|
||||||
|
const ToggleSelectedEvent({required this.index});
|
||||||
|
@override
|
||||||
|
List<Object> get props => [index];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ToggleCreateScheduleEvent extends WaterHeaterEvent {
|
||||||
|
final int index;
|
||||||
|
const ToggleCreateScheduleEvent({required this.index});
|
||||||
|
@override
|
||||||
|
List<Object> get props => [index];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ToggleCreateCirculateEvent extends WaterHeaterEvent {
|
||||||
|
final int index;
|
||||||
|
const ToggleCreateCirculateEvent({required this.index});
|
||||||
|
@override
|
||||||
|
List<Object> get props => [index];
|
||||||
|
}
|
||||||
|
@ -22,8 +22,9 @@ class OneGangScreen extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return BlocProvider(
|
return BlocProvider(
|
||||||
create: (context) => OneGangBloc(switchCode: 'switch_1', oneGangId: device?.uuid ?? '')
|
create: (context) =>
|
||||||
..add(const InitialEvent(groupScreen: false)),
|
OneGangBloc(switchCode: 'switch_1', oneGangId: device?.uuid ?? '')
|
||||||
|
..add(const InitialEvent(groupScreen: false)),
|
||||||
child: BlocBuilder<OneGangBloc, OneGangState>(
|
child: BlocBuilder<OneGangBloc, OneGangState>(
|
||||||
builder: (context, state) {
|
builder: (context, state) {
|
||||||
OneGangModel oneGangModel = OneGangModel(
|
OneGangModel oneGangModel = OneGangModel(
|
||||||
@ -44,15 +45,19 @@ class OneGangScreen extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
return state is LoadingInitialState
|
return state is LoadingInitialState
|
||||||
? const Center(
|
? const Center(
|
||||||
child:
|
child: DefaultContainer(
|
||||||
DefaultContainer(width: 50, height: 50, child: CircularProgressIndicator()),
|
width: 50,
|
||||||
|
height: 50,
|
||||||
|
child: CircularProgressIndicator()),
|
||||||
)
|
)
|
||||||
: device == null
|
: device == null
|
||||||
? OneGangList(oneGangList: groupOneGangModel, allSwitches: allSwitchesOn)
|
? OneGangList(
|
||||||
|
oneGangList: groupOneGangModel,
|
||||||
|
allSwitches: allSwitchesOn)
|
||||||
: RefreshIndicator(
|
: RefreshIndicator(
|
||||||
onRefresh: () async {
|
onRefresh: () async {
|
||||||
BlocProvider.of<OneGangBloc>(context)
|
BlocProvider.of<OneGangBloc>(context).add(InitialEvent(
|
||||||
.add(InitialEvent(groupScreen: device != null ? false : true));
|
groupScreen: device != null ? false : true));
|
||||||
},
|
},
|
||||||
child: ListView(
|
child: ListView(
|
||||||
children: [
|
children: [
|
||||||
@ -65,8 +70,10 @@ class OneGangScreen extends StatelessWidget {
|
|||||||
const Expanded(child: SizedBox.shrink()),
|
const Expanded(child: SizedBox.shrink()),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
mainAxisAlignment:
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
MainAxisAlignment.spaceAround,
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Column(
|
Column(
|
||||||
children: [
|
children: [
|
||||||
@ -74,9 +81,12 @@ class OneGangScreen extends StatelessWidget {
|
|||||||
threeGangSwitch: device!,
|
threeGangSwitch: device!,
|
||||||
value: oneGangModel.firstSwitch,
|
value: oneGangModel.firstSwitch,
|
||||||
action: () {
|
action: () {
|
||||||
BlocProvider.of<OneGangBloc>(context).add(
|
BlocProvider.of<OneGangBloc>(
|
||||||
ChangeFirstSwitchStatusEvent(
|
context)
|
||||||
value: oneGangModel.firstSwitch));
|
.add(
|
||||||
|
ChangeFirstSwitchStatusEvent(
|
||||||
|
value: oneGangModel
|
||||||
|
.firstSwitch));
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
const SizedBox(height: 20),
|
const SizedBox(height: 20),
|
||||||
@ -84,7 +94,8 @@ class OneGangScreen extends StatelessWidget {
|
|||||||
width: 70,
|
width: 70,
|
||||||
child: BodySmall(
|
child: BodySmall(
|
||||||
text: " Entrance Light",
|
text: " Entrance Light",
|
||||||
fontColor: ColorsManager.textPrimaryColor,
|
fontColor: ColorsManager
|
||||||
|
.textPrimaryColor,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -96,31 +107,33 @@ class OneGangScreen extends StatelessWidget {
|
|||||||
Center(
|
Center(
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
const SizedBox(
|
|
||||||
width: 20,
|
|
||||||
),
|
|
||||||
Column(
|
Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
Card(
|
Card(
|
||||||
elevation: 3,
|
elevation: 3,
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(100),
|
borderRadius:
|
||||||
|
BorderRadius.circular(100),
|
||||||
),
|
),
|
||||||
child: GestureDetector(
|
child: GestureDetector(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
PageRouteBuilder(
|
PageRouteBuilder(
|
||||||
pageBuilder:
|
pageBuilder: (context,
|
||||||
(context, animation1, animation2) =>
|
animation1,
|
||||||
TimerScheduleScreen(
|
animation2) =>
|
||||||
switchCode: 'switch_1',
|
TimerScheduleScreen(
|
||||||
device: device!,
|
switchCode:
|
||||||
deviceCode: 'countdown_1',
|
'switch_1',
|
||||||
)));
|
device: device!,
|
||||||
|
deviceCode:
|
||||||
|
'countdown_1',
|
||||||
|
)));
|
||||||
},
|
},
|
||||||
child: Stack(
|
child: Stack(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
@ -130,7 +143,9 @@ class OneGangScreen extends StatelessWidget {
|
|||||||
height: 60,
|
height: 60,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.grey[300],
|
color: Colors.grey[300],
|
||||||
borderRadius: BorderRadius.circular(100),
|
borderRadius:
|
||||||
|
BorderRadius.circular(
|
||||||
|
100),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
@ -138,13 +153,15 @@ class OneGangScreen extends StatelessWidget {
|
|||||||
height: 40,
|
height: 40,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
borderRadius: BorderRadius.circular(100),
|
borderRadius:
|
||||||
|
BorderRadius.circular(
|
||||||
|
100),
|
||||||
),
|
),
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.access_time,
|
Icons.access_time,
|
||||||
color:
|
color: ColorsManager
|
||||||
ColorsManager.primaryColorWithOpacity,
|
.primaryColorWithOpacity,
|
||||||
size: 25,
|
size: 25,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -157,7 +174,8 @@ class OneGangScreen extends StatelessWidget {
|
|||||||
BodySmall(
|
BodySmall(
|
||||||
text: "Timer",
|
text: "Timer",
|
||||||
style: context.bodyMedium.copyWith(
|
style: context.bodyMedium.copyWith(
|
||||||
color: ColorsManager.textPrimaryColor,
|
color: ColorsManager
|
||||||
|
.textPrimaryColor,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -17,16 +17,15 @@ import 'package:syncrow_app/utils/context_extension.dart';
|
|||||||
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
|
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
|
||||||
import 'package:syncrow_app/utils/resource_manager/font_manager.dart';
|
import 'package:syncrow_app/utils/resource_manager/font_manager.dart';
|
||||||
|
|
||||||
|
|
||||||
class TimerScheduleScreen extends StatelessWidget {
|
class TimerScheduleScreen extends StatelessWidget {
|
||||||
final DeviceModel device;
|
final DeviceModel device;
|
||||||
final String deviceCode;
|
final String deviceCode;
|
||||||
final String switchCode;
|
final String switchCode;
|
||||||
const TimerScheduleScreen(
|
const TimerScheduleScreen(
|
||||||
{required this.device,
|
{required this.device,
|
||||||
required this.deviceCode,
|
required this.deviceCode,
|
||||||
required this.switchCode,
|
required this.switchCode,
|
||||||
super.key});
|
super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -37,9 +36,9 @@ class TimerScheduleScreen extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
child: BlocProvider(
|
child: BlocProvider(
|
||||||
create: (context) =>
|
create: (context) =>
|
||||||
OneGangBloc(switchCode: switchCode, oneGangId: device.uuid ?? '')
|
OneGangBloc(switchCode: switchCode, oneGangId: device.uuid ?? '')
|
||||||
..add(GetCounterEvent(deviceCode: deviceCode))
|
..add(GetCounterEvent(deviceCode: deviceCode))
|
||||||
..add(GetScheduleEvent()),
|
..add(GetScheduleEvent()),
|
||||||
child: BlocBuilder<OneGangBloc, OneGangState>(
|
child: BlocBuilder<OneGangBloc, OneGangState>(
|
||||||
builder: (context, state) {
|
builder: (context, state) {
|
||||||
final oneGangBloc = BlocProvider.of<OneGangBloc>(context);
|
final oneGangBloc = BlocProvider.of<OneGangBloc>(context);
|
||||||
@ -64,7 +63,7 @@ class TimerScheduleScreen extends StatelessWidget {
|
|||||||
},
|
},
|
||||||
child: DefaultTabController(
|
child: DefaultTabController(
|
||||||
length: 2,
|
length: 2,
|
||||||
child: DefaultScaffold(
|
child: DefaultScaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
centerTitle: true,
|
centerTitle: true,
|
||||||
@ -74,175 +73,211 @@ class TimerScheduleScreen extends StatelessWidget {
|
|||||||
fontWeight: FontsManager.bold,
|
fontWeight: FontsManager.bold,
|
||||||
),
|
),
|
||||||
actions: [
|
actions: [
|
||||||
oneGangBloc.createSchedule == true ?
|
oneGangBloc.createSchedule == true
|
||||||
TextButton(
|
? TextButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
oneGangBloc.add(ThreeGangSave());
|
oneGangBloc.add(ScheduleSave());
|
||||||
},
|
},
|
||||||
child: const Text('Save')
|
child: const Text('Save'))
|
||||||
) :
|
: oneGangBloc.selectedTabIndex == 1
|
||||||
oneGangBloc.selectedTabIndex==1? IconButton(
|
? IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
oneGangBloc.toggleCreateSchedule();
|
// oneGangBloc.toggleCreateSchedule();
|
||||||
},
|
oneGangBloc.add(
|
||||||
icon: const Icon(Icons.add),
|
const ToggleCreateScheduleEvent(
|
||||||
):SizedBox(),
|
index: 1));
|
||||||
|
},
|
||||||
|
icon: const Icon(Icons.add),
|
||||||
|
)
|
||||||
|
: const SizedBox(),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
child:
|
child: state is LoadingInitialState
|
||||||
state is LoadingInitialState?
|
? const Center(child: CircularProgressIndicator())
|
||||||
const Center(child: CircularProgressIndicator()):
|
: Column(
|
||||||
Column(
|
|
||||||
children: [
|
|
||||||
Container(
|
|
||||||
width: MediaQuery.of(context).size.width,
|
|
||||||
decoration: const ShapeDecoration(
|
|
||||||
color: ColorsManager.onPrimaryColor,
|
|
||||||
shape: RoundedRectangleBorder(
|
|
||||||
borderRadius: BorderRadius.all(Radius.circular(30)),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
child: TabBar(
|
|
||||||
onTap: (value) {
|
|
||||||
if(value==0){
|
|
||||||
if(oneGangBloc.createSchedule == true){
|
|
||||||
oneGangBloc.toggleCreateSchedule();
|
|
||||||
}
|
|
||||||
oneGangBloc.toggleSelectedIndex(0);
|
|
||||||
}else{
|
|
||||||
oneGangBloc.toggleSelectedIndex(1);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
indicatorColor: Colors.white, // Customize the indicator
|
|
||||||
dividerHeight: 0,
|
|
||||||
indicatorSize: TabBarIndicatorSize.tab,
|
|
||||||
indicator: const ShapeDecoration(
|
|
||||||
color: ColorsManager.slidingBlueColor,
|
|
||||||
shape: RoundedRectangleBorder(
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.all(Radius.circular(20)),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
tabs: [
|
|
||||||
Tab(
|
|
||||||
child: Container(
|
|
||||||
padding: const EdgeInsets.symmetric(
|
|
||||||
vertical: 10),
|
|
||||||
child: BodySmall(
|
|
||||||
text: 'Countdown',
|
|
||||||
style: context.bodySmall.copyWith(
|
|
||||||
color: ColorsManager.blackColor,
|
|
||||||
fontSize: 12,
|
|
||||||
fontWeight: FontWeight.w400,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Tab(
|
|
||||||
child: Container(
|
|
||||||
padding: const EdgeInsets.symmetric(vertical: 10),
|
|
||||||
child: Text(
|
|
||||||
'Schedule',
|
|
||||||
style: context.bodySmall.copyWith(
|
|
||||||
color: ColorsManager.blackColor,
|
|
||||||
fontSize: 12,
|
|
||||||
fontWeight: FontWeight.w400,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Expanded(
|
|
||||||
child: TabBarView(
|
|
||||||
children: [
|
children: [
|
||||||
Center(
|
Container(
|
||||||
child: Container(
|
width: MediaQuery.of(context).size.width,
|
||||||
child: Column(
|
decoration: const ShapeDecoration(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
color: ColorsManager.onPrimaryColor,
|
||||||
children: [
|
shape: RoundedRectangleBorder(
|
||||||
countNum > 0
|
borderRadius:
|
||||||
? BodyLarge(
|
BorderRadius.all(Radius.circular(30)),
|
||||||
text: _formatDuration(countNum),
|
|
||||||
fontColor:
|
|
||||||
ColorsManager.slidingBlueColor,
|
|
||||||
fontSize: 40,
|
|
||||||
)
|
|
||||||
: CupertinoTimerPicker(
|
|
||||||
mode: CupertinoTimerPickerMode.hm,
|
|
||||||
onTimerDurationChanged:
|
|
||||||
(Duration newDuration) {
|
|
||||||
duration = newDuration;
|
|
||||||
},
|
|
||||||
),
|
|
||||||
GestureDetector(
|
|
||||||
onTap: () {
|
|
||||||
if (state is LoadingNewSate) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (countNum > 0) {
|
|
||||||
oneGangBloc.add(SetCounterValue(
|
|
||||||
deviceCode: deviceCode,
|
|
||||||
duration: Duration.zero));
|
|
||||||
} else if (duration != Duration.zero) {
|
|
||||||
oneGangBloc.add(SetCounterValue(
|
|
||||||
deviceCode: deviceCode,
|
|
||||||
duration: duration));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
child: SvgPicture.asset(countNum > 0
|
|
||||||
? Assets.pauseIcon
|
|
||||||
: Assets.playIcon)),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
child: TabBar(
|
||||||
Column(
|
onTap: (value) {
|
||||||
mainAxisAlignment:oneGangBloc.listSchedule.isNotEmpty?
|
if (value == 0) {
|
||||||
MainAxisAlignment.start:MainAxisAlignment.center,
|
if (oneGangBloc.createSchedule ==
|
||||||
children: [
|
true) {
|
||||||
SizedBox(
|
// oneGangBloc.toggleCreateSchedule();
|
||||||
child: oneGangBloc.createSchedule == true ?
|
oneGangBloc.add(
|
||||||
CreateSchedule(
|
const ToggleCreateScheduleEvent(
|
||||||
onToggleChanged: (bool isOn) {
|
index: 0));
|
||||||
oneGangBloc.toggleSchedule = isOn;
|
}
|
||||||
},
|
oneGangBloc.add(
|
||||||
onDateTimeChanged: (DateTime dateTime) {
|
const ToggleSelectedEvent(
|
||||||
oneGangBloc.selectedTime=dateTime;
|
index: 0));
|
||||||
},
|
} else {
|
||||||
days: oneGangBloc.days,
|
oneGangBloc.add(
|
||||||
selectDays: (List<String> selectedDays) {
|
const ToggleSelectedEvent(
|
||||||
oneGangBloc.selectedDays = selectedDays;
|
index: 1));
|
||||||
},
|
}
|
||||||
)
|
},
|
||||||
:
|
indicatorColor:
|
||||||
Padding(
|
Colors.white, // Customize the indicator
|
||||||
padding: const EdgeInsets.only(top: 10),
|
dividerHeight: 0,
|
||||||
child: ScheduleListView(
|
indicatorSize: TabBarIndicatorSize.tab,
|
||||||
listSchedule: oneGangBloc.listSchedule, // Pass the schedule list here
|
indicator: const ShapeDecoration(
|
||||||
onDismissed: (scheduleId) {
|
color: ColorsManager.slidingBlueColor,
|
||||||
oneGangBloc.listSchedule.removeWhere((schedule) => schedule.scheduleId == scheduleId);
|
shape: RoundedRectangleBorder(
|
||||||
oneGangBloc.add(DeleteScheduleEvent(id: scheduleId));
|
borderRadius: BorderRadius.all(
|
||||||
},
|
Radius.circular(20)),
|
||||||
onToggleSchedule: (scheduleId, isEnabled) {
|
|
||||||
oneGangBloc.add(ToggleScheduleEvent(
|
|
||||||
id: scheduleId,
|
|
||||||
toggle: isEnabled,
|
|
||||||
));
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
tabs: [
|
||||||
|
Tab(
|
||||||
|
child: Container(
|
||||||
|
padding: const EdgeInsets.symmetric(
|
||||||
|
vertical: 10),
|
||||||
|
child: BodySmall(
|
||||||
|
text: 'Countdown',
|
||||||
|
style: context.bodySmall.copyWith(
|
||||||
|
color: ColorsManager.blackColor,
|
||||||
|
fontSize: 12,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Tab(
|
||||||
|
child: Container(
|
||||||
|
padding: const EdgeInsets.symmetric(
|
||||||
|
vertical: 10),
|
||||||
|
child: Text(
|
||||||
|
'Schedule',
|
||||||
|
style: context.bodySmall.copyWith(
|
||||||
|
color: ColorsManager.blackColor,
|
||||||
|
fontSize: 12,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: TabBarView(
|
||||||
|
children: [
|
||||||
|
Center(
|
||||||
|
child: Container(
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
countNum > 0
|
||||||
|
? BodyLarge(
|
||||||
|
text: _formatDuration(
|
||||||
|
countNum),
|
||||||
|
fontColor: ColorsManager
|
||||||
|
.slidingBlueColor,
|
||||||
|
fontSize: 40,
|
||||||
|
)
|
||||||
|
: CupertinoTimerPicker(
|
||||||
|
mode:
|
||||||
|
CupertinoTimerPickerMode
|
||||||
|
.hm,
|
||||||
|
onTimerDurationChanged:
|
||||||
|
(Duration
|
||||||
|
newDuration) {
|
||||||
|
duration = newDuration;
|
||||||
|
},
|
||||||
|
),
|
||||||
|
GestureDetector(
|
||||||
|
onTap: () {
|
||||||
|
if (state
|
||||||
|
is LoadingNewSate) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (countNum > 0) {
|
||||||
|
oneGangBloc.add(
|
||||||
|
SetCounterValue(
|
||||||
|
deviceCode:
|
||||||
|
deviceCode,
|
||||||
|
duration: Duration
|
||||||
|
.zero));
|
||||||
|
} else if (duration !=
|
||||||
|
Duration.zero) {
|
||||||
|
oneGangBloc.add(
|
||||||
|
SetCounterValue(
|
||||||
|
deviceCode:
|
||||||
|
deviceCode,
|
||||||
|
duration:
|
||||||
|
duration));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
countNum > 0
|
||||||
|
? Assets.pauseIcon
|
||||||
|
: Assets.playIcon)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
child: oneGangBloc.createSchedule ==
|
||||||
|
true
|
||||||
|
? CreateSchedule(
|
||||||
|
onToggleChanged: (bool isOn) {
|
||||||
|
oneGangBloc.toggleSchedule =
|
||||||
|
isOn;
|
||||||
|
},
|
||||||
|
onDateTimeChanged:
|
||||||
|
(DateTime dateTime) {
|
||||||
|
oneGangBloc.selectedTime =
|
||||||
|
dateTime;
|
||||||
|
},
|
||||||
|
days: oneGangBloc.days,
|
||||||
|
selectDays: (List<String>
|
||||||
|
selectedDays) {
|
||||||
|
oneGangBloc.selectedDays =
|
||||||
|
selectedDays;
|
||||||
|
},
|
||||||
|
)
|
||||||
|
: Padding(
|
||||||
|
padding: const EdgeInsets.only(
|
||||||
|
top: 10),
|
||||||
|
child: ScheduleListView(
|
||||||
|
listSchedule: oneGangBloc
|
||||||
|
.listSchedule, // Pass the schedule list here
|
||||||
|
onDismissed: (scheduleId) {
|
||||||
|
oneGangBloc.listSchedule
|
||||||
|
.removeWhere((schedule) =>
|
||||||
|
schedule
|
||||||
|
.scheduleId ==
|
||||||
|
scheduleId);
|
||||||
|
oneGangBloc.add(
|
||||||
|
DeleteScheduleEvent(
|
||||||
|
id: scheduleId));
|
||||||
|
},
|
||||||
|
onToggleSchedule:
|
||||||
|
(scheduleId, isEnabled) {
|
||||||
|
oneGangBloc.add(
|
||||||
|
ToggleScheduleEvent(
|
||||||
|
id: scheduleId,
|
||||||
|
toggle: isEnabled,
|
||||||
|
));
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
)));
|
||||||
],
|
|
||||||
),
|
|
||||||
))
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -82,11 +82,14 @@ class TimerScheduleScreen extends StatelessWidget {
|
|||||||
: threeGangBloc.selectedTabIndex == 1
|
: threeGangBloc.selectedTabIndex == 1
|
||||||
? IconButton(
|
? IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
threeGangBloc.toggleCreateSchedule();
|
// oneGangBloc.toggleCreateSchedule();
|
||||||
|
threeGangBloc.add(
|
||||||
|
const ToggleCreateScheduleEvent(
|
||||||
|
index: 1));
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.add),
|
icon: const Icon(Icons.add),
|
||||||
)
|
)
|
||||||
: SizedBox(),
|
: const SizedBox(),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
child: state is LoadingInitialState
|
child: state is LoadingInitialState
|
||||||
@ -103,15 +106,34 @@ class TimerScheduleScreen extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: TabBar(
|
child: TabBar(
|
||||||
|
// onTap: (value) {
|
||||||
|
// if (value == 0) {
|
||||||
|
// if (threeGangBloc.createSchedule ==
|
||||||
|
// true) {
|
||||||
|
// threeGangBloc.toggleCreateSchedule();
|
||||||
|
// }
|
||||||
|
// threeGangBloc.toggleSelectedIndex(0);
|
||||||
|
// } else {
|
||||||
|
// threeGangBloc.toggleSelectedIndex(1);
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
|
||||||
onTap: (value) {
|
onTap: (value) {
|
||||||
if (value == 0) {
|
if (value == 0) {
|
||||||
if (threeGangBloc.createSchedule ==
|
if (threeGangBloc.createSchedule ==
|
||||||
true) {
|
true) {
|
||||||
threeGangBloc.toggleCreateSchedule();
|
// oneGangBloc.toggleCreateSchedule();
|
||||||
|
threeGangBloc.add(
|
||||||
|
const ToggleCreateScheduleEvent(
|
||||||
|
index: 0));
|
||||||
}
|
}
|
||||||
threeGangBloc.toggleSelectedIndex(0);
|
threeGangBloc.add(
|
||||||
|
const ToggleSelectedEvent(
|
||||||
|
index: 0));
|
||||||
} else {
|
} else {
|
||||||
threeGangBloc.toggleSelectedIndex(1);
|
threeGangBloc.add(
|
||||||
|
const ToggleSelectedEvent(
|
||||||
|
index: 1));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
indicatorColor: Colors.white,
|
indicatorColor: Colors.white,
|
||||||
|
@ -82,11 +82,14 @@ class TimerScheduleScreen extends StatelessWidget {
|
|||||||
: twoGangBloc.selectedTabIndex == 1
|
: twoGangBloc.selectedTabIndex == 1
|
||||||
? IconButton(
|
? IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
twoGangBloc.toggleCreateSchedule();
|
// oneGangBloc.toggleCreateSchedule();
|
||||||
|
twoGangBloc.add(
|
||||||
|
const ToggleCreateScheduleEvent(
|
||||||
|
index: 1));
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.add),
|
icon: const Icon(Icons.add),
|
||||||
)
|
)
|
||||||
: SizedBox(),
|
: const SizedBox(),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
child: state is LoadingInitialState
|
child: state is LoadingInitialState
|
||||||
@ -104,15 +107,21 @@ class TimerScheduleScreen extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
child: TabBar(
|
child: TabBar(
|
||||||
onTap: (value) {
|
onTap: (value) {
|
||||||
print(value);
|
|
||||||
if (value == 0) {
|
if (value == 0) {
|
||||||
if (twoGangBloc.createSchedule ==
|
if (twoGangBloc.createSchedule ==
|
||||||
true) {
|
true) {
|
||||||
twoGangBloc.toggleCreateSchedule();
|
// oneGangBloc.toggleCreateSchedule();
|
||||||
|
twoGangBloc.add(
|
||||||
|
const ToggleCreateScheduleEvent(
|
||||||
|
index: 0));
|
||||||
}
|
}
|
||||||
twoGangBloc.toggleSelectedIndex(0);
|
twoGangBloc.add(
|
||||||
|
const ToggleSelectedEvent(
|
||||||
|
index: 0));
|
||||||
} else {
|
} else {
|
||||||
twoGangBloc.toggleSelectedIndex(1);
|
twoGangBloc.add(
|
||||||
|
const ToggleSelectedEvent(
|
||||||
|
index: 1));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
indicatorColor:
|
indicatorColor:
|
||||||
@ -243,12 +252,20 @@ class TimerScheduleScreen extends StatelessWidget {
|
|||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: ScheduleListView(
|
child: ScheduleListView(
|
||||||
listSchedule: twoGangBloc.listSchedule, // Pass the schedule list here
|
listSchedule: twoGangBloc
|
||||||
onDismissed:(scheduleId) {
|
.listSchedule, // Pass the schedule list here
|
||||||
twoGangBloc .listSchedule
|
onDismissed:
|
||||||
.removeWhere( (schedule) => schedule .scheduleId == scheduleId);
|
(scheduleId) {
|
||||||
|
twoGangBloc
|
||||||
|
.listSchedule
|
||||||
|
.removeWhere(
|
||||||
|
(schedule) =>
|
||||||
|
schedule
|
||||||
|
.scheduleId ==
|
||||||
|
scheduleId);
|
||||||
twoGangBloc.add(
|
twoGangBloc.add(
|
||||||
DeleteScheduleEvent( id: scheduleId));
|
DeleteScheduleEvent(
|
||||||
|
id: scheduleId));
|
||||||
},
|
},
|
||||||
onToggleSchedule:
|
onToggleSchedule:
|
||||||
(scheduleId,
|
(scheduleId,
|
||||||
|
@ -86,7 +86,10 @@ class WHTimerScheduleScreen extends StatelessWidget {
|
|||||||
: waterHeaterBloc.selectedTabIndex == 1
|
: waterHeaterBloc.selectedTabIndex == 1
|
||||||
? IconButton(
|
? IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
waterHeaterBloc.toggleCreateSchedule();
|
// waterHeaterBloc.toggleCreateSchedule();
|
||||||
|
waterHeaterBloc.add(
|
||||||
|
const ToggleCreateScheduleEvent(
|
||||||
|
index: 1));
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.add),
|
icon: const Icon(Icons.add),
|
||||||
)
|
)
|
||||||
@ -129,27 +132,45 @@ class WHTimerScheduleScreen extends StatelessWidget {
|
|||||||
if (value == 0) {
|
if (value == 0) {
|
||||||
if (waterHeaterBloc.createSchedule ==
|
if (waterHeaterBloc.createSchedule ==
|
||||||
true) {
|
true) {
|
||||||
waterHeaterBloc
|
// waterHeaterBloc
|
||||||
.toggleCreateSchedule();
|
// .toggleCreateSchedule();
|
||||||
|
waterHeaterBloc.add(
|
||||||
|
const ToggleCreateScheduleEvent(
|
||||||
|
index: 1));
|
||||||
}
|
}
|
||||||
waterHeaterBloc
|
waterHeaterBloc.add(
|
||||||
.toggleSelectedIndex(value);
|
ToggleSelectedEvent(
|
||||||
|
index: value));
|
||||||
|
// waterHeaterBloc
|
||||||
|
// .toggleSelectedIndex(value);
|
||||||
} else if (value == 2) {
|
} else if (value == 2) {
|
||||||
if (waterHeaterBloc.createCirculate ==
|
if (waterHeaterBloc.createCirculate ==
|
||||||
true) {
|
true) {
|
||||||
waterHeaterBloc
|
waterHeaterBloc.add(
|
||||||
.toggleCreateCirculate();
|
ToggleCreateCirculateEvent(
|
||||||
|
index: value));
|
||||||
|
// waterHeaterBloc
|
||||||
|
// .toggleCreateCirculate();
|
||||||
}
|
}
|
||||||
waterHeaterBloc
|
waterHeaterBloc.add(
|
||||||
.toggleSelectedIndex(value);
|
ToggleSelectedEvent(
|
||||||
|
index: value));
|
||||||
|
// waterHeaterBloc
|
||||||
|
// .toggleSelectedIndex(value);
|
||||||
} else {
|
} else {
|
||||||
if (waterHeaterBloc.createSchedule ==
|
if (waterHeaterBloc.createSchedule ==
|
||||||
true) {
|
true) {
|
||||||
waterHeaterBloc
|
waterHeaterBloc.add(
|
||||||
.toggleCreateSchedule();
|
ToggleSelectedEvent(
|
||||||
|
index: value));
|
||||||
|
// waterHeaterBloc
|
||||||
|
// .toggleCreateSchedule();
|
||||||
}
|
}
|
||||||
waterHeaterBloc
|
waterHeaterBloc.add(
|
||||||
.toggleSelectedIndex(value);
|
ToggleSelectedEvent(
|
||||||
|
index: value));
|
||||||
|
// waterHeaterBloc
|
||||||
|
// .toggleSelectedIndex(value);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
indicatorColor: Colors.white,
|
indicatorColor: Colors.white,
|
||||||
|
Reference in New Issue
Block a user