fix(bugs): update message when in progress
This commit is contained in:
@@ -4,6 +4,7 @@ import 'dart:developer';
|
|||||||
|
|
||||||
import 'package:sfm_app/feature/devices/device_model.dart';
|
import 'package:sfm_app/feature/devices/device_model.dart';
|
||||||
import 'package:sfm_app/product/base/bloc/base_bloc.dart';
|
import 'package:sfm_app/product/base/bloc/base_bloc.dart';
|
||||||
|
import 'package:sfm_app/product/constant/app/app_constants.dart';
|
||||||
import 'package:sfm_app/product/services/api_services.dart';
|
import 'package:sfm_app/product/services/api_services.dart';
|
||||||
import 'package:sfm_app/product/utils/date_time_utils.dart';
|
import 'package:sfm_app/product/utils/date_time_utils.dart';
|
||||||
|
|
||||||
@@ -28,6 +29,10 @@ class DeviceLogsBloc extends BlocBase {
|
|||||||
StreamSink<List<SensorLogs>> get sinkSensors => sensors.sink;
|
StreamSink<List<SensorLogs>> get sinkSensors => sensors.sink;
|
||||||
Stream<List<SensorLogs>> get streamSensors => sensors.stream;
|
Stream<List<SensorLogs>> get streamSensors => sensors.stream;
|
||||||
|
|
||||||
|
final message = StreamController<String>.broadcast();
|
||||||
|
StreamSink<String> get sinkmessage => message.sink;
|
||||||
|
Stream<String> get streammessage => message.stream;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {}
|
void dispose() {}
|
||||||
|
|
||||||
@@ -49,11 +54,10 @@ class DeviceLogsBloc extends BlocBase {
|
|||||||
DateTime fromDate,
|
DateTime fromDate,
|
||||||
List<SensorLogs> sensors,
|
List<SensorLogs> sensors,
|
||||||
) async {
|
) async {
|
||||||
log("SensorLength: ${sensors.length}");
|
sinkmessage.add(ApplicationConstants.LOADING);
|
||||||
String fromDateString =
|
String fromDateString =
|
||||||
DateTimeUtils.instance.formatDateTimeToString(fromDate);
|
DateTimeUtils.instance.formatDateTimeToString(fromDate);
|
||||||
String now = DateTimeUtils.instance.formatDateTimeToString(DateTime.now());
|
String now = DateTimeUtils.instance.formatDateTimeToString(DateTime.now());
|
||||||
// List<SensorLogs> sensors = [];
|
|
||||||
Map<String, dynamic> params = {
|
Map<String, dynamic> params = {
|
||||||
'thing_id': thingID,
|
'thing_id': thingID,
|
||||||
'from': fromDateString,
|
'from': fromDateString,
|
||||||
@@ -74,8 +78,9 @@ class DeviceLogsBloc extends BlocBase {
|
|||||||
for (var sensor in devicesListLog.sensors!) {
|
for (var sensor in devicesListLog.sensors!) {
|
||||||
sensors.add(sensor);
|
sensors.add(sensor);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
sinkmessage.add(ApplicationConstants.NO_DATA);
|
||||||
}
|
}
|
||||||
|
|
||||||
sinkSensors.add(sensors);
|
sinkSensors.add(sensors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import 'dart:developer';
|
|||||||
import 'package:dropdown_button2/dropdown_button2.dart';
|
import 'package:dropdown_button2/dropdown_button2.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
import 'package:sfm_app/product/constant/app/app_constants.dart';
|
||||||
import 'widgets/tag_widget.dart';
|
import 'widgets/tag_widget.dart';
|
||||||
import '../devices/device_model.dart';
|
import '../devices/device_model.dart';
|
||||||
import '../../bloc/device_logs_bloc.dart';
|
import '../../bloc/device_logs_bloc.dart';
|
||||||
@@ -116,9 +117,7 @@ class _DeviceLogsScreenState extends State<DeviceLogsScreen> {
|
|||||||
thingID = value!;
|
thingID = value!;
|
||||||
setState(() {});
|
setState(() {});
|
||||||
},
|
},
|
||||||
onSaved: (value) {
|
onSaved: (value) {},
|
||||||
log("On Saved");
|
|
||||||
},
|
|
||||||
iconStyleData: const IconStyleData(
|
iconStyleData: const IconStyleData(
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
Icons.arrow_drop_down,
|
Icons.arrow_drop_down,
|
||||||
@@ -217,47 +216,56 @@ class _DeviceLogsScreenState extends State<DeviceLogsScreen> {
|
|||||||
height: context.lowValue,
|
height: context.lowValue,
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: sensorsSnapshot.data?.isEmpty ?? false
|
child: (() {
|
||||||
? Center(
|
if (sensorsSnapshot.data?.isEmpty ?? false) {
|
||||||
child: Text(appLocalization(context)
|
return StreamBuilder<String>(
|
||||||
.no_data_message),
|
stream: deviceLogsBloc.streammessage,
|
||||||
)
|
builder: (context, messageSnapshot) {
|
||||||
: RefreshIndicator(
|
return Center(
|
||||||
onRefresh: refresh,
|
child: Text(getMessageData(
|
||||||
child: ListView.builder(
|
messageSnapshot.data ?? '',
|
||||||
controller: controller,
|
)),
|
||||||
itemCount:
|
);
|
||||||
sensorsSnapshot.data!.length + 1,
|
},
|
||||||
itemBuilder: (context, index) {
|
);
|
||||||
if (index <
|
} else {
|
||||||
sensorsSnapshot.data!.length) {
|
return RefreshIndicator(
|
||||||
return logDetail(
|
onRefresh: refresh,
|
||||||
sensorsSnapshot.data![index],
|
child: ListView.builder(
|
||||||
index,
|
controller: controller,
|
||||||
);
|
itemCount: sensorsSnapshot.data!.length + 1,
|
||||||
} else {
|
itemBuilder: (context, index) {
|
||||||
return Padding(
|
if (index <
|
||||||
padding: context.paddingLow,
|
sensorsSnapshot.data!.length) {
|
||||||
child: StreamBuilder<bool>(
|
return logDetail(
|
||||||
stream:
|
sensorsSnapshot.data![index],
|
||||||
deviceLogsBloc.streamHasMore,
|
index,
|
||||||
builder:
|
);
|
||||||
(context, hasMoreSnapshot) {
|
} else {
|
||||||
return Center(
|
return Padding(
|
||||||
child: hasMoreSnapshot.data ??
|
padding: context.paddingLow,
|
||||||
hasMore
|
child: StreamBuilder<bool>(
|
||||||
? const CircularProgressIndicator()
|
stream:
|
||||||
: Text(appLocalization(
|
deviceLogsBloc.streamHasMore,
|
||||||
context)
|
builder:
|
||||||
.main_no_data),
|
(context, hasMoreSnapshot) {
|
||||||
);
|
return Center(
|
||||||
},
|
child: hasMoreSnapshot.data ??
|
||||||
),
|
hasMore
|
||||||
);
|
? const CircularProgressIndicator()
|
||||||
}
|
: Text(
|
||||||
},
|
appLocalization(context)
|
||||||
),
|
.main_no_data),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
),
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
})(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -272,13 +280,22 @@ class _DeviceLogsScreenState extends State<DeviceLogsScreen> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String getMessageData(String data) {
|
||||||
|
if (data == ApplicationConstants.LOADING) {
|
||||||
|
return appLocalization(context).loading_message;
|
||||||
|
} else if (data == ApplicationConstants.NO_DATA) {
|
||||||
|
return appLocalization(context).main_no_data;
|
||||||
|
} else {
|
||||||
|
return appLocalization(context).no_data_message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Widget logDetail(SensorLogs sensor, int index) {
|
Widget logDetail(SensorLogs sensor, int index) {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
ListTile(
|
ListTile(
|
||||||
subtitle:
|
subtitle:
|
||||||
Text(DeviceUtils.instance.getDeviceSensorsLog(context, sensor)),
|
Text(DeviceUtils.instance.getDeviceSensorsLog(context, sensor)),
|
||||||
// leading: leadingList(sensor),
|
|
||||||
title: Text(
|
title: Text(
|
||||||
DateTimeUtils.instance
|
DateTimeUtils.instance
|
||||||
.convertCurrentMillisToDateTimeString(sensor.time ?? 0),
|
.convertCurrentMillisToDateTimeString(sensor.time ?? 0),
|
||||||
|
|||||||
Reference in New Issue
Block a user