From 873b5bcfec0b65b5a4863e4c5bfb4f660d696522 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Thu, 9 May 2024 15:48:51 +0300 Subject: [PATCH] switching in multiple asset group added. --- .../providers/settings/setting_provider.dart | 16 +++--- .../pages/land_page/dashboard_page.dart | 57 +++++++++++++++++-- 2 files changed, 61 insertions(+), 12 deletions(-) diff --git a/lib/controllers/providers/settings/setting_provider.dart b/lib/controllers/providers/settings/setting_provider.dart index b87ff49..17a2a16 100644 --- a/lib/controllers/providers/settings/setting_provider.dart +++ b/lib/controllers/providers/settings/setting_provider.dart @@ -44,15 +44,17 @@ class SettingProvider extends ChangeNotifier { _assetGroup = user.assetGroups[fmIndex]; } } - ApiManager.instance.assetGroup = _assetGroup; + setAssetGroup(_assetGroup); + // ApiManager.instance.assetGroup = _assetGroup; } - // Future setAssetGroup(AssetGroup assetGroup) async { - // SharedPreferences prefs = await SharedPreferences.getInstance(); - // prefs.setString(ASettings.assetGroup, json.encode(assetGroup.toJson())); - // _assetGroup = assetGroup; - // notifyListeners(); - // } + Future setAssetGroup(AssetGroup assetGroup) async { + // SharedPreferences prefs = await SharedPreferences.getInstance(); + // prefs.setString(ASettings.assetGroup, json.encode(assetGroup.toJson())); + _assetGroup = assetGroup; + ApiManager.instance.assetGroup = _assetGroup; + notifyListeners(); + } String _host; diff --git a/lib/new_views/pages/land_page/dashboard_page.dart b/lib/new_views/pages/land_page/dashboard_page.dart index eb11ff5..3d40d41 100644 --- a/lib/new_views/pages/land_page/dashboard_page.dart +++ b/lib/new_views/pages/land_page/dashboard_page.dart @@ -1,6 +1,5 @@ import 'dart:convert'; -import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/controllers/notification/firebase_notification_manger.dart'; @@ -8,18 +7,17 @@ import 'package:test_sa/controllers/notification/notification_manger.dart'; import 'package:test_sa/controllers/providers/api/all_requests_provider.dart'; import 'package:test_sa/controllers/providers/api/notifications_provider.dart'; import 'package:test_sa/controllers/providers/api/user_provider.dart'; +import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; -import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; -import 'package:test_sa/models/service_request/service_request.dart'; +import 'package:test_sa/models/user.dart'; import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/pages/land_page/dashboard_fragments/progress_fragment.dart'; import 'package:test_sa/new_views/pages/land_page/dashboard_fragments/recent_activites_fragment.dart'; import 'package:test_sa/new_views/pages/land_page/dashboard_fragments/requests_fragment.dart'; import 'package:test_sa/views/pages/user/notifications/notifications_page.dart'; -import 'package:test_sa/views/pages/user/requests/service_request_details.dart'; class DashboardPage extends StatefulWidget { final VoidCallback onDrawerPress; @@ -36,9 +34,13 @@ class _DashboardPageState extends State { @override void initState() { super.initState(); + getAllRequests(); + } + + void getAllRequests() { WidgetsBinding.instance.addPostFrameCallback((_) { Provider.of(context, listen: false).getRequests(); - Provider.of(context, listen: false).getSystemNotifications(user: Provider.of(context, listen: false).user,resetProvider: true); + Provider.of(context, listen: false).getSystemNotifications(user: Provider.of(context, listen: false).user, resetProvider: true); }); } @@ -60,6 +62,7 @@ class _DashboardPageState extends State { isFCM = false; } final user = Provider.of(context, listen: false).user; + final setting = Provider.of(context, listen: false); return Scaffold( appBar: AppBar( automaticallyImplyLeading: false, @@ -85,6 +88,50 @@ class _DashboardPageState extends State { ), ); }).onPress(widget.onDrawerPress), + Spacer(), + Container( + padding: EdgeInsets.fromLTRB(12, 6, 6, 6), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + color: AppColor.background(context), + boxShadow: const [ + BoxShadow( + color: Color(0x07000000), + blurRadius: 14, + offset: Offset(0, 0), + spreadRadius: 0, + ) + ], + ), + child: DropdownButton( + value: setting.assetGroup, + //iconSize: 24, + isDense: true, + icon: const Icon(Icons.keyboard_arrow_down), + elevation: 8, + // dropdownColor: Colors.amber, + borderRadius: BorderRadius.circular(8), + style: TextStyle(color: Theme.of(context).primaryColor), + underline: const SizedBox.shrink(), + onChanged: (newValue) { + if (setting.assetGroup != newValue) { + Provider.of(context, listen: false).setAssetGroup(newValue); + } + setState(() {}); + getAllRequests(); + }, + items: user.assetGroups.map>((value) { + return DropdownMenuItem( + value: value, + child: Text( + value?.name ?? "", + style: Theme.of(context).textTheme.bodyLarge, + ), + ); + })?.toList(), + ), + ), + 16.width, Stack( alignment: Alignment.topRight, children: [