diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json index 1b6217e..ba7d926 100644 --- a/assets/langs/ar-SA.json +++ b/assets/langs/ar-SA.json @@ -170,6 +170,18 @@ "my_recent_providers": "مزودي الخدمة الجدد", "my_active_ads": "إعلاناتي النشطة", "recommended_Ads": "الإعلانات الموصى بها", - "location": "موقع" - + "location": "موقع", + "address": "عنوان", + "branchName": "اسم الفرع", + "branchDescription": "وصف الفرع", + "branchInfo": "معلومات الفرع", + "defineServices": "تحديد الخدمات", + "defineBranches": "تحديد الفروع", + "defineProviders": "تحديد الموفرين", + "closeAccount": "حساب مغلق", + "selectServiceCategory": "حدد فئة الخدمة", + "selectService": "حدد الخدمة", + "selectBranch": "حدد الفرع", + "createBranch": "Create Branch", + "updateBranch": "Update Branch" } \ No newline at end of file diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json index a499d5b..dd6bc7a 100644 --- a/assets/langs/en-US.json +++ b/assets/langs/en-US.json @@ -162,8 +162,8 @@ "tapToEdit": "Tap to edit", "myServiceBranches": "My Service Branches", "enter_licence_detail": "Please enter the detail for commercial records and attach the license images", - "country": "country", - "city": "city", + "country": "Country", + "city": "City", "editServices": "Edit Services", "maintenance": "Maintenance", "accessories_modifications": "Accessories and Modifications", @@ -171,6 +171,18 @@ "my_active_ads": "My Active Ads", "recommended_Ads": "Recommended Ads", "select_services": "Select services you want", - "location": "Location" - + "location": "Location", + "address": "Address", + "branchName": "Branch Name", + "branchDescription": "Branch Description", + "branchInfo": "Branch Info", + "defineServices": "Define Services", + "defineBranches": "Define Branches", + "defineProviders": "Define Providers", + "closeAccount": "Close Account", + "selectServiceCategory": "Select Service Category", + "selectService": "Select Service", + "selectBranch": "Select Branch", + "createBranch": "Create Branch", + "updateBranch": "Update Branch" } \ No newline at end of file diff --git a/lib/api/api_client.dart b/lib/api/api_client.dart index b59e938..8c9f2a4 100644 --- a/lib/api/api_client.dart +++ b/lib/api/api_client.dart @@ -8,6 +8,7 @@ import 'package:http/io_client.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/exceptions/api_exception.dart'; +import 'package:mc_common_app/main.dart'; import 'package:mc_common_app/models/user/refresh_token.dart'; import 'package:mc_common_app/models/user/user.dart'; import 'package:mc_common_app/utils/shared_prefrence.dart'; @@ -203,6 +204,7 @@ class ApiClientImp implements ApiClient { } var response = await getJsonForResponse(url, token: token, queryParameters: queryParameters, headers: headers0, retryTimes: retryTimes); try { + logger.wtf(url); if (!kReleaseMode) { debugPrint("res:${response.body}"); } @@ -317,9 +319,9 @@ class ApiClientImp implements ApiClient { SharedPrefManager.setRefreshToken(refresh.data!.refreshToken ?? ""); String mdata = await SharedPrefManager.getData(); UserInfo info = UserInfo.fromJson(jsonDecode(mdata)); - User user = User(); - user.data = UserData(accessToken: refresh.data!.accessToken ?? "", refreshToken: refresh.data!.refreshToken ?? "", userInfo: info); + User user = User(); + user.data = UserData(accessToken: refresh.data!.accessToken ?? "", refreshToken: refresh.data!.refreshToken ?? "", userInfo: info); AppState().setUser = user; - return refresh.data!.accessToken??""; + return refresh.data!.accessToken ?? ""; } } diff --git a/lib/classes/consts.dart b/lib/classes/consts.dart index dc88a76..95d89a7 100644 --- a/lib/classes/consts.dart +++ b/lib/classes/consts.dart @@ -50,6 +50,17 @@ class ApiConsts { static String ServiceProviderService_Get = "${baseUrlServices}api/ServiceProviders/ServiceProviderService_Get"; static String BranchesAndServices = "${baseUrlServices}api/ServiceProviders/ServiceProviderDetail_Get"; + //Services & items + static String createService = "${baseUrlServices}api/ServiceProviders/Service_Create"; + static String createItems = "${baseUrlServices}api/ServiceProviders/ServiceItem_Create"; + static String getServiceItems = "${baseUrlServices}api/ServiceProviders/ServiceItem_Get"; + static String updateServiceItem = "${baseUrlServices}api/ServiceProviders/ServiceItem_Update"; + + //Schedule & Group + static String createSchedule = "${baseUrlServices}api/ServiceProviders/BranchAppointmentSchedule_Create"; + static String getSchedule = "${baseUrlServices}api/ServiceProviders/BranchAppointmentSchedule_Get"; + static String createGroup = "${baseUrlServices}api/ServiceProviders/BranchScheduleGroupService_Create"; + //Advertisement APIs static String vehicleTypeGet = "${baseUrlServices}api/ServiceProviders/VehicleType_Get"; static String vehicleModelGet = "${baseUrlServices}api/Master/VehicleModel_Get"; @@ -68,6 +79,9 @@ class ApiConsts { static String vehicleAdsSpecialServicesGet = "${baseUrlServices}api/Common/SpecialService_Get"; static String vehicleAdsSingleStepCreate = "${baseUrlServices}api/Advertisement/AdsSingleStep_Create"; static String vehicleAdsGet = "${baseUrlServices}api/Advertisement/Ads_Get"; + + //Subscription + static String getAllSubscriptions = "${baseUrlServices}api/Common/Subscription_Get"; } class GlobalConsts { diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index 12353ee..18e8bbb 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -186,7 +186,18 @@ class CodegenLoader extends AssetLoader{ "my_recent_providers": "مزودي الخدمة الجدد", "my_active_ads": "إعلاناتي النشطة", "recommended_Ads": "الإعلانات الموصى بها", - "location": "موقع" + "location": "موقع", + "address": "عنوان", + "branchName": "اسم الفرع", + "branchDescription": "وصف الفرع", + "branchInfo": "معلومات الفرع", + "defineServices": "تحديد الخدمات", + "defineBranches": "تحديد الفروع", + "defineProviders": "تحديد الموفرين", + "closeAccount": "حساب مغلق", + "selectServiceCategory": "حدد فئة الخدمة", + "selectService": "حدد الخدمة", + "selectBranch": "حدد الفرع" }; static const Map en_US = { "firstTimeLogIn": "First Time Log In", @@ -352,8 +363,8 @@ static const Map en_US = { "tapToEdit": "Tap to edit", "myServiceBranches": "My Service Branches", "enter_licence_detail": "Please enter the detail for commercial records and attach the license images", - "country": "country", - "city": "city", + "country": "Country", + "city": "City", "editServices": "Edit Services", "maintenance": "Maintenance", "accessories_modifications": "Accessories and Modifications", @@ -361,7 +372,18 @@ static const Map en_US = { "my_active_ads": "My Active Ads", "recommended_Ads": "Recommended Ads", "select_services": "Select services you want", - "location": "Location" + "location": "Location", + "address": "Address", + "branchName": "Branch Name", + "branchDescription": "Branch Description", + "branchInfo": "Branch Info", + "defineServices": "Define Services", + "defineBranches": "Define Branches", + "defineProviders": "Define Providers", + "closeAccount": "Close Account", + "selectServiceCategory": "Select Service Category", + "selectService": "Select Service", + "selectBranch": "Select Branch" }; static const Map> mapLocales = {"ar_SA": ar_SA, "en_US": en_US}; } diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart index 7e54e6e..cabfe5e 100644 --- a/lib/generated/locale_keys.g.dart +++ b/lib/generated/locale_keys.g.dart @@ -151,5 +151,16 @@ abstract class LocaleKeys { static const my_active_ads = 'my_active_ads'; static const recommended_Ads = 'recommended_Ads'; static const location = 'location'; + static const address = 'address'; + static const branchName = 'branchName'; + static const branchDescription = 'branchDescription'; + static const branchInfo = 'branchInfo'; + static const defineServices = 'defineServices'; + static const defineBranches = 'defineBranches'; + static const defineProviders = 'defineProviders'; + static const closeAccount = 'closeAccount'; + static const selectServiceCategory = 'selectServiceCategory'; + static const selectService = 'selectService'; + static const selectBranch = 'selectBranch'; } diff --git a/lib/models/m_response.dart b/lib/models/m_response.dart index 5926e33..856de8e 100644 --- a/lib/models/m_response.dart +++ b/lib/models/m_response.dart @@ -13,16 +13,19 @@ class MResponse { this.totalItemsCount, this.messageStatus, this.message, + this.data, }); int? totalItemsCount; int? messageStatus; String? message; + dynamic data; factory MResponse.fromJson(Map json) => MResponse( totalItemsCount: json["totalItemsCount"], messageStatus: json["messageStatus"], message: json["message"], + data: json["data"], ); Map toJson() => { diff --git a/lib/models/model/branch2.dart b/lib/models/model/branch2.dart index dd9df37..2fa672e 100644 --- a/lib/models/model/branch2.dart +++ b/lib/models/model/branch2.dart @@ -6,8 +6,6 @@ import 'dart:convert'; import 'package:mc_common_app/models/profile/categroy.dart'; - - Branch2 branch2FromJson(String str) => Branch2.fromJson(json.decode(str)); String branch2ToJson(Branch2 data) => json.encode(data.toJson()); @@ -155,6 +153,9 @@ class ServiceProviderService { this.categoryId, this.categoryName, this.serviceStatus, + this.isAllowAppointment, + this.customerLocationRange, + this.rangePricePerKm, }); final int? serviceId; @@ -163,6 +164,9 @@ class ServiceProviderService { final int? categoryId; final String? categoryName; final int? serviceStatus; + final bool? isAllowAppointment; + final int? customerLocationRange; + final String? rangePricePerKm; factory ServiceProviderService.fromJson(Map json) => ServiceProviderService( serviceId: json["serviceID"] == null ? null : json["serviceID"], @@ -171,6 +175,9 @@ class ServiceProviderService { categoryId: json["categoryID"] == null ? null : json["categoryID"], categoryName: json["categoryName"] == null ? null : json["categoryName"], serviceStatus: json["serviceStatus"] == null ? null : json["serviceStatus"], + isAllowAppointment: json["isAllowAppointment"] == null ? null : json["isAllowAppointment"], + customerLocationRange: json["customerLocationRange"] == null ? null : json["customerLocationRange"], + rangePricePerKm: json["rangePricePerKm"] == null ? null : json["rangePricePerKm"].toString(), ); Map toJson() => { diff --git a/lib/models/profile/categroy.dart b/lib/models/profile/categroy.dart index 25fd487..eddcf64 100644 --- a/lib/models/profile/categroy.dart +++ b/lib/models/profile/categroy.dart @@ -24,14 +24,16 @@ class Category { int? messageStatus; String? message; - factory Category.fromJson(Map json) => Category( + factory Category.fromJson(Map json) => + Category( totalItemsCount: json["totalItemsCount"] == null ? null : json["totalItemsCount"], data: json["data"] == null ? null : List.from(json["data"].map((x) => CategoryData.fromJson(x))), messageStatus: json["messageStatus"] == null ? null : json["messageStatus"], message: json["message"] == null ? null : json["message"], ); - Map toJson() => { + Map toJson() => + { "totalItemsCount": totalItemsCount == null ? null : totalItemsCount, "data": data == null ? null : List.from(data!.map((x) => x.toJson())), "messageStatus": messageStatus == null ? null : messageStatus, @@ -48,6 +50,8 @@ class CategoryData extends Equatable { this.serviceCategoryIconUrl, this.serviceCategoryImageUrl, this.services, + this.branchId, + this.branchName, }); int? id; @@ -55,9 +59,12 @@ class CategoryData extends Equatable { String? categoryNameN; dynamic? serviceCategoryIconUrl; dynamic? serviceCategoryImageUrl; + String? branchId; + String? branchName; List? services; - factory CategoryData.fromJson(Map json) => CategoryData( + factory CategoryData.fromJson(Map json) => + CategoryData( id: json["id"] == null ? null : json["id"], categoryName: json["categoryName"] == null ? null : json["categoryName"], categoryNameN: json["categoryNameN"] == null ? null : json["categoryNameN"], @@ -66,7 +73,8 @@ class CategoryData extends Equatable { services: [], ); - Map toJson() => { + Map toJson() => + { "id": id == null ? null : id, "categoryName": categoryName == null ? null : categoryName, "categoryNameN": categoryNameN == null ? null : categoryNameN, diff --git a/lib/theme/colors.dart b/lib/theme/colors.dart index 09fc842..3ea0c68 100644 --- a/lib/theme/colors.dart +++ b/lib/theme/colors.dart @@ -20,6 +20,7 @@ class MyColors { static const Color greyButtonColor = Color(0xffEBEBEB); static const Color grey70Color = Color(0xff707070); static const Color greyACColor = Color(0xffACACAC); + static const Color chipColor = Color(0xffE6E6E6); static const Color greyShadowColor = Color(0xFFE8E7E7); static const Color grey98Color = Color(0xff989898); static const Color lightGreyEFColor = Color(0xffEFEFEF); diff --git a/lib/utils/date_helper.dart b/lib/utils/date_helper.dart new file mode 100644 index 0000000..b41653c --- /dev/null +++ b/lib/utils/date_helper.dart @@ -0,0 +1,48 @@ +import 'package:intl/intl.dart'; + +class DateHelper { + static DateTime parseStringToDate(String dateString) { + final formatter = DateFormat('yyyy-MM-dd'); + return formatter.parse(dateString); + } + + static String formatAsShortDate(DateTime date) { + final formatter = DateFormat.yMd(); + return formatter.format(date); + } + + static String formatAsLongDate(DateTime date) { + final formatter = DateFormat.yMMMMEEEEd(); + return formatter.format(date); + } + + static String formatAsTime(DateTime date) { + final formatter = DateFormat.jm(); + return formatter.format(date); + } + + static String formatAsYearMonthDay(DateTime date) { + final formatter = DateFormat('y-MM-d'); + return date != null ? formatter.format(date) : "N/A"; + } + + static String formatAsCustomPattern(DateTime date, String pattern) { + final formatter = DateFormat(pattern); + return formatter.format(date); + } + + static String formatAsDayMonthYear(DateTime? date) { + final formatter = DateFormat('d MMM, y'); + return date != null ? formatter.format(date) : "N/A"; + } + + static String formatAsMonthDayYear(DateTime date) { + final formatter = DateFormat('MMMM d, y'); + return formatter.format(date); + } + + static String formatAsMonthYear(DateTime date) { + final formatter = DateFormat('MMMM y'); + return formatter.format(date); + } +} diff --git a/lib/utils/enums.dart b/lib/utils/enums.dart index 8c9b0fb..54acb6e 100644 --- a/lib/utils/enums.dart +++ b/lib/utils/enums.dart @@ -36,3 +36,12 @@ enum LoginType { } enum AppType { provider, customer } + +enum ServiceStatus { + pending, //1 + review, //2 + approvedOrActive, //3 + rejected, //4 + blocked, //5 + deactivated, //6 +} diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index 9bdd7a7..d35577c 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -4,6 +4,7 @@ import 'dart:typed_data'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; +import 'package:mc_common_app/utils/date_helper.dart'; import 'package:path/path.dart' as p; import 'package:fluttertoast/fluttertoast.dart'; @@ -18,26 +19,44 @@ class Utils { static void showToast(String message) { Fluttertoast.showToast( - msg: message, toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.BOTTOM, timeInSecForIosWeb: 2, backgroundColor: Colors.black54, textColor: Colors.white, fontSize: 16.0); + msg: message, + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.BOTTOM, + timeInSecForIosWeb: 2, + backgroundColor: Colors.black54, + textColor: Colors.white, + fontSize: 16.0); } - static Future pickDateFromDatePicker(BuildContext context) async { + static Future pickDateFromDatePicker(BuildContext context, {DateTime? firstDate, DateTime? lastDate}) async { DateTime? pickedDate = await showDatePicker( context: context, - - initialDate: DateTime.now(), //get today's date - firstDate: DateTime.now(), //DateTime.now() - not to allow to choose before today. - lastDate: DateTime(2101)); + firstDate: firstDate ?? DateTime.now(), //DateTime.now() - not to allow to choose before today. + lastDate: lastDate ?? DateTime(2101)); if (pickedDate == null) { return ""; } - String formattedDate = DateFormat.yMMMMd().format(pickedDate); // format date in required form here we use yyyy-MM-dd that means time is removed + String formattedDate = DateHelper.formatAsYearMonthDay(pickedDate); // format date in required form here we use yyyy-MM-dd that means time is removed return formattedDate; } + static Future pickTime(BuildContext context, {TimeOfDay? initialTime}) async { + TimeOfDay? timeOfDay = await showTimePicker(context: context, initialTime: initialTime ?? TimeOfDay.now()); + + if (timeOfDay == null) { + return ""; + } + + return ("${timeOfDay.hour + .toString() + .length == 1 ? "0" : ""}${timeOfDay.hour}:${timeOfDay.minute + .toString() + .length == 1 ? "0" : ""}${timeOfDay.minute}").toString(); + } + static dynamic getNotNullValue(List list, int index) { try { return list[index]; @@ -289,7 +308,7 @@ class Utils { border: Border.all( width: w, // color: color // <--- border width here - ), + ), borderRadius: BorderRadius.circular(radius), ); } @@ -312,7 +331,7 @@ class Utils { border: Border.all( width: 1, // color: color // <--- border width here - ), + ), borderRadius: BorderRadius.circular(radius), ); } diff --git a/lib/views/user/login_with_password_page.dart b/lib/views/user/login_with_password_page.dart index 0009ed9..b114723 100644 --- a/lib/views/user/login_with_password_page.dart +++ b/lib/views/user/login_with_password_page.dart @@ -28,7 +28,7 @@ class _LoginWithPasswordState extends State { int otpType = 1; ClassType type = ClassType.EMAIL; - String phoneNum = "", password = ""; + String phoneNum = "580816976", password = "123@Shf"; String email = ""; String countryCode = ""; Country? _country; diff --git a/lib/widgets/bottom_sheet.dart b/lib/widgets/bottom_sheet.dart new file mode 100644 index 0000000..b4a8b80 --- /dev/null +++ b/lib/widgets/bottom_sheet.dart @@ -0,0 +1,86 @@ +import 'package:flutter/material.dart'; +import 'package:mc_common_app/extensions/int_extensions.dart'; + +void showMyBottomSheet(BuildContext context, {required Widget child, VoidCallback? callBackFunc}) { + showModalBottomSheet( + context: context, + isScrollControlled: true, + backgroundColor: Colors.transparent, + builder: (BuildContext context) { + return Container( + decoration: const BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topRight: Radius.circular(25), + topLeft: Radius.circular(25), + ), + ), + clipBehavior: Clip.antiAlias, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + 13.height, + Container( + height: 6, + width: 60, + decoration: const BoxDecoration( + color: Color(0xff9A9A9A), + borderRadius: BorderRadius.all( + Radius.circular(20), + ), + ), + ), + 8.height, + child, + ], + ), + ); + }, + ).then((value) { + // print("BACK FROM DELEGATE!!!!"); + // print("value: $value"); + if (value == "delegate_reload") { + if (callBackFunc != null) callBackFunc(); + } + }); +} + +class BottomSheetItem extends StatelessWidget { + final Function onTap; + final IconData icon; + final String title; + final Color color; + + const BottomSheetItem({Key? key, required this.onTap, required this.title, required this.icon, this.color = Colors.black}) : super(key: key); + + @override + Widget build(BuildContext context) { + return InkWell( + onTap: () { + if (onTap != null) { + Navigator.pop(context); + onTap(); + } + }, + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 18.0, vertical: 18.0), + child: Row( + children: [ + if (icon != null) + Icon( + icon, + color: color, + size: 18.0, + ), + if (icon != null) SizedBox(width: 24.0), + Text( + title ?? "", + style: TextStyle(color: color), + ), + ], + ), + ), + ); + } +} diff --git a/lib/widgets/common_widgets/app_bar.dart b/lib/widgets/common_widgets/app_bar.dart index a30c28d..207aeba 100644 --- a/lib/widgets/common_widgets/app_bar.dart +++ b/lib/widgets/common_widgets/app_bar.dart @@ -60,7 +60,7 @@ import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; // @override // Size get preferredSize => const Size.fromHeight(kToolbarHeight); // } -class CustomAppBar extends StatelessWidget with PreferredSizeWidget { +class CustomAppBar extends StatelessWidget implements PreferredSizeWidget { final Color? backgroundColor; final double? elevation; final String? title; diff --git a/lib/widgets/tab/role_type_tab.dart b/lib/widgets/tab/role_type_tab.dart index ec80506..fa363ba 100644 --- a/lib/widgets/tab/role_type_tab.dart +++ b/lib/widgets/tab/role_type_tab.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/theme/colors.dart'; @@ -8,8 +7,9 @@ class RoleTypeTab extends StatefulWidget { int selectedIndex; List dropList; Function(DropValue value) onSelect; + double? width; - RoleTypeTab(this.selectedIndex, this.dropList, {required this.onSelect}); + RoleTypeTab(this.selectedIndex, this.dropList, {required this.onSelect, this.width}); @override State createState() => _RoleTypeTabState(); @@ -31,7 +31,10 @@ class _RoleTypeTabState extends State { }); }, child: Container( - width: (MediaQuery.of(context).size.width / 2)-30, + width: widget.width ?? (MediaQuery + .of(context) + .size + .width / 2) - 30, height: 45, decoration: BoxDecoration( color: widget.selectedIndex == index ? MyColors.darkPrimaryColor : Colors.grey[200], @@ -43,7 +46,7 @@ class _RoleTypeTabState extends State { widget.dropList[index].value, style: TextStyle( color: widget.selectedIndex == index ? MyColors.white : Colors.black, - fontSize: 10, + fontSize: 15, ), ), ), diff --git a/lib/widgets/txt_field.dart b/lib/widgets/txt_field.dart index 15332cf..d02a23d 100644 --- a/lib/widgets/txt_field.dart +++ b/lib/widgets/txt_field.dart @@ -28,6 +28,7 @@ class TxtField extends StatelessWidget { Function(String)? onChanged; TextInputType? keyboardType; bool isBackgroundEnabled = false; + Widget? postfixWidget; TxtField({ Key? key, @@ -51,6 +52,7 @@ class TxtField extends StatelessWidget { this.isPasswordEnabled, this.keyboardType, this.isBackgroundEnabled = false, + this.postfixWidget, }) : super(key: key); @override @@ -107,7 +109,7 @@ class TxtField extends StatelessWidget { postfixData, color: postFixDataColor, ) - : null, + : postfixWidget ?? null, prefixIcon: prefixData != null ? const Icon(Icons.search, color: borderColor) : null, labelStyle: TextStyle(color: borderColor, fontSize: 13.sp), hintStyle: TextStyle(color: borderColor, fontSize: 9.sp), diff --git a/pubspec.lock b/pubspec.lock index 580abde..1ca2083 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" url: "https://pub.dev" source: hosted - version: "2.10.0" + version: "2.11.0" auto_size_text: dependency: "direct main" description: @@ -77,10 +77,10 @@ packages: dependency: transitive description: name: characters - sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.3.0" clock: dependency: transitive description: @@ -93,10 +93,10 @@ packages: dependency: transitive description: name: collection - sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.17.1" cross_file: dependency: transitive description: @@ -133,10 +133,10 @@ packages: dependency: "direct main" description: name: easy_localization - sha256: "6a2e99fa0bfe5765bf4c6ca9b137d5de2c75593007178c5e4cd2ae985f870080" + sha256: f30e9b20ed4d1b890171c30241d9b9c43efe21fee55dee7bd68f94daf269ea75 url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2-dev.2" easy_logger: dependency: transitive description: @@ -425,18 +425,18 @@ packages: dependency: transitive description: name: intl - sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91" + sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6 url: "https://pub.dev" source: hosted - version: "0.17.0" + version: "0.18.0" js: dependency: transitive description: name: js - sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 url: "https://pub.dev" source: hosted - version: "0.6.5" + version: "0.6.7" lints: dependency: transitive description: @@ -449,10 +449,42 @@ packages: dependency: "direct main" description: name: local_auth - sha256: d3fece0749101725b03206f84a7dab7aaafb702dbbd09131ff8d8173259a9b19 + sha256: "0cf238be2bfa51a6c9e7e9cfc11c05ea39f2a3a4d3e5bb255d0ebc917da24401" + url: "https://pub.dev" + source: hosted + version: "2.1.6" + local_auth_android: + dependency: transitive + description: + name: local_auth_android + sha256: c5e48c4a67fc0e5dd9b5725cc8766b67e2da9a54155c82c6e2ea4a0d1cf9ef93 + url: "https://pub.dev" + source: hosted + version: "1.0.28" + local_auth_ios: + dependency: transitive + description: + name: local_auth_ios + sha256: "503a938c4edde6b244c6ee3b1e2e675ddb7e37e79d5056658dbed1997cf04785" url: "https://pub.dev" source: hosted - version: "1.1.11" + version: "1.1.2" + local_auth_platform_interface: + dependency: transitive + description: + name: local_auth_platform_interface + sha256: "9e160d59ef0743e35f1b50f4fb84dc64f55676b1b8071e319ef35e7f3bc13367" + url: "https://pub.dev" + source: hosted + version: "1.0.7" + local_auth_windows: + dependency: transitive + description: + name: local_auth_windows + sha256: "19323b75ab781d5362dbb15dcb7e0916d2431c7a6dbdda016ec9708689877f73" + url: "https://pub.dev" + source: hosted + version: "1.0.8" logger: dependency: "direct main" description: @@ -465,10 +497,10 @@ packages: dependency: transitive description: name: matcher - sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" url: "https://pub.dev" source: hosted - version: "0.12.13" + version: "0.12.15" material_color_utilities: dependency: transitive description: @@ -481,10 +513,10 @@ packages: dependency: transitive description: name: meta - sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.9.1" nested: dependency: transitive description: @@ -505,10 +537,10 @@ packages: dependency: transitive description: name: path - sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" url: "https://pub.dev" source: hosted - version: "1.8.2" + version: "1.8.3" path_drawing: dependency: transitive description: @@ -830,10 +862,10 @@ packages: dependency: transitive description: name: test_api - sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb url: "https://pub.dev" source: hosted - version: "0.4.16" + version: "0.5.1" typed_data: dependency: transitive description: @@ -955,5 +987,5 @@ packages: source: hosted version: "6.1.0" sdks: - dart: ">=2.18.0 <3.0.0" + dart: ">=3.0.0-0 <4.0.0" flutter: ">=3.3.0" diff --git a/pubspec.yaml b/pubspec.yaml index 1f4ccf5..d6259a7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -28,7 +28,7 @@ dependencies: logger: ^1.1.0 auto_size_text: any shimmer: ^2.0.0 - local_auth: ^1.1.9 + local_auth: any hexcolor: ^2.0.4 cached_network_image: any url_launcher: ^6.1.7 @@ -36,7 +36,6 @@ dependencies: carousel_slider: ^4.2.1 dropdown_button2: ^2.0.0 - # google google_maps_flutter: ^2.1.1 geolocator: any