Fixed design issues

This commit is contained in:
Abdullah Alassaf
2024-09-24 00:28:46 +03:00
parent 04e8131fb2
commit a811baca70
4 changed files with 165 additions and 197 deletions

View File

@ -25,13 +25,11 @@ class DoorSensorScreen extends StatelessWidget {
title: 'Door Sensor',
child: BlocProvider(
create: (context) =>
DoorSensorBloc( DSId: device?.uuid ?? '')
..add(const DoorSensorInitial()),
DoorSensorBloc(DSId: device?.uuid ?? '')..add(const DoorSensorInitial()),
child: BlocBuilder<DoorSensorBloc, DoorSensorState>(
builder: (context, state) {
final doorSensorBloc = BlocProvider.of<DoorSensorBloc>(context);
DoorSensorModel model =
DoorSensorModel(batteryPercentage: 0, doorContactState: false);
DoorSensorModel model = DoorSensorModel(batteryPercentage: 0, doorContactState: false);
if (state is LoadingNewSate) {
model = state.doorSensor;
} else if (state is UpdateState) {
@ -39,31 +37,27 @@ class DoorSensorScreen extends StatelessWidget {
}
return state is DoorSensorLoadingState
? const Center(
child: DefaultContainer(
width: 50,
height: 50,
child: CircularProgressIndicator()),
child:
DefaultContainer(width: 50, height: 50, child: CircularProgressIndicator()),
)
: RefreshIndicator(
onRefresh: () async {
doorSensorBloc.add(const DoorSensorInitial());
},
child: Center(
child: ListView(
shrinkWrap: true,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
SizedBox(
height: MediaQuery.sizeOf(context).height * 0.8,
child: Column(
children: [
BatteryBar(
batteryPercentage: model.batteryPercentage,
),
InkWell(
overlayColor:
WidgetStateProperty.all(Colors.transparent),
onTap: () {
},
Expanded(
flex: 4,
child: InkWell(
overlayColor: WidgetStateProperty.all(Colors.transparent),
onTap: () {},
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -71,26 +65,22 @@ class DoorSensorScreen extends StatelessWidget {
Container(
decoration: BoxDecoration(
// color: Colors.white.withOpacity(0.1),
borderRadius:
BorderRadius.circular(890),
borderRadius: BorderRadius.circular(890),
boxShadow: [
BoxShadow(
color:
Colors.white.withOpacity(0.1),
color: Colors.white.withOpacity(0.1),
blurRadius: 24,
offset: const Offset(-5, -5),
blurStyle: BlurStyle.outer,
),
BoxShadow(
color:
Colors.black.withOpacity(0.11),
color: Colors.black.withOpacity(0.11),
blurRadius: 25,
offset: const Offset(5, 5),
blurStyle: BlurStyle.outer,
),
BoxShadow(
color:
Colors.black.withOpacity(0.13),
color: Colors.black.withOpacity(0.13),
blurRadius: 30,
offset: const Offset(5, 5),
blurStyle: BlurStyle.inner,
@ -107,11 +97,8 @@ class DoorSensorScreen extends StatelessWidget {
],
),
),
const SizedBox(height: 80),
],
),
SizedBox(
height: MediaQuery.of(context).size.height * 0.13,
Flexible(
child: Row(
children: [
Expanded(
@ -120,21 +107,17 @@ class DoorSensorScreen extends StatelessWidget {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) =>
DoorRecordsScreen(
DSId: device!.uuid!)),
DoorRecordsScreen(DSId: device!.uuid!)),
);
},
child: Column(
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
ConstrainedBox(
constraints: const BoxConstraints(
maxHeight: 46, maxWidth: 50),
child: SvgPicture.asset(
Assets.doorRecordsIcon),
constraints:
const BoxConstraints(maxHeight: 46, maxWidth: 50),
child: SvgPicture.asset(Assets.doorRecordsIcon),
),
const SizedBox(
height: 15,
@ -160,21 +143,18 @@ class DoorSensorScreen extends StatelessWidget {
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) =>
NotificationSettingsPage()),
builder: (context) => NotificationSettingsPage()),
);
},
child: Column(
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
ConstrainedBox(
constraints: const BoxConstraints(
maxHeight: 46, maxWidth: 50),
child: SvgPicture.asset(
Assets.doorNotificationSetting),
constraints:
const BoxConstraints(maxHeight: 46, maxWidth: 50),
child:
SvgPicture.asset(Assets.doorNotificationSetting),
),
const SizedBox(
height: 15,
@ -198,6 +178,8 @@ class DoorSensorScreen extends StatelessWidget {
],
),
),
],
),
);
},
),

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 '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 {
const InchingWidget({super.key, this.onDateTimeChanged});
final Function(DateTime)? onDateTimeChanged;
@ -22,7 +20,7 @@ class _InchingWidgetState extends State<InchingWidget> {
children: [
DefaultContainer(
child: Container(
padding: EdgeInsets.all(10),
padding: const EdgeInsets.all(10),
child: Column(
children: [
Row(
@ -46,8 +44,11 @@ class _InchingWidgetState extends State<InchingWidget> {
),
],
),
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.'),
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.'),
],
),
),
@ -56,8 +57,7 @@ class _InchingWidgetState extends State<InchingWidget> {
padding: EdgeInsets.only(right: 30, left: 30),
child: Divider(),
),
Container(
child: MinuteSecondPicker()),
Container(child: MinuteSecondPicker()),
const Padding(
padding: EdgeInsets.only(right: 30, left: 30),
child: Divider(),
@ -66,6 +66,7 @@ class _InchingWidgetState extends State<InchingWidget> {
);
}
}
class MinuteSecondPicker extends StatefulWidget {
const MinuteSecondPicker({super.key});
@ -100,8 +101,7 @@ class _MinuteSecondPickerState extends State<MinuteSecondPicker> {
child: BodyLarge(
text: index.toString().padLeft(2, '0'),
style: const TextStyle(
fontWeight: FontWeight.w400,
fontSize: 30,color: Colors.blue),
fontWeight: FontWeight.w400, fontSize: 30, color: Colors.blue),
),
);
}),
@ -126,18 +126,15 @@ class _MinuteSecondPickerState extends State<MinuteSecondPicker> {
child: BodyLarge(
text: index.toString().padLeft(2, '0'),
style: const TextStyle(
fontWeight: FontWeight.w400,
fontSize: 30,color: Colors.blue),
fontWeight: FontWeight.w400, fontSize: 30, color: Colors.blue),
),
);
}),
),
),
const Text('S'),
],
),
);
}
}

View File

@ -21,9 +21,9 @@ class WaterHeaterPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return DefaultScaffold(
title: 'Water heater',
child: BlocProvider(
create: (context) =>
WaterHeaterBloc(switchCode: 'switch_1', whId: device?.uuid ?? '')
create: (context) => WaterHeaterBloc(switchCode: 'switch_1', whId: device?.uuid ?? '')
..add(const WaterHeaterInitial()),
child: BlocBuilder<WaterHeaterBloc, WaterHeaterState>(
builder: (context, state) {
@ -36,10 +36,8 @@ class WaterHeaterPage extends StatelessWidget {
}
return state is WHLoadingState
? const Center(
child: DefaultContainer(
width: 50,
height: 50,
child: CircularProgressIndicator()),
child:
DefaultContainer(width: 50, height: 50, child: CircularProgressIndicator()),
)
: RefreshIndicator(
onRefresh: () async {
@ -53,13 +51,11 @@ class WaterHeaterPage extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.center,
children: [
InkWell(
overlayColor: MaterialStateProperty.all(
Colors.transparent),
overlayColor: MaterialStateProperty.all(Colors.transparent),
onTap: () {
waterHeaterBloc.add(
WaterHeaterSwitch(
whSwitch:whModel.firstSwitch
),);
WaterHeaterSwitch(whSwitch: whModel.firstSwitch),
);
},
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
@ -68,26 +64,22 @@ class WaterHeaterPage extends StatelessWidget {
Container(
decoration: BoxDecoration(
// color: Colors.white.withOpacity(0.1),
borderRadius:
BorderRadius.circular(890),
borderRadius: BorderRadius.circular(890),
boxShadow: [
BoxShadow(
color:
Colors.white.withOpacity(0.1),
color: Colors.white.withOpacity(0.1),
blurRadius: 24,
offset: const Offset(-5, -5),
blurStyle: BlurStyle.outer,
),
BoxShadow(
color:
Colors.black.withOpacity(0.11),
color: Colors.black.withOpacity(0.11),
blurRadius: 25,
offset: const Offset(5, 5),
blurStyle: BlurStyle.outer,
),
BoxShadow(
color:
Colors.black.withOpacity(0.13),
color: Colors.black.withOpacity(0.13),
blurRadius: 30,
offset: const Offset(5, 5),
blurStyle: BlurStyle.inner,
@ -111,8 +103,7 @@ class WaterHeaterPage extends StatelessWidget {
Card(
elevation: 3,
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(100),
borderRadius: BorderRadius.circular(100),
),
child: GestureDetector(
onTap: () {
@ -121,7 +112,9 @@ class WaterHeaterPage extends StatelessWidget {
PageRouteBuilder(
pageBuilder: (context, animation1, animation2) =>
WHTimerScheduleScreen(
switchCode: 'switch_1', device: device!, deviceCode: 'countdown_1',
switchCode: 'switch_1',
device: device!,
deviceCode: 'countdown_1',
)));
},
child: Stack(
@ -132,8 +125,7 @@ class WaterHeaterPage extends StatelessWidget {
height: 60,
decoration: BoxDecoration(
color: Colors.grey[300],
borderRadius:
BorderRadius.circular(100),
borderRadius: BorderRadius.circular(100),
),
),
Container(
@ -141,14 +133,12 @@ class WaterHeaterPage extends StatelessWidget {
height: 40,
decoration: BoxDecoration(
color: Colors.white,
borderRadius:
BorderRadius.circular(100),
borderRadius: BorderRadius.circular(100),
),
child: Center(
child: Icon(
Icons.access_time,
color: ColorsManager
.primaryColorWithOpacity,
color: ColorsManager.primaryColorWithOpacity,
size: 25,
),
),

View File

@ -59,7 +59,6 @@ class ScheduleListView extends StatelessWidget {
onTap: () {},
child: DefaultContainer(
padding: const EdgeInsets.all(20),
height: MediaQuery.of(context).size.height / 6.4,
child: Row(
children: [
Expanded(