chore(deps): upgrade Flutter SDK from 3.10.1 to 3.27.1
- Update Flutter SDK version to 3.27.1 - Update minimum dart SDK version - Update dependencies to compatible versions - Fix deprecated method calls - Run migration for breaking changes
This commit is contained in:
@@ -149,9 +149,9 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
ElevatedButton(
|
||||
style: const ButtonStyle(
|
||||
backgroundColor:
|
||||
MaterialStatePropertyAll(Colors.blue),
|
||||
WidgetStatePropertyAll(Colors.blue),
|
||||
foregroundColor:
|
||||
MaterialStatePropertyAll(Colors.white),
|
||||
WidgetStatePropertyAll(Colors.white),
|
||||
),
|
||||
onPressed: () {
|
||||
validate();
|
||||
|
||||
@@ -3,15 +3,15 @@ import 'dart:developer';
|
||||
import 'package:dropdown_button2/dropdown_button2.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:sfm_app/feature/device_log/widgets/tag_widget.dart';
|
||||
import 'package:sfm_app/feature/devices/device_model.dart';
|
||||
import 'package:sfm_app/feature/device_log/device_logs_bloc.dart';
|
||||
import 'package:sfm_app/product/constant/icon/icon_constants.dart';
|
||||
import 'package:sfm_app/product/extention/context_extention.dart';
|
||||
import 'package:sfm_app/product/services/language_services.dart';
|
||||
import 'package:sfm_app/product/shared/shared_snack_bar.dart';
|
||||
import 'package:sfm_app/product/utils/date_time_utils.dart';
|
||||
import 'package:sfm_app/product/utils/device_utils.dart';
|
||||
import 'widgets/tag_widget.dart';
|
||||
import '../devices/device_model.dart';
|
||||
import 'device_logs_bloc.dart';
|
||||
import '../../product/constant/icon/icon_constants.dart';
|
||||
import '../../product/extention/context_extention.dart';
|
||||
import '../../product/services/language_services.dart';
|
||||
import '../../product/shared/shared_snack_bar.dart';
|
||||
import '../../product/utils/date_time_utils.dart';
|
||||
import '../../product/utils/device_utils.dart';
|
||||
|
||||
import '../../product/base/bloc/base_bloc.dart';
|
||||
import 'device_logs_model.dart';
|
||||
@@ -178,10 +178,10 @@ class _DeviceLogsScreenState extends State<DeviceLogsScreen> {
|
||||
Center(
|
||||
child: TextButton.icon(
|
||||
style: const ButtonStyle(
|
||||
backgroundColor: MaterialStatePropertyAll(
|
||||
Colors.green),
|
||||
foregroundColor: MaterialStatePropertyAll(
|
||||
Colors.white),
|
||||
backgroundColor:
|
||||
WidgetStatePropertyAll(Colors.green),
|
||||
foregroundColor:
|
||||
WidgetStatePropertyAll(Colors.white),
|
||||
),
|
||||
onPressed: () {
|
||||
if (fromDateApi.isEmpty) {
|
||||
@@ -278,7 +278,7 @@ class _DeviceLogsScreenState extends State<DeviceLogsScreen> {
|
||||
ListTile(
|
||||
subtitle:
|
||||
Text(DeviceUtils.instance.getDeviceSensorsLog(context, sensor)),
|
||||
leading: leadingList(sensor),
|
||||
// leading: leadingList(sensor),
|
||||
title: Text(
|
||||
DateTimeUtils.instance
|
||||
.convertCurrentMillisToDateTimeString(sensor.time ?? 0),
|
||||
@@ -310,7 +310,7 @@ class _DeviceLogsScreenState extends State<DeviceLogsScreen> {
|
||||
content = "Điều khiển";
|
||||
} else {
|
||||
boxColor = Colors.lightGreen;
|
||||
content = "Sự kiện";
|
||||
content = appLocalization(context).event_tag_title;
|
||||
}
|
||||
|
||||
return TagWidgetShared(
|
||||
|
||||
@@ -59,10 +59,10 @@ class _DetailDeviceScreenState extends State<DetailDeviceScreen> {
|
||||
|
||||
BoxDecoration boxDecoration = BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
color: Colors.grey.withOpacity(0.1),
|
||||
color: Colors.grey.withValues(alpha: 0.1),
|
||||
border: Border.all(
|
||||
width: 1,
|
||||
color: Colors.grey.withOpacity(0.6),
|
||||
color: Colors.grey.withValues(alpha: 0.6),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -439,7 +439,8 @@ class _DetailDeviceScreenState extends State<DetailDeviceScreen> {
|
||||
width: double.infinity,
|
||||
height: 20,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.grey.withOpacity(0.3),
|
||||
color: Colors.grey
|
||||
.withValues(alpha: 0.3),
|
||||
borderRadius:
|
||||
BorderRadius.circular(10),
|
||||
),
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import 'package:google_maps_cluster_manager/google_maps_cluster_manager.dart';
|
||||
import 'package:google_maps_cluster_manager_2/google_maps_cluster_manager_2.dart';
|
||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||
|
||||
// class Device {
|
||||
|
||||
@@ -187,7 +187,7 @@ class _DeviceUpdateScreenState extends State<DeviceUpdateScreen> {
|
||||
child: IconButton.filled(
|
||||
style: const ButtonStyle(
|
||||
backgroundColor:
|
||||
MaterialStatePropertyAll(
|
||||
WidgetStatePropertyAll(
|
||||
Colors
|
||||
.lightGreen)),
|
||||
// iconSize: 24,
|
||||
@@ -379,7 +379,7 @@ class _DeviceUpdateScreenState extends State<DeviceUpdateScreen> {
|
||||
decoration: BoxDecoration(
|
||||
borderRadius:
|
||||
const BorderRadius
|
||||
.all(
|
||||
.all(
|
||||
Radius.circular(
|
||||
20)),
|
||||
border: Border.all()),
|
||||
@@ -429,11 +429,11 @@ class _DeviceUpdateScreenState extends State<DeviceUpdateScreen> {
|
||||
child: TextButton(
|
||||
style: ButtonStyle(
|
||||
foregroundColor:
|
||||
MaterialStateProperty
|
||||
WidgetStateProperty
|
||||
.all(Colors
|
||||
.white),
|
||||
backgroundColor:
|
||||
MaterialStateProperty
|
||||
WidgetStateProperty
|
||||
.all(Colors
|
||||
.blue)),
|
||||
onPressed: () async {
|
||||
|
||||
@@ -51,7 +51,7 @@ class _DevicesManagerScreenState extends State<DevicesManagerScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// backgroundColor: Colors.grey.withOpacity(0.6),
|
||||
// backgroundColor: Colors.grey.withValues(alpha: 0.6),
|
||||
body: SafeArea(
|
||||
child: StreamBuilder<List<Device>>(
|
||||
stream: devicesManagerBloc.streamAllDevices,
|
||||
@@ -138,11 +138,10 @@ class _DevicesManagerScreenState extends State<DevicesManagerScreen> {
|
||||
IconButton(
|
||||
style: ButtonStyle(
|
||||
backgroundColor:
|
||||
MaterialStateProperty.all<Color>(
|
||||
WidgetStateProperty.all<Color>(
|
||||
Colors.green),
|
||||
iconColor:
|
||||
MaterialStateProperty.all<Color>(
|
||||
Colors.white)),
|
||||
iconColor: WidgetStateProperty.all<Color>(
|
||||
Colors.white)),
|
||||
onPressed: () {
|
||||
ScaffoldMessenger.of(context)
|
||||
.clearSnackBars();
|
||||
@@ -163,7 +162,7 @@ class _DevicesManagerScreenState extends State<DevicesManagerScreen> {
|
||||
),
|
||||
SizedBox(height: context.lowValue),
|
||||
Text(
|
||||
appLocalization(context).overview_message,
|
||||
appLocalization(context).overview_message,
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
|
||||
@@ -113,7 +113,7 @@ Future<Widget> notificationCard(
|
||||
alignment: Alignment.centerRight,
|
||||
child: OutlinedButton(
|
||||
style: const ButtonStyle(
|
||||
backgroundColor: MaterialStatePropertyAll(Colors.blueAccent)),
|
||||
backgroundColor: WidgetStatePropertyAll(Colors.blueAccent)),
|
||||
onPressed: () {},
|
||||
child: Text(
|
||||
appLocalization(context).detail_message,
|
||||
|
||||
@@ -15,7 +15,7 @@ class StatusCard extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: color.withOpacity(0.2),
|
||||
color: color.withValues(alpha: 0.2),
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
border: Border.all(
|
||||
color: color,
|
||||
|
||||
@@ -148,7 +148,7 @@ Future<Widget> warningCard(
|
||||
iconSize: 25,
|
||||
style: ButtonStyle(
|
||||
backgroundColor:
|
||||
MaterialStateProperty.all<Color>(Colors.blue[300]!),
|
||||
WidgetStateProperty.all<Color>(Colors.blue[300]!),
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
@@ -164,7 +164,7 @@ Future<Widget> warningCard(
|
||||
iconSize: 25,
|
||||
style: ButtonStyle(
|
||||
backgroundColor:
|
||||
MaterialStateProperty.all<Color>(Colors.blue[300]!),
|
||||
WidgetStateProperty.all<Color>(Colors.blue[300]!),
|
||||
),
|
||||
),
|
||||
SizedBox(width: context.mediumValue),
|
||||
@@ -174,7 +174,7 @@ Future<Widget> warningCard(
|
||||
child: OutlinedButton(
|
||||
style: ButtonStyle(
|
||||
backgroundColor:
|
||||
MaterialStatePropertyAll(backgroundColor)),
|
||||
WidgetStatePropertyAll(backgroundColor)),
|
||||
onPressed: () async {
|
||||
if (message ==
|
||||
appLocalization(context).button_fake_fire_message) {
|
||||
|
||||
@@ -335,8 +335,8 @@ class _DetailGroupScreenState extends State<DetailGroupScreen> {
|
||||
);
|
||||
},
|
||||
style: const ButtonStyle(
|
||||
backgroundColor: MaterialStatePropertyAll(Colors.red),
|
||||
foregroundColor: MaterialStatePropertyAll(Colors.white),
|
||||
backgroundColor: WidgetStatePropertyAll(Colors.red),
|
||||
foregroundColor: WidgetStatePropertyAll(Colors.white),
|
||||
),
|
||||
child: Text(
|
||||
appLocalization(context).delete_group_title,
|
||||
@@ -383,7 +383,8 @@ class _DetailGroupScreenState extends State<DetailGroupScreen> {
|
||||
child: Text(
|
||||
appLocalization(context)
|
||||
.confirm_button_content,
|
||||
style: const TextStyle(color: Colors.red),
|
||||
style: const TextStyle(
|
||||
color: Colors.red),
|
||||
))
|
||||
],
|
||||
);
|
||||
@@ -391,8 +392,8 @@ class _DetailGroupScreenState extends State<DetailGroupScreen> {
|
||||
});
|
||||
},
|
||||
style: const ButtonStyle(
|
||||
backgroundColor: MaterialStatePropertyAll(Colors.red),
|
||||
foregroundColor: MaterialStatePropertyAll(Colors.white),
|
||||
backgroundColor: WidgetStatePropertyAll(Colors.red),
|
||||
foregroundColor: WidgetStatePropertyAll(Colors.white),
|
||||
),
|
||||
child: Text(
|
||||
appLocalization(context).leave_group_title,
|
||||
@@ -437,16 +438,19 @@ class _DetailGroupScreenState extends State<DetailGroupScreen> {
|
||||
itemCount: devices.length,
|
||||
itemBuilder: (BuildContext context, int index) {
|
||||
return ListTile(
|
||||
title: Text(devices[index].alias != ""
|
||||
? devices[index].alias!
|
||||
: devices[index].name!,),
|
||||
title: Text(
|
||||
devices[index].alias != ""
|
||||
? devices[index].alias!
|
||||
: devices[index].name!,
|
||||
),
|
||||
trailing: Text(
|
||||
DeviceUtils.instance.checkStateDevice(
|
||||
context, devices[index].state!),
|
||||
style: TextStyle(
|
||||
color: DeviceUtils.instance
|
||||
.getTableRowColor(
|
||||
devices[index].state!,),),
|
||||
color: DeviceUtils.instance.getTableRowColor(
|
||||
devices[index].state!,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
@@ -454,7 +458,8 @@ class _DetailGroupScreenState extends State<DetailGroupScreen> {
|
||||
),
|
||||
],
|
||||
);
|
||||
},),
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
@@ -500,8 +505,8 @@ class _DetailGroupScreenState extends State<DetailGroupScreen> {
|
||||
Center(
|
||||
child: TextButton(
|
||||
style: const ButtonStyle(
|
||||
foregroundColor: MaterialStatePropertyAll(Colors.white),
|
||||
backgroundColor: MaterialStatePropertyAll(Colors.green)),
|
||||
foregroundColor: WidgetStatePropertyAll(Colors.white),
|
||||
backgroundColor: WidgetStatePropertyAll(Colors.green)),
|
||||
onPressed: () async {
|
||||
ScaffoldMessenger.of(context).hideCurrentSnackBar();
|
||||
String alias = aliasController.text;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
// ignore_for_file: use_build_context_synchronously
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
|
||||
@@ -36,74 +38,75 @@ class _GroupsScreenState extends State<GroupsScreen> {
|
||||
widget.role == ApplicationConstants.PARTICIPANT_GROUP) {
|
||||
interFamilyBloc.getAllGroup(widget.role);
|
||||
return StreamBuilder<List<Group>>(
|
||||
stream: interFamilyBloc.streamCurrentGroups,
|
||||
builder: (context, groupsSnapshot) {
|
||||
return Scaffold(
|
||||
body: groupsSnapshot.data?.isEmpty ?? true
|
||||
? const Center(
|
||||
child: CircularProgressIndicator(),
|
||||
)
|
||||
: ListView.builder(
|
||||
itemCount: groupsSnapshot.data!.length,
|
||||
itemBuilder: (context, index) {
|
||||
return ListTile(
|
||||
onTap: () {
|
||||
context.pushNamed(AppRoutes.GROUP_DETAIL.name,
|
||||
pathParameters: {
|
||||
"groupId": groupsSnapshot.data![index].id!
|
||||
},
|
||||
extra: widget.role);
|
||||
},
|
||||
leading: IconConstants.instance
|
||||
.getMaterialIcon(Icons.diversity_2),
|
||||
title: Text(
|
||||
groupsSnapshot.data![index].name ?? '',
|
||||
style: const TextStyle(fontWeight: FontWeight.bold),
|
||||
),
|
||||
subtitle: Text(
|
||||
groupsSnapshot.data![index].description ?? ""),
|
||||
trailing:
|
||||
widget.role == ApplicationConstants.OWNER_GROUP
|
||||
? PopupMenuButton(
|
||||
shape: const RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.only(
|
||||
bottomLeft: Radius.circular(8.0),
|
||||
bottomRight: Radius.circular(8.0),
|
||||
topLeft: Radius.circular(8.0),
|
||||
topRight: Radius.circular(8.0),
|
||||
),
|
||||
stream: interFamilyBloc.streamCurrentGroups,
|
||||
builder: (context, groupsSnapshot) {
|
||||
return Scaffold(
|
||||
body: groupsSnapshot.data?.isEmpty ?? true
|
||||
? const Center(
|
||||
child: CircularProgressIndicator(),
|
||||
)
|
||||
: ListView.builder(
|
||||
itemCount: groupsSnapshot.data!.length,
|
||||
itemBuilder: (context, index) {
|
||||
return ListTile(
|
||||
onTap: () {
|
||||
context.pushNamed(AppRoutes.GROUP_DETAIL.name,
|
||||
pathParameters: {
|
||||
"groupId": groupsSnapshot.data![index].id!
|
||||
},
|
||||
extra: widget.role);
|
||||
},
|
||||
leading: IconConstants.instance
|
||||
.getMaterialIcon(Icons.diversity_2),
|
||||
title: Text(
|
||||
groupsSnapshot.data![index].name ?? '',
|
||||
style: const TextStyle(fontWeight: FontWeight.bold),
|
||||
),
|
||||
subtitle:
|
||||
Text(groupsSnapshot.data![index].description ?? ""),
|
||||
trailing:
|
||||
widget.role == ApplicationConstants.OWNER_GROUP
|
||||
? PopupMenuButton(
|
||||
shape: const RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.only(
|
||||
bottomLeft: Radius.circular(8.0),
|
||||
bottomRight: Radius.circular(8.0),
|
||||
topLeft: Radius.circular(8.0),
|
||||
topRight: Radius.circular(8.0),
|
||||
),
|
||||
itemBuilder: (ctx) => [
|
||||
_buildPopupMenuItem(
|
||||
groupsSnapshot.data![index],
|
||||
context,
|
||||
appLocalization(context)
|
||||
.share_group_title,
|
||||
Icons.share,
|
||||
4),
|
||||
_buildPopupMenuItem(
|
||||
groupsSnapshot.data![index],
|
||||
context,
|
||||
appLocalization(context)
|
||||
.change_group_infomation_title,
|
||||
Icons.settings_backup_restore,
|
||||
2),
|
||||
_buildPopupMenuItem(
|
||||
groupsSnapshot.data![index],
|
||||
context,
|
||||
appLocalization(context)
|
||||
.delete_group_title,
|
||||
Icons.delete_forever_rounded,
|
||||
3),
|
||||
],
|
||||
icon: const Icon(Icons.more_horiz),
|
||||
)
|
||||
: const SizedBox.shrink(),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
});
|
||||
),
|
||||
itemBuilder: (ctx) => [
|
||||
_buildPopupMenuItem(
|
||||
groupsSnapshot.data![index],
|
||||
context,
|
||||
appLocalization(context)
|
||||
.share_group_title,
|
||||
Icons.share,
|
||||
4),
|
||||
_buildPopupMenuItem(
|
||||
groupsSnapshot.data![index],
|
||||
context,
|
||||
appLocalization(context)
|
||||
.change_group_infomation_title,
|
||||
Icons.settings_backup_restore,
|
||||
2),
|
||||
_buildPopupMenuItem(
|
||||
groupsSnapshot.data![index],
|
||||
context,
|
||||
appLocalization(context)
|
||||
.delete_group_title,
|
||||
Icons.delete_forever_rounded,
|
||||
3),
|
||||
],
|
||||
icon: const Icon(Icons.more_horiz),
|
||||
)
|
||||
: const SizedBox.shrink(),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'groups_model.dart';
|
||||
|
||||
shareGroup(BuildContext context, Group group) {
|
||||
showGeneralDialog(
|
||||
barrierColor: Colors.black.withOpacity(0.5),
|
||||
barrierColor: Colors.black.withValues(alpha: 0.5),
|
||||
transitionBuilder: (context, a1, a2, widget) {
|
||||
return Material(
|
||||
child: Scaffold(
|
||||
|
||||
@@ -2,8 +2,6 @@ import 'dart:async';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:sfm_app/product/base/bloc/base_bloc.dart';
|
||||
import 'package:sfm_app/product/constant/enums/app_theme_enums.dart';
|
||||
|
||||
import '../bell/bell_model.dart';
|
||||
|
||||
class MainBloc extends BlocBase {
|
||||
|
||||
@@ -5,8 +5,9 @@ import 'dart:developer';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:persistent_bottom_nav_bar_v2/persistent-tab-view.dart';
|
||||
// import 'package:persistent_bottom_nav_bar_v2/persistent-tab-view.dart';
|
||||
import 'package:badges/badges.dart' as badges;
|
||||
import 'package:persistent_bottom_nav_bar/persistent_bottom_nav_bar.dart';
|
||||
import '../home/home_bloc.dart';
|
||||
import '../../product/constant/app/app_constants.dart';
|
||||
import '../../product/constant/enums/app_route_enums.dart';
|
||||
@@ -336,11 +337,11 @@ class _MainScreenState extends State<MainScreen> with WidgetsBindingObserver {
|
||||
controller: controller,
|
||||
screens: _buildScreens(),
|
||||
items: _navBarsItems(),
|
||||
confineInSafeArea: true,
|
||||
// confineInSafeArea: true,
|
||||
handleAndroidBackButtonPress: true,
|
||||
resizeToAvoidBottomInset: true,
|
||||
stateManagement: true,
|
||||
hideNavigationBarWhenKeyboardShows: true,
|
||||
// hideNavigationBarWhenKeyboardShows: true,
|
||||
backgroundColor:
|
||||
themeModeSnapshot.data! ? Colors.white : Colors.black,
|
||||
decoration: NavBarDecoration(
|
||||
@@ -348,16 +349,16 @@ class _MainScreenState extends State<MainScreen> with WidgetsBindingObserver {
|
||||
colorBehindNavBar:
|
||||
themeModeSnapshot.data! ? Colors.white : Colors.black,
|
||||
),
|
||||
popAllScreensOnTapOfSelectedTab: true,
|
||||
itemAnimationProperties: const ItemAnimationProperties(
|
||||
duration: Duration(milliseconds: 200),
|
||||
curve: Curves.bounceInOut,
|
||||
),
|
||||
screenTransitionAnimation: const ScreenTransitionAnimation(
|
||||
animateTabTransition: true,
|
||||
curve: Curves.linear,
|
||||
duration: Duration(milliseconds: 200),
|
||||
),
|
||||
// popAllScreensOnTapOfSelectedTab: true,
|
||||
// itemAnimationProperties: const ItemAnimationProperties(
|
||||
// duration: Duration(milliseconds: 200),
|
||||
// curve: Curves.bounceInOut,
|
||||
// ),
|
||||
// screenTransitionAnimation: const ScreenTransitionAnimation(
|
||||
// animateTabTransition: true,
|
||||
// curve: Curves.linear,
|
||||
// duration: Duration(milliseconds: 200),
|
||||
// ),
|
||||
navBarStyle: NavBarStyle.style4,
|
||||
),
|
||||
);
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'dart:developer';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:geolocator/geolocator.dart';
|
||||
import 'package:google_maps_cluster_manager/google_maps_cluster_manager.dart';
|
||||
import 'package:google_maps_cluster_manager_2/google_maps_cluster_manager_2.dart';
|
||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||
import 'package:sfm_app/feature/devices/device_model.dart';
|
||||
import 'package:sfm_app/feature/map/map_bloc.dart';
|
||||
|
||||
@@ -94,8 +94,8 @@ onTapMarker(
|
||||
);
|
||||
},
|
||||
style: const ButtonStyle(
|
||||
backgroundColor: MaterialStatePropertyAll(Colors.blue),
|
||||
foregroundColor: MaterialStatePropertyAll(Colors.white),
|
||||
backgroundColor: WidgetStatePropertyAll(Colors.blue),
|
||||
foregroundColor: WidgetStatePropertyAll(Colors.white),
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
@@ -127,8 +127,8 @@ onTapMarker(
|
||||
);
|
||||
},
|
||||
style: const ButtonStyle(
|
||||
backgroundColor: MaterialStatePropertyAll(Colors.pink),
|
||||
foregroundColor: MaterialStatePropertyAll(Colors.white),
|
||||
backgroundColor: WidgetStatePropertyAll(Colors.pink),
|
||||
foregroundColor: WidgetStatePropertyAll(Colors.white),
|
||||
),
|
||||
icon: IconConstants.instance
|
||||
.getMaterialIcon(Icons.local_hospital),
|
||||
@@ -156,8 +156,8 @@ onTapMarker(
|
||||
);
|
||||
},
|
||||
style: const ButtonStyle(
|
||||
backgroundColor: MaterialStatePropertyAll(Colors.red),
|
||||
foregroundColor: MaterialStatePropertyAll(Colors.white),
|
||||
backgroundColor: WidgetStatePropertyAll(Colors.red),
|
||||
foregroundColor: WidgetStatePropertyAll(Colors.white),
|
||||
),
|
||||
icon: IconConstants.instance
|
||||
.getMaterialIcon(Icons.fire_truck_outlined),
|
||||
@@ -279,7 +279,7 @@ class DeviceSource extends DataTableSource {
|
||||
String deviceState =
|
||||
DeviceUtils.instance.checkStateDevice(context, device.state!);
|
||||
return DataRow.byIndex(
|
||||
color: MaterialStatePropertyAll(
|
||||
color: WidgetStatePropertyAll(
|
||||
DeviceUtils.instance.getTableRowColor(device.state ?? -1),
|
||||
),
|
||||
index: index,
|
||||
|
||||
@@ -112,7 +112,7 @@ showDirections(
|
||||
),
|
||||
style: ButtonStyle(
|
||||
backgroundColor:
|
||||
MaterialStateProperty.all<Color>(Colors.blue[300]!),
|
||||
WidgetStateProperty.all<Color>(Colors.blue[300]!),
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
@@ -158,9 +158,9 @@ showNearPlacesSideSheet(
|
||||
child: ElevatedButton.icon(
|
||||
style: const ButtonStyle(
|
||||
backgroundColor:
|
||||
MaterialStatePropertyAll(Colors.blue),
|
||||
WidgetStatePropertyAll(Colors.blue),
|
||||
foregroundColor:
|
||||
MaterialStatePropertyAll(Colors.white),
|
||||
WidgetStatePropertyAll(Colors.white),
|
||||
),
|
||||
onPressed: () async {
|
||||
Navigator.pop(modalBottomSheetContext);
|
||||
|
||||
@@ -221,10 +221,10 @@ class _DeviceNotificationSettingsScreenState
|
||||
child: TextButton(
|
||||
style: ButtonStyle(
|
||||
backgroundColor:
|
||||
MaterialStateProperty.all<Color>(
|
||||
WidgetStateProperty.all<Color>(
|
||||
Colors.green),
|
||||
foregroundColor:
|
||||
MaterialStateProperty.all<Color>(
|
||||
WidgetStateProperty.all<Color>(
|
||||
Colors.white)),
|
||||
onPressed: () async {
|
||||
updateDeviceNotification(
|
||||
|
||||
@@ -238,9 +238,9 @@ changeUserInfomation(
|
||||
},
|
||||
style: const ButtonStyle(
|
||||
backgroundColor:
|
||||
MaterialStatePropertyAll(Colors.blue),
|
||||
WidgetStatePropertyAll(Colors.blue),
|
||||
foregroundColor:
|
||||
MaterialStatePropertyAll(Colors.white),
|
||||
WidgetStatePropertyAll(Colors.white),
|
||||
),
|
||||
child: Text(appLocalization(context)
|
||||
.update_button_content),
|
||||
@@ -418,9 +418,9 @@ changeUserPassword(BuildContext context, SettingsBloc settingsBloc) {
|
||||
},
|
||||
style: const ButtonStyle(
|
||||
backgroundColor:
|
||||
MaterialStatePropertyAll(Colors.blue),
|
||||
WidgetStatePropertyAll(Colors.blue),
|
||||
foregroundColor:
|
||||
MaterialStatePropertyAll(Colors.white),
|
||||
WidgetStatePropertyAll(Colors.white),
|
||||
),
|
||||
child: Text(appLocalization(context)
|
||||
.update_button_content),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:firebase_core/firebase_core.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:sfm_app/product/services/theme_services.dart';
|
||||
import 'product/services/theme_services.dart';
|
||||
import 'product/services/language_services.dart';
|
||||
import 'feature/main/main_bloc.dart';
|
||||
import 'product/base/bloc/base_bloc.dart';
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
"choose_date_start_datePicker": "Start from",
|
||||
"choose_date_end_datePicker": "End",
|
||||
"main_no_data": "No data yet.",
|
||||
"event_tag_title": "Event",
|
||||
"description_NOTUSE3": "This is english language in InterFamily",
|
||||
"interfamily_page_name": "InterFamily",
|
||||
"my_group_title": "My group",
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
"choose_date_start_datePicker": "Bắt đầu từ",
|
||||
"choose_date_end_datePicker": "Kết thúc",
|
||||
"main_no_data": "Chưa có dữ liệu.",
|
||||
"event_tag_title": "Sự kiện",
|
||||
"description_NOTUSE3": "This is vietnamese language in InterFamily",
|
||||
"interfamily_page_name": "Liên gia",
|
||||
"my_group_title": "Group của tôi",
|
||||
|
||||
@@ -381,6 +381,4 @@ class APIServices {
|
||||
.getDataFromServerWithParams(APIPathConstants.DEVICE_LOGS_PATH, params);
|
||||
return body;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ class _NearBySearchSFMState
|
||||
PlacesAutocompleteResponse subscriptionResponse =
|
||||
PlacesAutocompleteResponse.fromJson(response.data);
|
||||
|
||||
if (text.length == 0) {
|
||||
if (text.isEmpty) {
|
||||
alPredictions.clear();
|
||||
this._overlayEntry!.remove();
|
||||
return;
|
||||
|
||||
@@ -39,7 +39,7 @@ Widget sharedLineChart(String chartName, List<SensorLogs> sensors) {
|
||||
),
|
||||
lineTouchData: LineTouchData(
|
||||
touchTooltipData: LineTouchTooltipData(
|
||||
tooltipBgColor: Colors.grey.withOpacity(0.3),
|
||||
tooltipBgColor: Colors.grey.withValues(alpha: 0.3),
|
||||
getTooltipItems: (List<LineBarSpot> touchedSpots) {
|
||||
return touchedSpots.map((spot) {
|
||||
final index = spot.x.toInt();
|
||||
@@ -55,7 +55,7 @@ Widget sharedLineChart(String chartName, List<SensorLogs> sensors) {
|
||||
),
|
||||
lineBarsData: [
|
||||
LineChartBarData(
|
||||
color: Colors.green.withOpacity(0.8),
|
||||
color: Colors.green.withValues(alpha: 0.8),
|
||||
barWidth: 5,
|
||||
curveSmoothness: 0.35,
|
||||
spots: sensors
|
||||
@@ -74,7 +74,7 @@ Widget sharedLineChart(String chartName, List<SensorLogs> sensors) {
|
||||
),
|
||||
belowBarData: BarAreaData(
|
||||
show: true,
|
||||
color: Colors.green.withOpacity(0.2),
|
||||
color: Colors.green.withValues(alpha: 0.2),
|
||||
),
|
||||
)
|
||||
],
|
||||
@@ -85,7 +85,7 @@ Widget sharedLineChart(String chartName, List<SensorLogs> sensors) {
|
||||
right: BorderSide.none,
|
||||
left: BorderSide.none,
|
||||
bottom: BorderSide(
|
||||
color: Colors.black.withOpacity(0.7),
|
||||
color: Colors.black.withValues(alpha: 0.7),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user