fix(ui): Fix some ui bugs in DetailDeviceScreen, HomeScreen, UnregisterDeviceDialog
This commit is contained in:
@@ -105,6 +105,8 @@ class DetailDeviceBloc extends BlocBase {
|
|||||||
}
|
}
|
||||||
sensorTemps = sensorTemps.reversed.toList();
|
sensorTemps = sensorTemps.reversed.toList();
|
||||||
sinkSensorTemps.add(sensorTemps);
|
sinkSensorTemps.add(sensorTemps);
|
||||||
|
} else{
|
||||||
|
sinkSensorTemps.add([]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
// ignore_for_file: use_build_context_synchronously
|
// ignore_for_file: use_build_context_synchronously
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import '../../bloc/devices_manager_bloc.dart';
|
||||||
import '../../product/constant/enums/role_enums.dart';
|
import '../../product/constant/enums/role_enums.dart';
|
||||||
import '../../product/services/api_services.dart';
|
import '../../product/services/api_services.dart';
|
||||||
import '../../product/services/language_services.dart';
|
import '../../product/services/language_services.dart';
|
||||||
import '../../product/utils/response_status_utils.dart';
|
import '../../product/utils/response_status_utils.dart';
|
||||||
|
|
||||||
handleDeleteDevice(BuildContext context, String thingID, String role) {
|
handleDeleteDevice(BuildContext context, DevicesManagerBloc devicesManagerBloc,
|
||||||
|
extID, String role) {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (dialogContext) {
|
builder: (dialogContext) {
|
||||||
@@ -26,9 +28,10 @@ handleDeleteDevice(BuildContext context, String thingID, String role) {
|
|||||||
appLocalization(dialogContext).delete_button_content,
|
appLocalization(dialogContext).delete_button_content,
|
||||||
style: const TextStyle(color: Colors.red),
|
style: const TextStyle(color: Colors.red),
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () async {
|
||||||
deleteOrUnregisterDevice(context, thingID, role);
|
await deleteOrUnregisterDevice(
|
||||||
Navigator.of(context).pop();
|
context, devicesManagerBloc, extID, role);
|
||||||
|
Navigator.of(dialogContext).pop();
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@@ -37,12 +40,12 @@ handleDeleteDevice(BuildContext context, String thingID, String role) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteOrUnregisterDevice(
|
deleteOrUnregisterDevice(BuildContext context, DevicesManagerBloc devicesBloc,
|
||||||
BuildContext context, String thingID, String role) async {
|
String extID, String role) async {
|
||||||
APIServices apiServices = APIServices();
|
APIServices apiServices = APIServices();
|
||||||
if (role == RoleEnums.USER.name) {
|
if (role == RoleEnums.USER.name) {
|
||||||
Map<String, dynamic> body = {
|
Map<String, dynamic> body = {
|
||||||
"thing_id": thingID,
|
"ext_id": extID,
|
||||||
};
|
};
|
||||||
int statusCode = await apiServices.unregisterDevice(body);
|
int statusCode = await apiServices.unregisterDevice(body);
|
||||||
showSnackBarResponseByStatusCode(
|
showSnackBarResponseByStatusCode(
|
||||||
@@ -50,12 +53,14 @@ deleteOrUnregisterDevice(
|
|||||||
statusCode,
|
statusCode,
|
||||||
appLocalization(context).notification_delete_device_success,
|
appLocalization(context).notification_delete_device_success,
|
||||||
appLocalization(context).notification_delete_device_failed);
|
appLocalization(context).notification_delete_device_failed);
|
||||||
|
devicesBloc.getDeviceByState(-2);
|
||||||
} else {
|
} else {
|
||||||
int statusCode = await apiServices.deleteDeviceByAdmin(thingID);
|
int statusCode = await apiServices.deleteDeviceByAdmin(extID);
|
||||||
showSnackBarResponseByStatusCode(
|
showSnackBarResponseByStatusCode(
|
||||||
context,
|
context,
|
||||||
statusCode,
|
statusCode,
|
||||||
appLocalization(context).notification_delete_device_success,
|
appLocalization(context).notification_delete_device_success,
|
||||||
appLocalization(context).notification_delete_device_failed);
|
appLocalization(context).notification_delete_device_failed);
|
||||||
|
devicesBloc.getDeviceByState(-2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -540,6 +540,12 @@ class _DetailDeviceScreenState extends State<DetailDeviceScreen> {
|
|||||||
child: CircularProgressIndicator(),
|
child: CircularProgressIndicator(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
} else if (sensorTempsSnapshot.data!.isEmpty) {
|
||||||
|
return Center(
|
||||||
|
child: Text(
|
||||||
|
appLocalization(context).no_data_message,
|
||||||
|
),
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
return AspectRatio(
|
return AspectRatio(
|
||||||
aspectRatio: 3,
|
aspectRatio: 3,
|
||||||
|
|||||||
@@ -322,7 +322,7 @@ class DeviceSource extends DataTableSource {
|
|||||||
icon: const Icon(Icons.build, color: Colors.blue)),
|
icon: const Icon(Icons.build, color: Colors.blue)),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
handleDeleteDevice(context, device.thingId!, role);
|
handleDeleteDevice(context,devicesBloc, device.extId!, role);
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.delete, color: Colors.red)),
|
icon: const Icon(Icons.delete, color: Colors.red)),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
|
import 'package:intl/intl.dart';
|
||||||
import 'package:sfm_app/feature/home/device_alias_model.dart';
|
import 'package:sfm_app/feature/home/device_alias_model.dart';
|
||||||
import '../../../product/constant/enums/app_route_enums.dart';
|
import '../../../product/constant/enums/app_route_enums.dart';
|
||||||
import '../../../product/constant/image/image_constants.dart';
|
import '../../../product/constant/image/image_constants.dart';
|
||||||
@@ -19,7 +20,15 @@ Future<Widget> notificationCard(BuildContext context, String notiticationType,
|
|||||||
.getFullDeviceLocation(context, device.areaPath!);
|
.getFullDeviceLocation(context, device.areaPath!);
|
||||||
}
|
}
|
||||||
String path = "";
|
String path = "";
|
||||||
DateTime time = DateTime.now();
|
// DateTime time = DateTime.now();
|
||||||
|
String time = "";
|
||||||
|
for (var sensor in device.status!.sensors!) {
|
||||||
|
if (sensor.name! == "7") {
|
||||||
|
DateTime dateTime =
|
||||||
|
DateTime.fromMillisecondsSinceEpoch((sensor.time!) * 1000);
|
||||||
|
time = DateFormat('yyyy-MM-dd HH:mm:ss').format(dateTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (notiticationType == "lowBattery") {
|
if (notiticationType == "lowBattery") {
|
||||||
path = ImageConstants.instance.getImage("low_battery");
|
path = ImageConstants.instance.getImage("low_battery");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user