diff --git a/lib/controllers/providers/api/status_drop_down/service_reqest/service_request_through_provider.dart b/lib/controllers/providers/api/status_drop_down/service_reqest/service_request_through_provider.dart index cfc49f74..64106b31 100644 --- a/lib/controllers/providers/api/status_drop_down/service_reqest/service_request_through_provider.dart +++ b/lib/controllers/providers/api/status_drop_down/service_reqest/service_request_through_provider.dart @@ -66,4 +66,8 @@ class ServiceRequestedThroughProvider extends ChangeNotifier { return -1; } } + + Lookup getDefaultItem() { + return items?.firstWhere((element) => element.name.toLowerCase().contains("app")); + } } diff --git a/lib/controllers/providers/api/status_drop_down/service_reqest/service_request_type_provider.dart b/lib/controllers/providers/api/status_drop_down/service_reqest/service_request_type_provider.dart index a0c6cad2..e38d3e78 100644 --- a/lib/controllers/providers/api/status_drop_down/service_reqest/service_request_type_provider.dart +++ b/lib/controllers/providers/api/status_drop_down/service_reqest/service_request_type_provider.dart @@ -66,4 +66,8 @@ class ServiceRequestTypeProvider extends ChangeNotifier { return -1; } } + + Lookup getDefaultItem() { + return items?.firstWhere((element) => element.name.toLowerCase().contains("maintenance")); + } } diff --git a/lib/views/pages/user/requests/create_request.dart b/lib/views/pages/user/requests/create_request.dart index 14d7eb36..1989575d 100644 --- a/lib/views/pages/user/requests/create_request.dart +++ b/lib/views/pages/user/requests/create_request.dart @@ -31,6 +31,8 @@ import 'package:test_sa/views/widgets/status/service_request/service_request_thr import 'package:test_sa/views/widgets/status/service_request/service_request_types_mune.dart'; import 'package:test_sa/views/widgets/titles/app_sub_title.dart'; +import '../../../../controllers/providers/api/status_drop_down/service_reqest/service_request_through_provider.dart'; +import '../../../../controllers/providers/api/status_drop_down/service_reqest/service_request_type_provider.dart'; import '../../../widgets/date_and_time/date_picker.dart'; import '../../../widgets/status/service_request/service_request_first_action.dart'; import '../../../widgets/status/service_request/service_request_loan_availability.dart'; @@ -188,6 +190,7 @@ class CreateRequestPageState extends State { ), ServiceRequestTypesMenu( initialValue: _serviceRequest.type, + enabled: widget.serviceRequest != null, onSelect: (status) { _serviceRequest.type = status; }, @@ -201,9 +204,7 @@ class CreateRequestPageState extends State { ), ServiceRequestedThroughMenu( initialValue: _serviceRequest.requestedThrough, - onSelect: (status) { - _serviceRequest.requestedThrough = status; - }, + enabled: false, ), if (widget.serviceRequest != null) 12.height, if (widget.serviceRequest != null) const ASubTitle("First Action"), @@ -316,6 +317,10 @@ class CreateRequestPageState extends State { } _formKey.currentState.save(); _serviceRequest.deviceId = _device?.id; + if (widget.serviceRequest == null) { + _serviceRequest.requestedThrough = Provider.of(context, listen: false).getDefaultItem(); + _serviceRequest.type = Provider.of(context, listen: false).getDefaultItem(); + } _isLoading = true; setState(() {}); _serviceRequest.devicePhotos = _deviceImages.map((e) => "${e.path.split("/").last}|${base64Encode(e.readAsBytesSync())}").toList(); diff --git a/lib/views/widgets/speech_to_text/speech_to_text.dart b/lib/views/widgets/speech_to_text/speech_to_text.dart index 59b3d929..d1e8e12c 100644 --- a/lib/views/widgets/speech_to_text/speech_to_text.dart +++ b/lib/views/widgets/speech_to_text/speech_to_text.dart @@ -5,9 +5,9 @@ import 'package:speech_to_text/speech_recognition_error.dart'; import 'package:speech_to_text/speech_recognition_result.dart'; import 'package:speech_to_text/speech_to_text.dart'; import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; +import 'package:test_sa/views/app_style/sizing.dart'; import 'package:test_sa/views/widgets/buttons/app_icon_button2.dart'; import 'package:test_sa/views/widgets/titles/app_sub_title.dart'; -import 'package:test_sa/views/app_style/sizing.dart'; class SpeechToTextButton extends StatefulWidget { final TextEditingController controller; @@ -86,7 +86,7 @@ class _SpeechToTextButtonState extends State { ), child: Row( children: [ - widget.mini ? SizedBox.shrink() : ASubTitle("Text To Speech"), + widget.mini ? const SizedBox.shrink() : const ASubTitle("Speech To Text"), widget.controller.text.isNotEmpty ? AIconButton2( iconData: Icons.delete, diff --git a/lib/views/widgets/status/service_request/service_request_through_mune.dart b/lib/views/widgets/status/service_request/service_request_through_mune.dart index 986a5953..1a735dc8 100644 --- a/lib/views/widgets/status/service_request/service_request_through_mune.dart +++ b/lib/views/widgets/status/service_request/service_request_through_mune.dart @@ -10,8 +10,9 @@ import 'package:test_sa/views/widgets/status/single_status_menu.dart'; class ServiceRequestedThroughMenu extends StatelessWidget { final Function(Lookup) onSelect; final Lookup initialValue; + final bool enabled; - const ServiceRequestedThroughMenu({Key key, this.onSelect, this.initialValue}) : super(key: key); + const ServiceRequestedThroughMenu({Key key, this.onSelect, this.initialValue, this.enabled = true}) : super(key: key); @override Widget build(BuildContext context) { final settingProvider = Provider.of(context); @@ -26,9 +27,10 @@ class ServiceRequestedThroughMenu extends StatelessWidget { await menuProvider.getData(user: userProvider.user, host: settingProvider.host); }, child: SingleStatusMenu( - initialStatus: initialValue, + initialStatus: enabled ? initialValue : menuProvider.getDefaultItem(), statuses: menuProvider.items, onSelect: onSelect, + enabled: enabled, )); } } diff --git a/lib/views/widgets/status/service_request/service_request_types_mune.dart b/lib/views/widgets/status/service_request/service_request_types_mune.dart index a588cb8b..7d561aca 100644 --- a/lib/views/widgets/status/service_request/service_request_types_mune.dart +++ b/lib/views/widgets/status/service_request/service_request_types_mune.dart @@ -10,25 +10,28 @@ import 'package:test_sa/views/widgets/status/single_status_menu.dart'; class ServiceRequestTypesMenu extends StatelessWidget { final Function(Lookup) onSelect; final Lookup initialValue; + final bool enabled; - const ServiceRequestTypesMenu({Key key, this.onSelect, this.initialValue}) : super(key: key); + const ServiceRequestTypesMenu({Key key, this.onSelect, this.initialValue, this.enabled = true}) : super(key: key); @override Widget build(BuildContext context) { final settingProvider = Provider.of(context); final userProvider = Provider.of(context); final menuProvider = Provider.of(context); return LoadingManager( - isLoading: menuProvider.isLoading, - isFailedLoading: menuProvider.items == null, - stateCode: menuProvider.stateCode, - onRefresh: () async { - menuProvider.reset(); - await menuProvider.getData(user: userProvider.user, host: settingProvider.host); - }, - child: SingleStatusMenu( - initialStatus: initialValue, - statuses: menuProvider.items, - onSelect: onSelect, - )); + isLoading: menuProvider.isLoading, + isFailedLoading: menuProvider.items == null, + stateCode: menuProvider.stateCode, + onRefresh: () async { + menuProvider.reset(); + await menuProvider.getData(user: userProvider.user, host: settingProvider.host); + }, + child: SingleStatusMenu( + initialStatus: enabled ? initialValue : menuProvider.getDefaultItem(), + statuses: menuProvider.items, + enabled: enabled, + onSelect: onSelect, + ), + ); } }