Merge to main #1
|
|
@ -0,0 +1,30 @@
|
||||||
|
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
||||||
|
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
|
||||||
|
class ErrorDataStateWidget extends StatelessWidget {
|
||||||
|
const ErrorDataStateWidget({
|
||||||
|
super.key,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Center(
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Icon(
|
||||||
|
BootstrapIcons.exclamation_circle,
|
||||||
|
color: Colors.grey.shade400,
|
||||||
|
),
|
||||||
|
SizedBox(height: 8.h),
|
||||||
|
Text(
|
||||||
|
'Terjadi Kesalahan',
|
||||||
|
style: AppTheme.labelSmall,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,10 +3,10 @@ import 'package:bootstrap_icons/bootstrap_icons.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
|
||||||
class GraphicErrorWidget extends StatelessWidget {
|
class NoDataStateWidget extends StatelessWidget {
|
||||||
const GraphicErrorWidget({super.key, required this.message});
|
const NoDataStateWidget({
|
||||||
|
super.key,
|
||||||
final String message;
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|
@ -14,9 +14,15 @@ class GraphicErrorWidget extends StatelessWidget {
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Icon(BootstrapIcons.exclamation_circle, color: Colors.grey.shade400),
|
Icon(
|
||||||
|
BootstrapIcons.database_fill_x,
|
||||||
|
color: Colors.grey.shade400,
|
||||||
|
),
|
||||||
SizedBox(height: 8.h),
|
SizedBox(height: 8.h),
|
||||||
Text(message, style: AppTheme.labelSmall),
|
Text(
|
||||||
|
'Tidak Ada Data',
|
||||||
|
style: AppTheme.labelSmall,
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import 'dart:convert';
|
// import 'dart:convert';
|
||||||
|
|
||||||
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
||||||
import 'package:agrilink_vocpro/domain/service/app_service.dart';
|
import 'package:agrilink_vocpro/domain/service/app_service.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
// import 'package:flutter/services.dart';
|
||||||
import 'package:googleapis_auth/auth_io.dart';
|
// import 'package:googleapis_auth/auth_io.dart';
|
||||||
import 'package:http/http.dart' as http;
|
// import 'package:http/http.dart' as http;
|
||||||
|
|
||||||
class AuthProvider extends ChangeNotifier {
|
class AuthProvider extends ChangeNotifier {
|
||||||
TextEditingController emailController = TextEditingController();
|
TextEditingController emailController = TextEditingController();
|
||||||
|
|
@ -80,30 +80,30 @@ class AuthProvider extends ChangeNotifier {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> getAccessToken() async {
|
// Future<void> getAccessToken() async {
|
||||||
try {
|
// try {
|
||||||
final serviceAccountJson = await rootBundle.loadString(
|
// final serviceAccountJson = await rootBundle.loadString(
|
||||||
'assets/json/agrilink-vocpro-b37f9-firebase-adminsdk-a4f6g-e6565344e3.json',
|
// 'assets/json/agrilink-vocpro-b37f9-firebase-adminsdk-a4f6g-e6565344e3.json',
|
||||||
);
|
// );
|
||||||
|
|
||||||
final accountCredentials = ServiceAccountCredentials.fromJson(
|
// final accountCredentials = ServiceAccountCredentials.fromJson(
|
||||||
json.decode(serviceAccountJson),
|
// json.decode(serviceAccountJson),
|
||||||
);
|
// );
|
||||||
|
|
||||||
const scope = ['https://www.googleapis.com/auth/firebase.messaging'];
|
// const scope = ['https://www.googleapis.com/auth/firebase.messaging'];
|
||||||
|
|
||||||
final client = http.Client();
|
// final client = http.Client();
|
||||||
|
|
||||||
try {
|
// try {
|
||||||
final accessCredential = await obtainAccessCredentialsViaServiceAccount(
|
// final accessCredential = await obtainAccessCredentialsViaServiceAccount(
|
||||||
accountCredentials, scope, client);
|
// accountCredentials, scope, client);
|
||||||
final accessToken = accessCredential.accessToken.data;
|
// final accessToken = accessCredential.accessToken.data;
|
||||||
print('Access Token: $accessToken');
|
// print('Access Token: $accessToken');
|
||||||
} catch (e) {
|
// } catch (e) {
|
||||||
print('Error: $e');
|
// print('Error: $e');
|
||||||
}
|
// }
|
||||||
} catch (e) {
|
// } catch (e) {
|
||||||
print('Error 2: $e');
|
// print('Error 2: $e');
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
||||||
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/error_data_state_widget.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/no_data_state_widget.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/detail_pages/conductivity/provider/conductivity_provider.dart';
|
import 'package:agrilink_vocpro/features/home/detail_pages/conductivity/provider/conductivity_provider.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_error_widget.dart';
|
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
||||||
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
|
|
@ -146,9 +147,9 @@ class ConductivityScreen extends StatelessWidget {
|
||||||
maxValue: 1,
|
maxValue: 1,
|
||||||
);
|
);
|
||||||
case ResultState.error:
|
case ResultState.error:
|
||||||
return const GraphicErrorWidget(message: 'Terjadi Kesalahan');
|
return const ErrorDataStateWidget();
|
||||||
case ResultState.noData:
|
case ResultState.noData:
|
||||||
return const GraphicErrorWidget(message: 'Tidak Ada Data');
|
return const NoDataStateWidget();
|
||||||
case ResultState.initial:
|
case ResultState.initial:
|
||||||
default:
|
default:
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
||||||
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/error_data_state_widget.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/no_data_state_widget.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/detail_pages/nitrogen/provider/nitrogen_provider.dart';
|
import 'package:agrilink_vocpro/features/home/detail_pages/nitrogen/provider/nitrogen_provider.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_error_widget.dart';
|
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
||||||
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
|
|
@ -146,9 +147,9 @@ class NitrogenScreen extends StatelessWidget {
|
||||||
maxValue: 1,
|
maxValue: 1,
|
||||||
);
|
);
|
||||||
case ResultState.error:
|
case ResultState.error:
|
||||||
return const GraphicErrorWidget(message: 'Terjadi Kesalahan');
|
return const ErrorDataStateWidget();
|
||||||
case ResultState.noData:
|
case ResultState.noData:
|
||||||
return const GraphicErrorWidget(message: 'Tidak Ada Data');
|
return const NoDataStateWidget();
|
||||||
case ResultState.initial:
|
case ResultState.initial:
|
||||||
default:
|
default:
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
||||||
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/error_data_state_widget.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/no_data_state_widget.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/detail_pages/ph/provider/ph_provider.dart';
|
import 'package:agrilink_vocpro/features/home/detail_pages/ph/provider/ph_provider.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/detail_pages/ph/widget/ph_bar_pointer.dart';
|
import 'package:agrilink_vocpro/features/home/detail_pages/ph/widget/ph_bar_pointer.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_error_widget.dart';
|
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
||||||
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
|
|
@ -137,9 +138,9 @@ class PhScreen extends StatelessWidget {
|
||||||
maxValue: 14,
|
maxValue: 14,
|
||||||
);
|
);
|
||||||
case ResultState.error:
|
case ResultState.error:
|
||||||
return const GraphicErrorWidget(message: 'Terjadi Kesalahan');
|
return const ErrorDataStateWidget();
|
||||||
case ResultState.noData:
|
case ResultState.noData:
|
||||||
return const GraphicErrorWidget(message: 'Tidak Ada Data');
|
return const NoDataStateWidget();
|
||||||
case ResultState.initial:
|
case ResultState.initial:
|
||||||
default:
|
default:
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
||||||
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/error_data_state_widget.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/no_data_state_widget.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/detail_pages/phosphorus/provider/phosporus_provider.dart';
|
import 'package:agrilink_vocpro/features/home/detail_pages/phosphorus/provider/phosporus_provider.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_error_widget.dart';
|
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
||||||
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
|
|
@ -146,9 +147,9 @@ class PhosphorusScreen extends StatelessWidget {
|
||||||
maxValue: 10,
|
maxValue: 10,
|
||||||
);
|
);
|
||||||
case ResultState.error:
|
case ResultState.error:
|
||||||
return const GraphicErrorWidget(message: 'Terjadi Kesalahan');
|
return const ErrorDataStateWidget();
|
||||||
case ResultState.noData:
|
case ResultState.noData:
|
||||||
return const GraphicErrorWidget(message: 'Tidak Ada Data');
|
return const NoDataStateWidget();
|
||||||
case ResultState.initial:
|
case ResultState.initial:
|
||||||
default:
|
default:
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
||||||
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/error_data_state_widget.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/no_data_state_widget.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/detail_pages/potassium/provider/potassium_provider.dart';
|
import 'package:agrilink_vocpro/features/home/detail_pages/potassium/provider/potassium_provider.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_error_widget.dart';
|
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
||||||
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
|
|
@ -146,9 +147,9 @@ class PotassiumScreen extends StatelessWidget {
|
||||||
maxValue: 1,
|
maxValue: 1,
|
||||||
);
|
);
|
||||||
case ResultState.error:
|
case ResultState.error:
|
||||||
return const GraphicErrorWidget(message: 'Terjadi Kesalahan');
|
return const ErrorDataStateWidget();
|
||||||
case ResultState.noData:
|
case ResultState.noData:
|
||||||
return const GraphicErrorWidget(message: 'Tidak Ada Data');
|
return const NoDataStateWidget();
|
||||||
case ResultState.initial:
|
case ResultState.initial:
|
||||||
default:
|
default:
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
||||||
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/error_data_state_widget.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/no_data_state_widget.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/detail_pages/soil_moisture/provider/soil_moisture_provider.dart';
|
import 'package:agrilink_vocpro/features/home/detail_pages/soil_moisture/provider/soil_moisture_provider.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_error_widget.dart';
|
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
||||||
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
|
|
@ -176,9 +177,9 @@ class SoilMoistureScreen extends StatelessWidget {
|
||||||
maxValue: 1,
|
maxValue: 1,
|
||||||
);
|
);
|
||||||
case ResultState.error:
|
case ResultState.error:
|
||||||
return const GraphicErrorWidget(message: 'Terjadi Kesalahan');
|
return const ErrorDataStateWidget();
|
||||||
case ResultState.noData:
|
case ResultState.noData:
|
||||||
return const GraphicErrorWidget(message: 'Tidak Ada Data');
|
return const NoDataStateWidget();
|
||||||
case ResultState.initial:
|
case ResultState.initial:
|
||||||
default:
|
default:
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_error_widget.dart';
|
import 'package:agrilink_vocpro/core/widgets/error_data_state_widget.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/no_data_state_widget.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
|
|
@ -226,9 +227,9 @@ class SoilTemperatureScreen extends StatelessWidget {
|
||||||
maxValue: 70,
|
maxValue: 70,
|
||||||
);
|
);
|
||||||
case ResultState.error:
|
case ResultState.error:
|
||||||
return const GraphicErrorWidget(message: 'Terjadi Kesalahan');
|
return const ErrorDataStateWidget();
|
||||||
case ResultState.noData:
|
case ResultState.noData:
|
||||||
return const GraphicErrorWidget(message: 'Tidak Ada Data');
|
return const NoDataStateWidget();
|
||||||
case ResultState.initial:
|
case ResultState.initial:
|
||||||
default:
|
default:
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
|
||||||
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
import 'package:agrilink_vocpro/core/state/result_state.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/error_data_state_widget.dart';
|
||||||
|
import 'package:agrilink_vocpro/core/widgets/no_data_state_widget.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/detail_pages/temperature/provider/temp_provider.dart';
|
import 'package:agrilink_vocpro/features/home/detail_pages/temperature/provider/temp_provider.dart';
|
||||||
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart';
|
||||||
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
import 'package:bootstrap_icons/bootstrap_icons.dart';
|
||||||
|
|
@ -30,7 +32,7 @@ class TemperatureScreen extends StatelessWidget {
|
||||||
padding: EdgeInsets.only(right: 16),
|
padding: EdgeInsets.only(right: 16),
|
||||||
child: Icon(
|
child: Icon(
|
||||||
BootstrapIcons.thermometer_half,
|
BootstrapIcons.thermometer_half,
|
||||||
color: Colors.red,
|
color: Colors.orange,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
@ -228,39 +230,9 @@ class TemperatureScreen extends StatelessWidget {
|
||||||
0),
|
0),
|
||||||
);
|
);
|
||||||
case ResultState.error:
|
case ResultState.error:
|
||||||
return Center(
|
return ErrorDataStateWidget();
|
||||||
child: Column(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Icon(
|
|
||||||
BootstrapIcons.exclamation_circle,
|
|
||||||
color: Colors.grey.shade400,
|
|
||||||
),
|
|
||||||
SizedBox(height: 8.h),
|
|
||||||
Text(
|
|
||||||
'Terjadi Kesalahan',
|
|
||||||
style: AppTheme.labelSmall,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
case ResultState.noData:
|
case ResultState.noData:
|
||||||
return Center(
|
return NoDataStateWidget();
|
||||||
child: Column(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Icon(
|
|
||||||
BootstrapIcons.database_fill_x,
|
|
||||||
color: Colors.grey.shade400,
|
|
||||||
),
|
|
||||||
SizedBox(height: 8.h),
|
|
||||||
Text(
|
|
||||||
'Tidak Ada Data',
|
|
||||||
style: AppTheme.labelSmall,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
case ResultState.initial:
|
case ResultState.initial:
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ class ListDataFromCensorDht extends StatelessWidget {
|
||||||
unit: '%',
|
unit: '%',
|
||||||
icon: BootstrapIcons.droplet_half,
|
icon: BootstrapIcons.droplet_half,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
censorIdentifier: 'NPK 1',
|
censorIdentifier: 'DHT',
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await context
|
await context
|
||||||
.push('${AppRoute.humidity}/${provider.dhtHumidity}');
|
.push('${AppRoute.humidity}/${provider.dhtHumidity}');
|
||||||
|
|
@ -67,6 +67,7 @@ class ListDataFromCensorDht extends StatelessWidget {
|
||||||
unit: '°C',
|
unit: '°C',
|
||||||
icon: BootstrapIcons.thermometer_half,
|
icon: BootstrapIcons.thermometer_half,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
|
censorIdentifier: 'DHT',
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await context.push(
|
await context.push(
|
||||||
'${AppRoute.temperature}/${provider.dhtTemperature}');
|
'${AppRoute.temperature}/${provider.dhtTemperature}');
|
||||||
|
|
@ -79,6 +80,7 @@ class ListDataFromCensorDht extends StatelessWidget {
|
||||||
unit: 'lux',
|
unit: 'lux',
|
||||||
icon: BootstrapIcons.sun,
|
icon: BootstrapIcons.sun,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
|
censorIdentifier: 'DHT',
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await context
|
await context
|
||||||
.push('${AppRoute.light}/${provider.dhtLuminosity}');
|
.push('${AppRoute.light}/${provider.dhtLuminosity}');
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,7 @@ class ListDataFromCensorNpk1 extends StatelessWidget {
|
||||||
textColor: Colors.white,
|
textColor: Colors.white,
|
||||||
color: AppColor.secondary,
|
color: AppColor.secondary,
|
||||||
iconColor: Colors.white,
|
iconColor: Colors.white,
|
||||||
|
censorIdentifier: censorIdentifier,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await context.push(
|
await context.push(
|
||||||
'${AppRoute.nitrogen}/${provider.npk2SoilNitrogen}/${provider.npk1SoilNitrogen}');
|
'${AppRoute.nitrogen}/${provider.npk2SoilNitrogen}/${provider.npk1SoilNitrogen}');
|
||||||
|
|
@ -69,6 +70,7 @@ class ListDataFromCensorNpk1 extends StatelessWidget {
|
||||||
textColor: Colors.white,
|
textColor: Colors.white,
|
||||||
color: AppColor.secondary,
|
color: AppColor.secondary,
|
||||||
iconColor: Colors.white,
|
iconColor: Colors.white,
|
||||||
|
censorIdentifier: censorIdentifier,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await context.push(
|
await context.push(
|
||||||
'${AppRoute.phosphorus}/${provider.npk1SoilPhosphorus}/${provider.npk2SoilPhosphorus}');
|
'${AppRoute.phosphorus}/${provider.npk1SoilPhosphorus}/${provider.npk2SoilPhosphorus}');
|
||||||
|
|
@ -83,6 +85,7 @@ class ListDataFromCensorNpk1 extends StatelessWidget {
|
||||||
textColor: Colors.white,
|
textColor: Colors.white,
|
||||||
color: AppColor.secondary,
|
color: AppColor.secondary,
|
||||||
iconColor: Colors.white,
|
iconColor: Colors.white,
|
||||||
|
censorIdentifier: censorIdentifier,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await context.push(
|
await context.push(
|
||||||
'${AppRoute.potassium}/${provider.npk1SoilPotassium}/${provider.npk2SoilPotassium}');
|
'${AppRoute.potassium}/${provider.npk1SoilPotassium}/${provider.npk2SoilPotassium}');
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ class ListDataFromCensorNpk2 extends StatelessWidget {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
const String censorIdentifier = 'NPK 1';
|
const String censorIdentifier = 'NPK 2';
|
||||||
return Consumer<HomeProvider>(builder: (context, provider, child) {
|
return Consumer<HomeProvider>(builder: (context, provider, child) {
|
||||||
switch (provider.dataState) {
|
switch (provider.dataState) {
|
||||||
case ResultState.loading:
|
case ResultState.loading:
|
||||||
|
|
@ -54,6 +54,7 @@ class ListDataFromCensorNpk2 extends StatelessWidget {
|
||||||
icon: CupertinoIcons.eyedropper,
|
icon: CupertinoIcons.eyedropper,
|
||||||
textColor: Colors.white,
|
textColor: Colors.white,
|
||||||
color: AppColor.secondary,
|
color: AppColor.secondary,
|
||||||
|
censorIdentifier: censorIdentifier,
|
||||||
iconColor: Colors.white,
|
iconColor: Colors.white,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await context.push(
|
await context.push(
|
||||||
|
|
@ -69,6 +70,7 @@ class ListDataFromCensorNpk2 extends StatelessWidget {
|
||||||
textColor: Colors.white,
|
textColor: Colors.white,
|
||||||
color: AppColor.secondary,
|
color: AppColor.secondary,
|
||||||
iconColor: Colors.white,
|
iconColor: Colors.white,
|
||||||
|
censorIdentifier: censorIdentifier,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await context.push(
|
await context.push(
|
||||||
'${AppRoute.phosphorus}/${provider.npk1SoilPhosphorus}/${provider.npk2SoilPhosphorus}');
|
'${AppRoute.phosphorus}/${provider.npk1SoilPhosphorus}/${provider.npk2SoilPhosphorus}');
|
||||||
|
|
@ -83,6 +85,7 @@ class ListDataFromCensorNpk2 extends StatelessWidget {
|
||||||
textColor: Colors.white,
|
textColor: Colors.white,
|
||||||
color: AppColor.secondary,
|
color: AppColor.secondary,
|
||||||
iconColor: Colors.white,
|
iconColor: Colors.white,
|
||||||
|
censorIdentifier: censorIdentifier,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await context.push(
|
await context.push(
|
||||||
'${AppRoute.potassium}/${provider.npk1SoilPotassium}/${provider.npk2SoilPotassium}');
|
'${AppRoute.potassium}/${provider.npk1SoilPotassium}/${provider.npk2SoilPotassium}');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user