water heater and timer and schedule ui and api ,

Circulate ui and Inching ui
This commit is contained in:
mohammad
2024-09-20 14:06:24 +03:00
parent f0feb4021f
commit 54cce48b89
3 changed files with 144 additions and 36 deletions

View File

@ -1,5 +1,6 @@
import 'dart:async';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:syncrow_app/features/devices/bloc/water_heater_bloc/water_heater_event.dart';
import 'package:syncrow_app/features/devices/bloc/water_heater_bloc/water_heater_state.dart';
@ -308,4 +309,26 @@ class WaterHeaterBloc extends Bloc<WaterHeaterEvent, WaterHeaterState> {
emit(ChangeSlidingSegmentState(value: selectedTabIndex));
}
// showTime(){
// final TimeOfDay? timePicked = await showTimePicker(
// context: event.context,
// initialTime: TimeOfDay.now(),
// builder: (context, child) {
// return Theme(
// data: ThemeData.light().copyWith(
// colorScheme: const ColorScheme.light(
// primary: ColorsManager.primaryColor,
// onSurface: Colors.black,
// ),
// buttonTheme: const ButtonThemeData(
// colorScheme: ColorScheme.light(
// primary: Colors.green,
// ),
// ),
// ),
// child: child!,
// );
// },
// );
// }
}

View File

@ -1,11 +1,9 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:syncrow_app/features/shared_widgets/default_container.dart';
import '../../../../../utils/resource_manager/color_manager.dart';
import 'package:syncrow_app/features/shared_widgets/text_widgets/body_large.dart';
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
class InchingWidget extends StatefulWidget {
@ -48,22 +46,98 @@ class _InchingWidgetState extends State<InchingWidget> {
),
],
),
SizedBox(height: 10,),
Text('Once enabled this feature, each time the device is turned on, it will automatically turn of after a period time as pre-set.'),
const SizedBox(height: 10,),
const Text('Once enabled this feature, each time the device is turned on, it will automatically turn of after a period time as pre-set.'),
],
),
),
),
SizedBox(
height: 110,
child: CupertinoDatePicker(
mode: CupertinoDatePickerMode.time,
initialDateTime: DateTime.now(),
onDateTimeChanged: (selectedTime) {
}, ),
const Padding(
padding: EdgeInsets.only(right: 30,left: 30),
child: Divider(),
),
Container(
child: MinuteSecondPicker()),
const Padding(
padding: EdgeInsets.only(right: 30,left: 30),
child: Divider(),
),
],
);
}
}
class MinuteSecondPicker extends StatefulWidget {
const MinuteSecondPicker({super.key});
@override
_MinuteSecondPickerState createState() => _MinuteSecondPickerState();
}
class _MinuteSecondPickerState extends State<MinuteSecondPicker> {
int selectedMinute = 0;
int selectedSecond = 0;
@override
Widget build(BuildContext context) {
return Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
// Minutes picker
Container(
height: 80,
width: 100,
child: CupertinoPicker(
itemExtent: 40.0,
scrollController: FixedExtentScrollController(initialItem: selectedMinute),
onSelectedItemChanged: (int index) {
setState(() {
selectedMinute = index;
});
},
children: List<Widget>.generate(61, (int index) {
return Center(
child: BodyLarge(
text: index.toString().padLeft(2, '0'),
style: const TextStyle(
fontWeight: FontWeight.w400,
fontSize: 30,color: Colors.blue),
),
);
}),
),
),
const Text('M'),
SizedBox(width: 20),
// Seconds picker
Container(
height: 80,
width: 100,
child: CupertinoPicker(
itemExtent: 40.0,
scrollController: FixedExtentScrollController(initialItem: selectedSecond),
onSelectedItemChanged: (int index) {
setState(() {
selectedSecond = index;
});
},
children: List<Widget>.generate(60, (int index) {
return Center(
child: BodyLarge(
text: index.toString().padLeft(2, '0'),
style: const TextStyle(
fontWeight: FontWeight.w400,
fontSize: 30,color: Colors.blue),
),
);
}),
),
),
const Text('S'),
],
),
);
}
}

View File

@ -126,10 +126,14 @@ class CirculateWidget extends StatelessWidget {
),
),
const SizedBox(height: 20),
const DefaultContainer(child:
DefaultContainer(child:
Column(
children: [
Padding(
InkWell(
onTap: () {
},
child: const Padding(
padding: EdgeInsets.all(8.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -143,8 +147,13 @@ class CirculateWidget extends StatelessWidget {
),
],),
),
Divider(color: ColorsManager.graysColor,),
Padding(
),
const Divider(color: ColorsManager.graysColor,),
InkWell(
onTap: () {
},
child: const Padding(
padding: EdgeInsets.all(8.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -158,6 +167,7 @@ class CirculateWidget extends StatelessWidget {
),
],),
),
),
],
)
)
@ -166,3 +176,4 @@ class CirculateWidget extends StatelessWidget {
);
}
}