New UI Implemented Fix 3 Phase 1

mirza_dev
mirza.shafique 3 years ago
parent 8fea020fc8
commit 521d9f4edd

@ -43,7 +43,7 @@ android {
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.ejada.hmg" applicationId "com.ejadaa.hmg"
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 33 targetSdkVersion 33
versionCode flutterVersionCode.toInteger() versionCode flutterVersionCode.toInteger()

@ -13,6 +13,7 @@
android:theme="@style/LaunchTheme" android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
android:exported="true"
android:windowSoftInputMode="adjustResize"> android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as <!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user the Android process has started. This theme is visible to the user

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="29.159" height="24.616" viewBox="0 0 29.159 24.616">
<g id="promotion" transform="translate(-2 -3.116)">
<path id="Path_4626" data-name="Path 4626" d="M26.785,3.408a.292.292,0,0,0-.417-.263L11.455,10.236h.021V20.442h-.021l14.913,7.092a.292.292,0,0,0,.417-.263ZM10.019,20.078V10.6H6.544A4.644,4.644,0,0,0,2,15.339a4.722,4.722,0,0,0,3.191,4.525l2.395,7.663a.292.292,0,0,0,.278.2h3.945a.292.292,0,0,0,.278-.378L9.814,20.078ZM7.728,16.068a.729.729,0,0,0,.729-.729v-.208a.729.729,0,0,0-.729-.729H6.686a.729.729,0,0,0-.729.729v.208a.729.729,0,0,0,.729.729Z" transform="translate(0 0)" fill="#767676" fill-rule="evenodd"/>
<path id="Path_4627" data-name="Path 4627" d="M22.29,17.715a5.1,5.1,0,0,0,0-9.224ZM20.832,8.052a5.1,5.1,0,1,0,0,10.1Z" transform="translate(5.953 2.236)" fill="#767676" fill-rule="evenodd"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 878 B

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="25.034" height="25.034" viewBox="0 0 25.034 25.034">
<g id="weekly-calendar-page-symbol" transform="translate(139)">
<path id="Path_4379" data-name="Path 4379" d="M22.53,0H2.5A2.511,2.511,0,0,0,0,2.5V22.53a2.512,2.512,0,0,0,2.5,2.5H22.53a2.512,2.512,0,0,0,2.5-2.5V2.5A2.511,2.511,0,0,0,22.53,0ZM6.756,22.031H2.921V18.62H6.756v3.411Zm0-4.555H2.921v-3.41H6.756v3.41ZM6.467,3.794A1.063,1.063,0,1,1,7.529,2.731,1.062,1.062,0,0,1,6.467,3.794Zm5.406,18.237H8.039V18.62h3.834Zm0-4.555H8.039v-3.41h3.834Zm0-4.552H8.039V9.514h3.834ZM11.455,2.731a1.062,1.062,0,1,1,1.062,1.062A1.062,1.062,0,0,1,11.455,2.731Zm5.54,14.745H13.159v-3.41H17v3.41Zm0-4.552H13.159V9.514H17v3.41ZM17.5,2.731a1.062,1.062,0,1,1,1.062,1.062A1.062,1.062,0,0,1,17.5,2.731Zm4.609,14.745H18.278v-3.41h3.835Zm0-4.552H18.278V9.514h3.835Z" transform="translate(-139)" fill="#767676"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 908 B

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22.851" height="24.894" viewBox="0 0 22.851 24.894">
<g id="Layer_2" data-name="Layer 2" transform="translate(-2.981 -2)">
<path id="Path_4628" data-name="Path 4628" d="M18.185,17.74a6.372,6.372,0,0,1-7.113,0,6.291,6.291,0,0,1-3.574,1.1A6.111,6.111,0,0,1,5,18.318v7.655A2.675,2.675,0,0,0,7.667,28.64h3.112V23.306a1.778,1.778,0,0,1,1.778-1.778H17a1.778,1.778,0,0,1,1.778,1.778V28.64h3.112a2.675,2.675,0,0,0,2.667-2.667V18.185a6.209,6.209,0,0,1-6.375-.445Z" transform="translate(-0.224 -1.746)" fill="#767676"/>
<path id="Path_4629" data-name="Path 4629" d="M13.5,24h4.445v5.334H13.5Z" transform="translate(-1.167 -2.441)" fill="#767676"/>
<path id="Path_4630" data-name="Path 4630" d="M9.363,14.8,10.869,2H7.685A2.667,2.667,0,0,0,5.156,3.823L3.234,9.592A4.322,4.322,0,0,0,4.9,14.638a4.543,4.543,0,0,0,4.461.164Z" transform="translate(0 0)" fill="#767676"/>
<path id="Path_4631" data-name="Path 4631" d="M27.484,9.592,25.56,3.823A2.667,2.667,0,0,0,23.03,2H20.147l1.526,12.964a4.39,4.39,0,0,0,4.143-.326,4.319,4.319,0,0,0,1.669-5.046Z" transform="translate(-1.904)" fill="#767676"/>
<path id="Path_4632" data-name="Path 4632" d="M18.4,14.2A.867.867,0,0,1,18.882,14L17.471,2H13.7L12.282,14.091a.842.842,0,0,1,.188.115A4.559,4.559,0,0,0,18.4,14.2Z" transform="translate(-1.032 0)" fill="#767676"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="28.123" height="26.245" viewBox="0 0 28.123 26.245">
<path id="XMLID_219_" d="M28.984,15.637A2.077,2.077,0,0,1,27.025,17h-.716V27.309a.938.938,0,0,1-.937.937H19.748V21.685a4.687,4.687,0,0,0-9.374,0v6.562H4.749a.938.938,0,0,1-.937-.937V17H3.095a2.1,2.1,0,0,1-1.378-3.675L12.665,2.955a3.486,3.486,0,0,1,4.792,0L28.431,13.347A2.066,2.066,0,0,1,28.984,15.637Z" transform="translate(-0.999 -2.001)" fill="#273139"/>
</svg>

After

Width:  |  Height:  |  Size: 467 B

@ -0,0 +1,5 @@
<svg id="interview_5_" data-name="interview (5)" xmlns="http://www.w3.org/2000/svg" width="25.794" height="25.794" viewBox="0 0 25.794 25.794">
<path id="Path_4658" data-name="Path 4658" d="M205.7,0h-9.713A3.182,3.182,0,0,0,192.8,3.184v14.57a.756.756,0,0,0,1.209.6l3.036-2.277H205.7a3.182,3.182,0,0,0,3.184-3.184V3.184A3.182,3.182,0,0,0,205.7,0Zm-5.612,12.034h-3.291a.756.756,0,1,1,0-1.511h3.291a.756.756,0,1,1,0,1.511Zm4.8-3.238h-8.094a.756.756,0,1,1,0-1.511h8.094a.756.756,0,0,1,0,1.511Zm0-3.238h-8.094a.756.756,0,1,1,0-1.511h8.094a.756.756,0,0,1,0,1.511Zm0,0" transform="translate(-183.088)" fill="#767676"/>
<path id="Path_4659" data-name="Path 4659" d="M31.57,244.561A3.572,3.572,0,1,1,28,240.988,3.572,3.572,0,0,1,31.57,244.561Zm0,0" transform="translate(-23.195 -228.847)" fill="#767676"/>
<path id="Path_4660" data-name="Path 4660" d="M4.8,382.8a4.8,4.8,0,0,0-4.8,4.8v.95a.756.756,0,0,0,.756.756H8.85a.756.756,0,0,0,.756-.756v-.95A4.8,4.8,0,0,0,4.8,382.8Zm0,0" transform="translate(0 -363.519)" fill="#767676"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -30,7 +30,6 @@ class BranchApiClent {
"serviceProviderID": AppState().getUser.data?.userInfo?.providerId.toString() ?? "", "serviceProviderID": AppState().getUser.data?.userInfo?.providerId.toString() ?? "",
}; };
String t = AppState().getUser.data!.accessToken ?? ""; String t = AppState().getUser.data!.accessToken ?? "";
print("tokeen " + t);
return await ApiClient().getJsonForObject((json) => Branch.fromJson(json), ApiConsts.getProviderBranch, queryParameters: postParams, token: t); return await ApiClient().getJsonForObject((json) => Branch.fromJson(json), ApiConsts.getProviderBranch, queryParameters: postParams, token: t);
} }

@ -1,30 +0,0 @@
import 'package:permission_handler/permission_handler.dart';
class AppPermissions{
static void location(Function(bool) completion) {
Permission.location.isGranted.then((isGranted){
if(!isGranted){
Permission.location.request().then((granted){
completion(granted == PermissionStatus.granted);
});
}
completion(isGranted);
});
}
static void checkAll(Function(bool) completion){
[
Permission.location
].request().then((value){
bool allGranted = false;
value.values.forEach((element) {
allGranted = allGranted && element == PermissionStatus.granted;
});
completion(allGranted);
});
}
}

@ -15,7 +15,7 @@ class AppState {
bool? get getIsLogged => isLogged; bool? get getIsLogged => isLogged;
User? _user = null; User? _user;
set setUser(v) => _user = v; set setUser(v) => _user = v;
@ -31,7 +31,7 @@ class AppState {
this._postParams = _postParams; this._postParams = _postParams;
} }
LatLng currentLocation = new LatLng(0, 0); LatLng currentLocation = const LatLng(0, 0);
set setCurrentLocation(v) => currentLocation = v; set setCurrentLocation(v) => currentLocation = v;

@ -5,14 +5,28 @@ import 'package:car_provider_app/classes/colors.dart';
extension EmailValidator on String { extension EmailValidator on String {
Widget get toWidget => Text(this); Widget get toWidget => Text(this);
Widget toText({Color? color, bool isBold = false, double? fontSize}) => Text( Widget toText({
Color? color,
bool isBold = false,
double? fontSize,
TextDecoration? decoration,
TextAlign? textAlign,
}) =>
Text(
this, this,
style: TextStyle(fontSize: fontSize ?? 10, fontWeight: isBold ? FontWeight.bold : FontWeight.w600, color: color ?? MyColors.darkTextColor, letterSpacing: -0.4), textAlign: textAlign,
style: TextStyle(
fontSize: fontSize ?? 10,
fontWeight: isBold ? FontWeight.bold : FontWeight.w600,
color: color ?? MyColors.darkTextColor,
letterSpacing: -0.4,
decoration: decoration,
),
); );
Widget toText10({Color? color, bool isBold = false}) => Text( Widget toText10({Color? color, bool isBold = false}) => Text(
this, this,
style: TextStyle(fontSize: 10, fontWeight: isBold ? FontWeight.bold : FontWeight.w600, color: color ?? MyColors.darkTextColor, letterSpacing: -0.4), style: TextStyle(fontSize: 10, fontWeight: isBold ? FontWeight.bold : FontWeight.w800, color: color ?? MyColors.darkTextColor, letterSpacing: -0.4),
); );
Widget toText11({Color? color, bool isUnderLine = false, bool isBold = false}) => Text( Widget toText11({Color? color, bool isUnderLine = false, bool isBold = false}) => Text(
@ -42,15 +56,16 @@ extension EmailValidator on String {
style: TextStyle(fontSize: 13, fontWeight: FontWeight.w600, color: color ?? MyColors.darkTextColor, letterSpacing: -0.52, decoration: isUnderLine ? TextDecoration.underline : null), style: TextStyle(fontSize: 13, fontWeight: FontWeight.w600, color: color ?? MyColors.darkTextColor, letterSpacing: -0.52, decoration: isUnderLine ? TextDecoration.underline : null),
); );
Widget toText14({ Widget toText14({Color? color, bool isBold = false, TextAlign? textAlign, TextDecoration? decoration}) => Text(
Color? color,
bool isBold = false,
TextAlign? textAlign,
}) =>
Text(
this, this,
textAlign: textAlign, textAlign: textAlign,
style: TextStyle(color: color ?? MyColors.darkTextColor, fontSize: 14, letterSpacing: -0.48, fontWeight: isBold ? FontWeight.bold : FontWeight.w600), style: TextStyle(
color: color ?? MyColors.darkTextColor,
fontSize: 14,
letterSpacing: -0.48,
fontWeight: isBold ? FontWeight.bold : FontWeight.w600,
decoration: decoration,
),
); );
Widget toText16({Color? color, bool isBold = false}) => Text( Widget toText16({Color? color, bool isBold = false}) => Text(
@ -65,14 +80,7 @@ extension EmailValidator on String {
Widget toText20({Color? color, bool isBold = false, FontWeight? fontWeight}) => Text( Widget toText20({Color? color, bool isBold = false, FontWeight? fontWeight}) => Text(
this, this,
style: TextStyle( style: TextStyle(height: 23 / 24, color: color ?? MyColors.darkTextColor, fontSize: 20, letterSpacing: -1.44, fontWeight: fontWeight ?? (isBold ? FontWeight.bold : FontWeight.w600)),
height: 23 / 24,
color: color ?? MyColors.darkTextColor,
fontSize: 20,
letterSpacing: -1.44,
fontWeight: fontWeight ?? (isBold
? FontWeight.bold
: FontWeight.w600)),
); );
Widget toText22({Color? color, bool isBold = false}) => Text( Widget toText22({Color? color, bool isBold = false}) => Text(

@ -9,7 +9,25 @@ extension WidgetExtensions on Widget {
Widget paddingOnly({double left = 0.0, double right = 0.0, double top = 0.0, double bottom = 0.0}) => Widget paddingOnly({double left = 0.0, double right = 0.0, double top = 0.0, double bottom = 0.0}) =>
Padding(padding: EdgeInsets.only(left: left, right: right, top: top, bottom: bottom), child: this); Padding(padding: EdgeInsets.only(left: left, right: right, top: top, bottom: bottom), child: this);
Widget toContainer({double borderRadius = 8,double padding=10}) => Container( Widget toContainer({double borderRadius = 8, double paddingAll = 10, EdgeInsetsGeometry? padding, Color backgroundColor = Colors.white, bool isShadowEnabled = false}) => Container(
decoration: BoxDecoration(
color: backgroundColor,
borderRadius: BorderRadius.circular(borderRadius),
boxShadow: !isShadowEnabled
? null
: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
),
padding: padding ?? EdgeInsets.all(paddingAll),
child: this,
);
Widget toCircle({double borderRadius = 100, double padding = 0}) => Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(borderRadius), borderRadius: BorderRadius.circular(borderRadius),
@ -21,6 +39,25 @@ extension WidgetExtensions on Widget {
), ),
], ],
), ),
clipBehavior: Clip.antiAlias,
padding: EdgeInsets.all(padding),
child: this,
);
Widget toWhiteContainer({double borderRadius = 8, double padding = 12, double? width}) => Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(15),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
),
padding: EdgeInsets.all(padding), padding: EdgeInsets.all(padding),
child: this); width: width,
child: this,
);
} }

@ -14,11 +14,7 @@ Future<void> main() async {
await EasyLocalization.ensureInitialized(); await EasyLocalization.ensureInitialized();
runApp( runApp(
EasyLocalization( EasyLocalization(
supportedLocales: [ supportedLocales: [Locale('ar', 'SA'), Locale('en', 'US')],
Locale('ar', 'SA'),
Locale('en', 'US')
],
fallbackLocale: Locale('en', 'US'), fallbackLocale: Locale('en', 'US'),
// startLocale: Locale('ar', 'SA'), // startLocale: Locale('ar', 'SA'),
path: 'resources/langs', path: 'resources/langs',
@ -43,7 +39,9 @@ class MyApp extends StatelessWidget {
child: Sizer( child: Sizer(
builder: (context, orientation, deviceType) { builder: (context, orientation, deviceType) {
AppState().setPostParamsModel( AppState().setPostParamsModel(
PostParamsModel(languageID: EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2,), PostParamsModel(
languageID: EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2,
),
); );
return MaterialApp( return MaterialApp(
theme: AppTheme.getTheme(EasyLocalization.of(context)?.locale.languageCode == "ar"), theme: AppTheme.getTheme(EasyLocalization.of(context)?.locale.languageCode == "ar"),

@ -1,3 +1,4 @@
import 'package:badges/badges.dart' as b;
import 'package:car_provider_app/api/api_client.dart'; import 'package:car_provider_app/api/api_client.dart';
import 'package:car_provider_app/api/client/user_api_client.dart'; import 'package:car_provider_app/api/client/user_api_client.dart';
import 'package:car_provider_app/api/shared_prefrence.dart'; import 'package:car_provider_app/api/shared_prefrence.dart';
@ -8,6 +9,8 @@ import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/models/m_response.dart'; import 'package:car_provider_app/models/m_response.dart';
import 'package:car_provider_app/models/user/image_response.dart'; import 'package:car_provider_app/models/user/image_response.dart';
import 'package:car_provider_app/pages/dashboard/widget/bottom_nav_bar.dart';
import 'package:car_provider_app/pages/settings/branch/branch_list_page.dart';
import 'package:car_provider_app/theme/colors.dart'; import 'package:car_provider_app/theme/colors.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
import 'package:car_provider_app/utils/utils.dart'; import 'package:car_provider_app/utils/utils.dart';
@ -23,10 +26,12 @@ import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'package:sizer/sizer.dart';
import 'dart:io'; import 'dart:io';
import '../../generated/locale_keys.g.dart'; import '../../generated/locale_keys.g.dart';
import '../../utils/location/Location.dart'; import '../../utils/location/Location.dart';
import 'fragments/home_fragment.dart';
class DashboardPage extends StatefulWidget { class DashboardPage extends StatefulWidget {
@override @override
@ -36,6 +41,7 @@ class DashboardPage extends StatefulWidget {
enum ImageSourceType { gallery, camera } enum ImageSourceType { gallery, camera }
class _DashboardPageState extends State<DashboardPage> { class _DashboardPageState extends State<DashboardPage> {
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
String userName = ""; String userName = "";
// void _handleURLButtonPress(BuildContext context, var type) { // void _handleURLButtonPress(BuildContext context, var type) {
@ -43,6 +49,7 @@ class _DashboardPageState extends State<DashboardPage> {
// MaterialPageRoute(builder: (context) => ImageFromGalleryEx(type))); // MaterialPageRoute(builder: (context) => ImageFromGalleryEx(type)));
// } // }
int _selectedIndex = 2;
File? imagePicked; File? imagePicked;
String image64 = ""; String image64 = "";
final _picker = ImagePicker(); final _picker = ImagePicker();
@ -68,19 +75,59 @@ class _DashboardPageState extends State<DashboardPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar( key: _scaffoldKey,
context, appBar: appBar(context,
title: LocaleKeys.logo_brand.tr(), leadingWidth: 100,
isRemoveBackButton: true, leading: InkWell(
onTap: () => _scaffoldKey.currentState!.openDrawer(),
child: Row(
children: [
21.width,
Image.asset(
"assets/images/bn_car.jpeg",
height: 38,
width: 38,
fit: BoxFit.cover,
).toCircle(),
6.width,
const Icon(Icons.menu),
],
), ),
drawer: showDrawer(context), ),
body: Container( actions: [
child: Container( IconButton(
child: Center( onPressed: () {},
child: LocaleKeys.dashboard_main.tr().toText24(), icon: const b.Badge(
badgeContent: Text(
'3',
style: TextStyle(
fontSize: 10,
color: Colors.white,
),
),
child: Icon(Icons.notifications_active),
badgeStyle: b.BadgeStyle(
badgeColor: MyColors.primaryColor,
padding: EdgeInsets.all(5),
), ),
), ),
), ),
10.width,
]),
drawer: showDrawer(context),
body: _selectedIndex == 0
? BranchListPage(
isNeedAppBar: false,
)
: const HomeFragment(),
bottomNavigationBar: mBottomNavBar(
_selectedIndex,
(int i) {
setState(() {
_selectedIndex = i;
});
},
),
); );
} }

@ -0,0 +1,36 @@
import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/pages/dashboard/widget/ad_widget.dart';
import 'package:car_provider_app/pages/dashboard/widget/appointment_slider_widget.dart';
import 'package:car_provider_app/pages/dashboard/widget/my_branches_widget.dart';
import 'package:flutter/material.dart';
import '../widget/view_all_widget.dart';
class HomeFragment extends StatelessWidget {
const HomeFragment({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return SizedBox(
width: double.infinity,
height: double.infinity,
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.only(top: 8, left: 21, right: 21, bottom: 21),
child: Column(
children: [
ViewAllWidget("Upcoming Appointment", "View All"),
const AppointmentSliderWidget(),
20.height,
ViewAllWidget("My Branch's", "View All"),
MyBranchesWidget(),
20.height,
ViewAllWidget("Recommended Ads", "View All"),
const AdWidget(),
],
),
),
),
);
}
}

@ -0,0 +1,105 @@
import 'package:car_provider_app/classes/colors.dart';
import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:flutter/material.dart';
class AdWidget extends StatelessWidget {
const AdWidget({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
children: [
showAd(),
12.height,
showAd(),
],
);
}
Widget showAd() {
return Row(
children: [
Image.asset(
"assets/images/bn_car.jpeg",
width: 80,
height: 80,
fit: BoxFit.cover,
),
12.width,
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
"Toyota Crolla".toText(fontSize: 16, isBold: true),
Row(
children: [
"Model:".toText10(
color: MyColors.lightTextColor,
),
2.width,
"2019".toText10(),
],
),
Row(
children: [
"Mileage:".toText10(
color: MyColors.lightTextColor,
),
2.width,
"73,000 km".toText10(),
],
),
],
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.start,
children: [
"Riyadh".toText10(
color: MyColors.lightTextColor,
),
"9 Hours Ago".toText10(
color: MyColors.lightTextColor,
),
],
),
],
),
8.height,
Row(
children: [
Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
"30,000".toText(fontSize: 16, isBold: true),
2.width,
"SAR:".toText10(
color: MyColors.lightTextColor,
),
],
),
),
const Icon(Icons.arrow_forward)
],
),
],
),
),
],
).toWhiteContainer(width: double.infinity, padding: 12);
}
}

@ -0,0 +1,89 @@
import 'package:car_provider_app/classes/colors.dart';
import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:flutter/material.dart';
import 'package:sizer/sizer.dart';
class AppointmentSliderWidget extends StatelessWidget {
const AppointmentSliderWidget({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
children: [
Row(
children: [
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
"Olaya Brach".toText12(
color: MyColors.lightTextColor,
isBold: true,
),
"Abdullah Alhbas".toText14(
isBold: true,
),
Row(
children: [
"Appt. On:".toText10(
color: MyColors.lightTextColor,
),
2.width,
"19-Mar-2023 11:48 AM".toText10(),
],
),
],
),
),
"1+ Requests".toText(fontSize: 10).toContainer(
borderRadius: 15,
backgroundColor: MyColors.lightGreyEAColor,
padding: const EdgeInsets.symmetric(
vertical: 6,
horizontal: 12,
),
),
],
),
8.height,
Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Expanded(
child: Column(
children: [
showServices("Maintenance"),
2.height,
showServices("Accessories and Modification"),
],
),
),
Icon(
Icons.arrow_forward,
),
],
),
],
).toWhiteContainer(width: double.infinity);
}
Widget showServices(String title) {
return Row(
children: [
Icon(
Icons.ac_unit,
color: MyColors.primaryColor,
size: 18,
),
8.width,
title.toText(
fontSize: 14,
isBold: true,
),
],
);
}
}

@ -0,0 +1,47 @@
import 'package:car_provider_app/classes/colors.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
Widget mBottomNavBar(int selectedIndex, Function(int) onSelected) {
return BottomNavigationBar(
items: <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: SvgPicture.asset("assets/icons/ic_branches.svg"),
activeIcon: SvgPicture.asset("assets/icons/ic_branches.svg", color: MyColors.primaryColor),
label: 'Branches',
),
BottomNavigationBarItem(
icon: SvgPicture.asset("assets/icons/ic_appoinments.svg"),
activeIcon: SvgPicture.asset("assets/icons/ic_appoinments.svg", color: MyColors.primaryColor),
label: 'Appointments',
),
BottomNavigationBarItem(
icon: SvgPicture.asset("assets/icons/ic_home.svg"),
activeIcon: SvgPicture.asset("assets/icons/ic_home.svg", color: MyColors.primaryColor),
label: 'Home',
),
BottomNavigationBarItem(
icon: SvgPicture.asset("assets/icons/ic_ads.svg"),
activeIcon: SvgPicture.asset("assets/icons/ic_ads.svg", color: MyColors.primaryColor),
label: 'Ads',
),
BottomNavigationBarItem(
icon: SvgPicture.asset("assets/icons/ic_requests.svg"),
activeIcon: SvgPicture.asset("assets/icons/ic_requests.svg", color: MyColors.primaryColor),
label: 'Requests',
),
],
currentIndex: selectedIndex,
type: BottomNavigationBarType.fixed,
selectedItemColor: Colors.amber[800],
showSelectedLabels: true,
showUnselectedLabels: true,
unselectedItemColor: MyColors.lightTextColor,
unselectedFontSize: 10,
selectedFontSize: 10,
onTap: (i) {
onSelected(i);
},
);
}

@ -0,0 +1,39 @@
import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:flutter/material.dart';
class MyBranchesWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
child: Row(
children: [
showBranch("Olaya Branch"),
12.width,
showBranch("Thakhasusi Branch"),
12.width,
],
),
);
}
Widget showBranch(String title) {
return SizedBox(
width: 90,
child: Column(
children: [
Image.asset(
"assets/images/bn_car.jpeg",
width: 80,
height: 80,
fit: BoxFit.cover,
).toCircle(borderRadius: 2000),
8.height,
title.toText(fontSize: 16, isBold: true, textAlign: TextAlign.center),
],
),
);
}
}

@ -0,0 +1,21 @@
import 'package:car_provider_app/classes/colors.dart';
import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:flutter/cupertino.dart';
Widget ViewAllWidget(String title, String subTitle) {
return Container(
width: double.infinity,
padding: const EdgeInsets.only(bottom: 10),
child: Row(
children: [
Expanded(child: title.toText16(isBold: true)),
subTitle.toText(
fontSize: 12,
isBold: true,
color: MyColors.primaryColor,
decoration: TextDecoration.underline,
)
],
),
);
}

@ -34,7 +34,7 @@ class _BranchDetailPageState extends State<BranchDetailPage> {
super.initState(); super.initState();
widget.branchData.serviceProviderServices!.forEach((element) { widget.branchData.serviceProviderServices!.forEach((element) {
categories.add( categories.add(
new CategoryData( CategoryData(
id: element.categoryId, id: element.categoryId,
categoryName: element.categoryName, categoryName: element.categoryName,
categoryNameN: element.categoryName, categoryNameN: element.categoryName,
@ -61,7 +61,7 @@ class _BranchDetailPageState extends State<BranchDetailPage> {
context, context,
title: LocaleKeys.branchName.tr(), title: LocaleKeys.branchName.tr(),
), ),
body: Container( body: SizedBox(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
child: Column( child: Column(

@ -22,6 +22,10 @@ import '../../../utils/navigator.dart';
import '../../../widgets/button/show_fill_button.dart'; import '../../../widgets/button/show_fill_button.dart';
class BranchListPage extends StatefulWidget { class BranchListPage extends StatefulWidget {
bool isNeedAppBar;
BranchListPage({Key? key, this.isNeedAppBar = true}) : super(key: key);
@override @override
State<BranchListPage> createState() => _BranchListPageState(); State<BranchListPage> createState() => _BranchListPageState();
} }
@ -35,7 +39,7 @@ class _BranchListPageState extends State<BranchListPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar( appBar:!widget.isNeedAppBar?null: appBar(
context, context,
title: LocaleKeys.myServiceBranches.tr(), title: LocaleKeys.myServiceBranches.tr(),
), ),
@ -57,7 +61,9 @@ class _BranchListPageState extends State<BranchListPage> {
future: BranchApiClent().getBranchAndServices(), future: BranchApiClent().getBranchAndServices(),
builder: (context, snapshot) { builder: (context, snapshot) {
if (snapshot.hasData) { if (snapshot.hasData) {
return snapshot.data!.data!.serviceProviderBranch!.length == 0 return snapshot.data!.data == null
? const Center(child: Text("No Branch Found"))
: snapshot.data!.data!.serviceProviderBranch!.isEmpty
? Center(child: Text(LocaleKeys.no_branch.tr())) ? Center(child: Text(LocaleKeys.no_branch.tr()))
: ListView.separated( : ListView.separated(
itemBuilder: (context, index) { itemBuilder: (context, index) {
@ -66,7 +72,7 @@ class _BranchListPageState extends State<BranchListPage> {
Container( Container(
width: 74, width: 74,
height: 50, height: 50,
decoration: BoxDecoration( decoration: const BoxDecoration(
color: MyColors.darkPrimaryColor, color: MyColors.darkPrimaryColor,
borderRadius: BorderRadius.all(Radius.circular(8)), borderRadius: BorderRadius.all(Radius.circular(8)),
), ),
@ -84,7 +90,7 @@ class _BranchListPageState extends State<BranchListPage> {
children: [ children: [
Row( Row(
children: [ children: [
Icon( const Icon(
Icons.place, Icons.place,
size: 12, size: 12,
color: MyColors.darkPrimaryColor, color: MyColors.darkPrimaryColor,
@ -102,7 +108,7 @@ class _BranchListPageState extends State<BranchListPage> {
), ),
Text( Text(
snapshot.data!.data!.serviceProviderBranch![index].branchName ?? "", snapshot.data!.data!.serviceProviderBranch![index].branchName ?? "",
style: TextStyle( style: const TextStyle(
fontSize: 14, fontSize: 14,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
@ -132,10 +138,10 @@ class _BranchListPageState extends State<BranchListPage> {
Utils.showToast(res.message ?? ""); Utils.showToast(res.message ?? "");
} }
}, },
icon: Icon(Icons.delete), icon: const Icon(Icons.delete),
color: Colors.red, color: Colors.red,
), ),
Icon( const Icon(
Icons.arrow_forward_rounded, Icons.arrow_forward_rounded,
size: 16, size: 16,
), ),
@ -153,10 +159,10 @@ class _BranchListPageState extends State<BranchListPage> {
return 12.height; return 12.height;
}, },
itemCount: snapshot.data!.data!.serviceProviderBranch!.length, itemCount: snapshot.data!.data!.serviceProviderBranch!.length,
padding: EdgeInsets.all(12), padding: const EdgeInsets.all(12),
); );
} else { } else {
return Center( return const Center(
child: CircularProgressIndicator(), child: CircularProgressIndicator(),
); );
} }

@ -17,6 +17,7 @@ import 'package:car_provider_app/widgets/button/show_fill_button.dart';
import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:car_provider_app/widgets/tab/role_type_tab.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -37,6 +38,28 @@ class _RegisterPageState extends State<RegisterPage> {
TextEditingController emailController = TextEditingController(); TextEditingController emailController = TextEditingController();
late Future<Role> futureRoles;
late Future<Country> futureCountries;
@override
void initState() {
super.initState();
fetchData();
}
fetchData() {
UserApiClent().getRoles().then((value) {
setState(() {
futureRoles = Future.value(value);
});
});
UserApiClent().getAllCountries().then((value) {
setState(() {
futureCountries = Future.value(value);
});
});
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
@ -44,9 +67,9 @@ class _RegisterPageState extends State<RegisterPage> {
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
padding: EdgeInsets.all(20), padding: const EdgeInsets.all(20),
child: SingleChildScrollView( child: SingleChildScrollView(
child: Container( child: SizedBox(
height: MediaQuery.of(context).size.height, height: MediaQuery.of(context).size.height,
child: Column( child: Column(
children: [ children: [
@ -59,24 +82,28 @@ class _RegisterPageState extends State<RegisterPage> {
), ),
30.height, 30.height,
FutureBuilder<Role>( FutureBuilder<Role>(
future: UserApiClent().getRoles(), future: futureRoles,
builder: (context, snapshot) { builder: (context, snapshot) {
if (snapshot.hasData) { if (snapshot.hasData) {
List<DropValue> dropList = []; List<DropValue> dropList = [];
snapshot.data?.data?.forEach((element) { snapshot.data?.data?.forEach((element) {
dropList.add(DropValue(element.id ?? 0, EasyLocalization.of(context)?.currentLocale?.countryCode == "SA" ? element.roleNameN ?? "" : element.roleName ?? "", "")); dropList.add(DropValue(element.id ?? 0, EasyLocalization.of(context)?.currentLocale?.countryCode == "SA" ? element.roleNameN ?? "" : element.roleName ?? "", ""));
}); });
return DropdownField((DropValue value) { return RoleTypeTab(
0,
dropList,
onSelect: (DropValue value) {
role = value.id; role = value.id;
}, list: dropList, hint: LocaleKeys.selectRole.tr()); },
);
} else { } else {
return CircularProgressIndicator(); return const CircularProgressIndicator();
} }
}, },
), ),
18.height, 18.height,
FutureBuilder<Country>( FutureBuilder<Country>(
future: UserApiClent().getAllCountries(), future: futureCountries,
builder: (context, snapshot) { builder: (context, snapshot) {
if (snapshot.hasData) { if (snapshot.hasData) {
List<DropValue> dropList = []; List<DropValue> dropList = [];
@ -146,8 +173,8 @@ class _RegisterPageState extends State<RegisterPage> {
Flexible( Flexible(
child: TextField( child: TextField(
controller: emailController, controller: emailController,
onChanged: (v){ onChanged: (v) {
phoneNum=v; phoneNum = v;
}, },
style: const TextStyle( style: const TextStyle(
fontSize: 20, fontSize: 20,

@ -17,7 +17,7 @@ class AppTheme {
primaryColor: primaryColor, primaryColor: primaryColor,
primarySwatch: Colors.orange, primarySwatch: Colors.orange,
backgroundColor: Colors.white, backgroundColor: Colors.white,
scaffoldBackgroundColor: Colors.white, scaffoldBackgroundColor: Color(0xffF8F8F8),
primaryTextTheme: TextTheme( primaryTextTheme: TextTheme(
headline6: TextStyle(color: Colors.white), headline6: TextStyle(color: Colors.white),
), ),

@ -34,3 +34,33 @@ Future<bool> requestPermissionGranted(
return false; return false;
} }
} }
class AppPermissions{
static void location(Function(bool) completion) {
Permission.location.isGranted.then((isGranted){
if(!isGranted){
Permission.location.request().then((granted){
completion(granted == PermissionStatus.granted);
});
}
completion(isGranted);
});
}
static void checkAll(Function(bool) completion){
[
Permission.location
].request().then((value){
bool allGranted = false;
value.values.forEach((element) {
allGranted = allGranted && element == PermissionStatus.granted;
});
completion(allGranted);
});
}
}

@ -2,13 +2,14 @@ import 'dart:async';
import 'dart:math'; import 'dart:math';
import 'dart:ui'; import 'dart:ui';
import 'package:car_provider_app/utils/AppPermissionHandler.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import '../../classes/app_permissions.dart';
import '../../classes/utils.dart'; import '../../classes/utils.dart';
// import 'package:geodesy/geodesy.dart' as geodesy; // import 'package:geodesy/geodesy.dart' as geodesy;

@ -14,16 +14,21 @@ AppBar appBar(
Color? backIconColor, Color? backIconColor,
List<Widget>? actions, List<Widget>? actions,
bool isRemoveBackButton = false, bool isRemoveBackButton = false,
Widget? leading,
double? leadingWidth,
VoidCallback? onTap,
}) { }) {
return AppBar( return AppBar(
backgroundColor: backgroundColor ?? appBackgroundColor, backgroundColor: backgroundColor ?? appBackgroundColor,
elevation: elevation ?? 0, elevation: elevation ?? 0,
centerTitle: isTitleCenter ?? true, centerTitle: isTitleCenter ?? true,
leadingWidth: leadingWidth,
leading: isRemoveBackButton leading: isRemoveBackButton
? null ? null
: IconButton( : leading ??
icon: Icon(Icons.arrow_back_ios, color: Colors.black), IconButton(
onPressed: () => Navigator.of(context).pop(), icon: const Icon(Icons.arrow_back_ios, color: Colors.black),
onPressed: onTap ?? () => Navigator.of(context).pop(),
), ),
iconTheme: IconThemeData( iconTheme: IconThemeData(
color: backIconColor ?? Colors.black, //change your color here color: backIconColor ?? Colors.black, //change your color here

@ -0,0 +1,60 @@
import 'package:car_provider_app/classes/colors.dart';
import 'package:car_provider_app/widgets/dropdown/dropdow_field.dart';
import 'package:car_provider_app/widgets/extensions/int_extensions.dart';
import 'package:flutter/material.dart';
class RoleTypeTab extends StatefulWidget {
int selectedIndex;
List<DropValue> dropList;
Function(DropValue value) onSelect;
RoleTypeTab(this.selectedIndex, this.dropList, {required this.onSelect});
@override
State<RoleTypeTab> createState() => _RoleTypeTabState();
}
class _RoleTypeTabState extends State<RoleTypeTab> {
@override
Widget build(BuildContext context) {
return SizedBox(
width: double.infinity,
height: 45,
child: ListView.separated(
itemBuilder: (context, index) {
return InkWell(
onTap: () {
setState(() {
widget.selectedIndex = index;
widget.onSelect(widget.dropList[index]);
});
},
child: Container(
width: (MediaQuery.of(context).size.width / 2)-30,
height: 45,
decoration: BoxDecoration(
color: widget.selectedIndex == index ? MyColors.darkPrimaryColor : Colors.grey[200],
// border: Border.all(color: type == ClassType.NUMBER ? MyColors.darkPrimaryColor : Colors.transparent, width: 2),
borderRadius: const BorderRadius.all(Radius.circular(0)),
),
child: Center(
child: Text(
widget.dropList[index].value,
style: TextStyle(
color: widget.selectedIndex == index ? MyColors.white : Colors.black,
fontSize: 10,
),
),
),
),
);
},
separatorBuilder: (context, index) {
return 12.width;
},
itemCount: widget.dropList.length,
scrollDirection: Axis.horizontal,
),
);
}
}

@ -5,114 +5,130 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: args name: args
url: "https://pub.dartlang.org" sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.1" version: "2.4.0"
async: async:
dependency: transitive dependency: transitive
description: description:
name: async name: async
url: "https://pub.dartlang.org" sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
url: "https://pub.dev"
source: hosted source: hosted
version: "2.9.0" version: "2.10.0"
badges:
dependency: "direct main"
description:
name: badges
sha256: "461031a60efbb95276f52107f63d5d45008b5ca1eb7f8ca440cadda9ec2143b0"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
url: "https://pub.dartlang.org" sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
characters: characters:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
url: "https://pub.dartlang.org" sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.2.1"
clock: clock:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
url: "https://pub.dartlang.org" sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.1.1"
collection: collection:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
url: "https://pub.dartlang.org" sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
url: "https://pub.dev"
source: hosted source: hosted
version: "1.16.0" version: "1.17.0"
cross_file: cross_file:
dependency: transitive dependency: transitive
description: description:
name: cross_file name: cross_file
url: "https://pub.dartlang.org" sha256: "0b0036e8cccbfbe0555fd83c1d31a6f30b77a96b598b35a5d36dd41f718695e9"
source: hosted url: "https://pub.dev"
version: "0.3.3+1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.2" version: "0.3.3+4"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
name: cupertino_icons name: cupertino_icons
url: "https://pub.dartlang.org" sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.5" version: "1.0.5"
easy_localization: easy_localization:
dependency: "direct main" dependency: "direct main"
description: description:
name: easy_localization name: easy_localization
url: "https://pub.dartlang.org" sha256: "6a2e99fa0bfe5765bf4c6ca9b137d5de2c75593007178c5e4cd2ae985f870080"
url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.1" version: "3.0.1"
easy_logger: easy_logger:
dependency: transitive dependency: transitive
description: description:
name: easy_logger name: easy_logger
url: "https://pub.dartlang.org" sha256: c764a6e024846f33405a2342caf91c62e357c24b02c04dbc712ef232bf30ffb7
url: "https://pub.dev"
source: hosted source: hosted
version: "0.0.2" version: "0.0.2"
equatable: equatable:
dependency: "direct main" dependency: "direct main"
description: description:
name: equatable name: equatable
url: "https://pub.dartlang.org" sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.3" version: "2.0.5"
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
url: "https://pub.dartlang.org" sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.1" version: "1.3.1"
ffi: ffi:
dependency: transitive dependency: transitive
description: description:
name: ffi name: ffi
url: "https://pub.dartlang.org" sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978
url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "2.0.1"
file: file:
dependency: transitive dependency: transitive
description: description:
name: file name: file
url: "https://pub.dartlang.org" sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
url: "https://pub.dev"
source: hosted source: hosted
version: "6.1.2" version: "6.1.4"
file_picker: file_picker:
dependency: "direct main" dependency: "direct main"
description: description:
name: file_picker name: file_picker
url: "https://pub.dartlang.org" sha256: d8e9ca7e5d1983365c277f12c21b4362df6cf659c99af146ad4d04eb33033013
url: "https://pub.dev"
source: hosted source: hosted
version: "4.6.1" version: "5.2.6"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -122,7 +138,8 @@ packages:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: flutter_lints name: flutter_lints
url: "https://pub.dartlang.org" sha256: b543301ad291598523947dc534aaddc5aaad597b709d2426d3a0e0d44c5cb493
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.4" version: "1.0.4"
flutter_localizations: flutter_localizations:
@ -134,16 +151,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flutter_plugin_android_lifecycle name: flutter_plugin_android_lifecycle
url: "https://pub.dartlang.org" sha256: c224ac897bed083dabf11f238dd11a239809b446740be0c2044608c50029ffdf
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.7" version: "2.0.9"
flutter_svg: flutter_svg:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_svg name: flutter_svg
url: "https://pub.dartlang.org" sha256: "6ff9fa12892ae074092de2fa6a9938fb21dbabfdaa2ff57dc697ff912fc8d4b2"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1+1" version: "1.1.6"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@ -158,385 +177,456 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: fluttertoast name: fluttertoast
url: "https://pub.dartlang.org" sha256: "2f9c4d3f4836421f7067a28f8939814597b27614e021da9d63e5d3fb6e212d25"
url: "https://pub.dev"
source: hosted source: hosted
version: "8.0.9" version: "8.2.1"
geocoding: geocoding:
dependency: "direct main" dependency: "direct main"
description: description:
name: geocoding name: geocoding
url: "https://pub.dartlang.org" sha256: b34c0501bbbaf3190b85bef3078b27cf66c28a8915c6d3af50d67f356aa7da31
url: "https://pub.dev"
source: hosted
version: "2.1.0"
geocoding_android:
dependency: transitive
description:
name: geocoding_android
sha256: "5a1fc0cec9b0497b44ca31c1fa8d1c891f3aded1053e6bb2eac075d3bd1bf046"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.4" version: "2.1.0"
geocoding_ios:
dependency: transitive
description:
name: geocoding_ios
sha256: c85495ce8fb34e4fbd2dd8fc5f79263d622d9f88c4af948c965daf6b27a7f3a1
url: "https://pub.dev"
source: hosted
version: "2.1.0"
geocoding_platform_interface: geocoding_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: geocoding_platform_interface name: geocoding_platform_interface
url: "https://pub.dartlang.org" sha256: "8848605d307d844d89937cdb4b8ad7dfa880552078f310fa24d8a460f6dddab4"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
geolocator: geolocator:
dependency: "direct main" dependency: "direct main"
description: description:
name: geolocator name: geolocator
url: "https://pub.dartlang.org" sha256: "5c23f3613f50586c0bbb2b8f970240ae66b3bd992088cf60dd5ee2e6f7dde3a8"
url: "https://pub.dev"
source: hosted source: hosted
version: "9.0.1" version: "9.0.2"
geolocator_android: geolocator_android:
dependency: transitive dependency: transitive
description: description:
name: geolocator_android name: geolocator_android
url: "https://pub.dartlang.org" sha256: "2ba24690aee0a3e1b6b7bd47c2711a50c874e95e4c758346589d35194adf6d6a"
url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.2" version: "4.1.7"
geolocator_apple: geolocator_apple:
dependency: transitive dependency: transitive
description: description:
name: geolocator_apple name: geolocator_apple
url: "https://pub.dartlang.org" sha256: "22b60ca3b8c0f58e6a9688ff855ee39ab813ca3f0c0609a48d282f6631266f2e"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.1" version: "2.2.5"
geolocator_platform_interface: geolocator_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: geolocator_platform_interface name: geolocator_platform_interface
url: "https://pub.dartlang.org" sha256: af4d69231452f9620718588f41acc4cb58312368716bfff2e92e770b46ce6386
url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.6" version: "4.0.7"
geolocator_web: geolocator_web:
dependency: transitive dependency: transitive
description: description:
name: geolocator_web name: geolocator_web
url: "https://pub.dartlang.org" sha256: f68a122da48fcfff68bbc9846bb0b74ef651afe84a1b1f6ec20939de4d6860e1
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.6" version: "2.1.6"
geolocator_windows: geolocator_windows:
dependency: transitive dependency: transitive
description: description:
name: geolocator_windows name: geolocator_windows
url: "https://pub.dartlang.org" sha256: f5911c88e23f48b598dd506c7c19eff0e001645bdc03bb6fecb9f4549208354d
url: "https://pub.dev"
source: hosted source: hosted
version: "0.1.1" version: "0.1.1"
google_maps_flutter: google_maps_flutter:
dependency: "direct main" dependency: "direct main"
description: description:
name: google_maps_flutter name: google_maps_flutter
url: "https://pub.dartlang.org" sha256: "24392ef192f3b00bcd93151375676805a9933574423a5bd5509a0ead2e8a4215"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.10" version: "2.2.5"
google_maps_flutter_android:
dependency: transitive
description:
name: google_maps_flutter_android
sha256: a8ee18649a67750cbd477a6867a1bf9c4154c5e9f69d722c8b53a627a6d58303
url: "https://pub.dev"
source: hosted
version: "2.4.9"
google_maps_flutter_ios:
dependency: transitive
description:
name: google_maps_flutter_ios
sha256: e9ad74415a222573625a2c1717adc1e375b18e8ce660fc12db734d1bda1132d4
url: "https://pub.dev"
source: hosted
version: "2.2.1"
google_maps_flutter_platform_interface: google_maps_flutter_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: google_maps_flutter_platform_interface name: google_maps_flutter_platform_interface
url: "https://pub.dartlang.org" sha256: a07811d2b82055815ede75e1fe4b7b76f71a0b4820b26f71bdaddd157d6a3e20
url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.1" version: "2.2.6"
http: http:
dependency: "direct main" dependency: "direct main"
description: description:
name: http name: http
url: "https://pub.dartlang.org" sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.13.4" version: "0.13.5"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:
name: http_parser name: http_parser
url: "https://pub.dartlang.org" sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.1" version: "4.0.2"
image_picker: image_picker:
dependency: "direct main" dependency: "direct main"
description: description:
name: image_picker name: image_picker
url: "https://pub.dartlang.org" sha256: "64b21d9f0e065f9ab0e4dde458076226c97382cc0c6949144cb874c62bf8e9f8"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.8.5+3" version: "0.8.7"
image_picker_android: image_picker_android:
dependency: transitive dependency: transitive
description: description:
name: image_picker_android name: image_picker_android
url: "https://pub.dartlang.org" sha256: b81db5f5ed8a69d54d5f0932c2af8120e8c0518a037d8beee494eec671da4d4c
url: "https://pub.dev"
source: hosted source: hosted
version: "0.8.5+1" version: "0.8.6+5"
image_picker_for_web: image_picker_for_web:
dependency: transitive dependency: transitive
description: description:
name: image_picker_for_web name: image_picker_for_web
url: "https://pub.dartlang.org" sha256: "98f50d6b9f294c8ba35e25cc0d13b04bfddd25dbc8d32fa9d566a6572f2c081c"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.8" version: "2.1.12"
image_picker_ios: image_picker_ios:
dependency: transitive dependency: transitive
description: description:
name: image_picker_ios name: image_picker_ios
url: "https://pub.dartlang.org" sha256: "50e882fe0a06bf0c8f7f5bce78d30975f279213293afc9471dc35f05617c50ff"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.8.5+6" version: "0.8.7+1"
image_picker_platform_interface: image_picker_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: image_picker_platform_interface name: image_picker_platform_interface
url: "https://pub.dartlang.org" sha256: "1991219d9dbc42a99aff77e663af8ca51ced592cd6685c9485e3458302d3d4f8"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.6.0" version: "2.6.3"
injector: injector:
dependency: "direct main" dependency: "direct main"
description: description:
name: injector name: injector
url: "https://pub.dartlang.org" sha256: "2a683124c716e93b45521794f55bfe770e069cb3d871fc4fbc65b5acef78e832"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
intl: intl:
dependency: transitive dependency: transitive
description: description:
name: intl name: intl
url: "https://pub.dartlang.org" sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.17.0" version: "0.17.0"
js: js:
dependency: transitive dependency: transitive
description: description:
name: js name: js
url: "https://pub.dartlang.org" sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.6.4" version: "0.6.5"
lints: lints:
dependency: transitive dependency: transitive
description: description:
name: lints name: lints
url: "https://pub.dartlang.org" sha256: a2c3d198cb5ea2e179926622d433331d8b58374ab8f29cdda6e863bd62fd369c
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
url: "https://pub.dartlang.org" sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.12" version: "0.12.13"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
url: "https://pub.dartlang.org" sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
url: "https://pub.dev"
source: hosted source: hosted
version: "0.1.5" version: "0.2.0"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
url: "https://pub.dartlang.org" sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.0" version: "1.8.0"
nested: nested:
dependency: transitive dependency: transitive
description: description:
name: nested name: nested
url: "https://pub.dartlang.org" sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
path: path:
dependency: transitive dependency: transitive
description: description:
name: path name: path
url: "https://pub.dartlang.org" sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.2" version: "1.8.2"
path_drawing: path_drawing:
dependency: transitive dependency: transitive
description: description:
name: path_drawing name: path_drawing
url: "https://pub.dartlang.org" sha256: bbb1934c0cbb03091af082a6389ca2080345291ef07a5fa6d6e078ba8682f977
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.1"
path_parsing: path_parsing:
dependency: transitive dependency: transitive
description: description:
name: path_parsing name: path_parsing
url: "https://pub.dartlang.org" sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.1"
path_provider: path_provider:
dependency: "direct main" dependency: "direct main"
description: description:
name: path_provider name: path_provider
url: "https://pub.dartlang.org" sha256: "04890b994ee89bfa80bf3080bfec40d5a92c5c7a785ebb02c13084a099d2b6f9"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.11" version: "2.0.13"
path_provider_android: path_provider_android:
dependency: transitive dependency: transitive
description: description:
name: path_provider_android name: path_provider_android
url: "https://pub.dartlang.org" sha256: "019f18c9c10ae370b08dce1f3e3b73bc9f58e7f087bb5e921f06529438ac0ae7"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.17" version: "2.0.24"
path_provider_ios: path_provider_foundation:
dependency: transitive dependency: transitive
description: description:
name: path_provider_ios name: path_provider_foundation
url: "https://pub.dartlang.org" sha256: "12eee51abdf4d34c590f043f45073adbb45514a108bd9db4491547a2fd891059"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.11" version: "2.2.0"
path_provider_linux: path_provider_linux:
dependency: transitive dependency: transitive
description: description:
name: path_provider_linux name: path_provider_linux
url: "https://pub.dartlang.org" sha256: "2ae08f2216225427e64ad224a24354221c2c7907e448e6e0e8b57b1eb9f10ad1"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.7" version: "2.1.10"
path_provider_macos:
dependency: transitive
description:
name: path_provider_macos
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.6"
path_provider_platform_interface: path_provider_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: path_provider_platform_interface name: path_provider_platform_interface
url: "https://pub.dartlang.org" sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.4" version: "2.0.6"
path_provider_windows: path_provider_windows:
dependency: transitive dependency: transitive
description: description:
name: path_provider_windows name: path_provider_windows
url: "https://pub.dartlang.org" sha256: f53720498d5a543f9607db4b0e997c4b5438884de25b0f73098cc2671a51b130
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.7" version: "2.1.5"
permission_handler: permission_handler:
dependency: "direct main" dependency: "direct main"
description: description:
name: permission_handler name: permission_handler
url: "https://pub.dartlang.org" sha256: "33c6a1253d1f95fd06fa74b65b7ba907ae9811f9d5c1d3150e51417d04b8d6a8"
url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.0" version: "10.2.0"
permission_handler_android: permission_handler_android:
dependency: transitive dependency: transitive
description: description:
name: permission_handler_android name: permission_handler_android
url: "https://pub.dartlang.org" sha256: "8028362b40c4a45298f1cbfccd227c8dd6caf0e27088a69f2ba2ab15464159e2"
url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.0" version: "10.2.0"
permission_handler_apple: permission_handler_apple:
dependency: transitive dependency: transitive
description: description:
name: permission_handler_apple name: permission_handler_apple
url: "https://pub.dartlang.org" sha256: "9c370ef6a18b1c4b2f7f35944d644a56aa23576f23abee654cf73968de93f163"
url: "https://pub.dev"
source: hosted source: hosted
version: "9.0.4" version: "9.0.7"
permission_handler_platform_interface: permission_handler_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: permission_handler_platform_interface name: permission_handler_platform_interface
url: "https://pub.dartlang.org" sha256: "68abbc472002b5e6dfce47fe9898c6b7d8328d58b5d2524f75e277c07a97eb84"
url: "https://pub.dev"
source: hosted source: hosted
version: "3.7.0" version: "3.9.0"
permission_handler_windows: permission_handler_windows:
dependency: transitive dependency: transitive
description: description:
name: permission_handler_windows name: permission_handler_windows
url: "https://pub.dartlang.org" sha256: f67cab14b4328574938ecea2db3475dad7af7ead6afab6338772c5f88963e38b
url: "https://pub.dev"
source: hosted source: hosted
version: "0.1.0" version: "0.1.2"
petitparser: petitparser:
dependency: transitive dependency: transitive
description: description:
name: petitparser name: petitparser
url: "https://pub.dartlang.org" sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4"
url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.0" version: "5.1.0"
platform: platform:
dependency: transitive dependency: transitive
description: description:
name: platform name: platform
url: "https://pub.dartlang.org" sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.0" version: "3.1.0"
plugin_platform_interface: plugin_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: plugin_platform_interface name: plugin_platform_interface
url: "https://pub.dartlang.org" sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.4"
process: process:
dependency: transitive dependency: transitive
description: description:
name: process name: process
url: "https://pub.dartlang.org" sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
url: "https://pub.dev"
source: hosted source: hosted
version: "4.2.4" version: "4.2.4"
provider: provider:
dependency: "direct main" dependency: "direct main"
description: description:
name: provider name: provider
url: "https://pub.dartlang.org" sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f
url: "https://pub.dev"
source: hosted source: hosted
version: "6.0.3" version: "6.0.5"
shared_preferences: shared_preferences:
dependency: "direct main" dependency: "direct main"
description: description:
name: shared_preferences name: shared_preferences
url: "https://pub.dartlang.org" sha256: ee6257848f822b8481691f20c3e6d2bfee2e9eccb2a3d249907fcfb198c55b41
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.15" version: "2.0.18"
shared_preferences_android: shared_preferences_android:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_android name: shared_preferences_android
url: "https://pub.dartlang.org" sha256: ad423a80fe7b4e48b50d6111b3ea1027af0e959e49d485712e134863d9c1c521
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.12" version: "2.0.17"
shared_preferences_ios: shared_preferences_foundation:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_ios name: shared_preferences_foundation
url: "https://pub.dartlang.org" sha256: "1e755f8583229f185cfca61b1d80fb2344c9d660e1c69ede5450d8f478fa5310"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.1" version: "2.1.5"
shared_preferences_linux: shared_preferences_linux:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_linux name: shared_preferences_linux
url: "https://pub.dartlang.org" sha256: "3a59ed10890a8409ad0faad7bb2957dab4b92b8fbe553257b05d30ed8af2c707"
source: hosted url: "https://pub.dev"
version: "2.1.1"
shared_preferences_macos:
dependency: transitive
description:
name: shared_preferences_macos
url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.4" version: "2.1.5"
shared_preferences_platform_interface: shared_preferences_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_platform_interface name: shared_preferences_platform_interface
url: "https://pub.dartlang.org" sha256: "824bfd02713e37603b2bdade0842e47d56e7db32b1dcdd1cae533fb88e2913fc"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.0" version: "2.1.1"
shared_preferences_web: shared_preferences_web:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_web name: shared_preferences_web
url: "https://pub.dartlang.org" sha256: "0dc2633f215a3d4aa3184c9b2c5766f4711e4e5a6b256e62aafee41f89f1bfb8"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.4" version: "2.0.6"
shared_preferences_windows: shared_preferences_windows:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_windows name: shared_preferences_windows
url: "https://pub.dartlang.org" sha256: "71bcd669bb9cdb6b39f22c4a7728b6d49e934f6cba73157ffa5a54f1eed67436"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.1" version: "2.1.5"
sizer: sizer:
dependency: "direct main" dependency: "direct main"
description: description:
name: sizer name: sizer
url: "https://pub.dartlang.org" sha256: d2b3cb6cbc4a637f508dacd786bae55df31e5fc088044248a43e4fd1e050c117
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.15" version: "2.0.15"
sky_engine: sky_engine:
@ -548,93 +638,106 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: source_span name: source_span
url: "https://pub.dartlang.org" sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.0" version: "1.9.1"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
url: "https://pub.dartlang.org" sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted source: hosted
version: "1.10.0" version: "1.11.0"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
url: "https://pub.dartlang.org" sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
stream_transform: stream_transform:
dependency: transitive dependency: transitive
description: description:
name: stream_transform name: stream_transform
url: "https://pub.dartlang.org" sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.0" version: "2.1.0"
string_scanner: string_scanner:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
url: "https://pub.dartlang.org" sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.2.0"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
url: "https://pub.dartlang.org" sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.2.1"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.dartlang.org" sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
url: "https://pub.dev"
source: hosted source: hosted
version: "0.4.12" version: "0.4.16"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
name: typed_data name: typed_data
url: "https://pub.dartlang.org" sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.1" version: "1.3.1"
universal_io: universal_io:
dependency: transitive dependency: transitive
description: description:
name: universal_io name: universal_io
url: "https://pub.dartlang.org" sha256: "06866290206d196064fd61df4c7aea1ffe9a4e7c4ccaa8fcded42dd41948005d"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.4" version: "2.2.0"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
url: "https://pub.dartlang.org" sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.4"
win32: win32:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
url: "https://pub.dartlang.org" sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46
url: "https://pub.dev"
source: hosted source: hosted
version: "2.6.1" version: "3.1.3"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
name: xdg_directories name: xdg_directories
url: "https://pub.dartlang.org" sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1
url: "https://pub.dev"
source: hosted source: hosted
version: "0.2.0+1" version: "1.0.0"
xml: xml:
dependency: transitive dependency: transitive
description: description:
name: xml name: xml
url: "https://pub.dartlang.org" sha256: "979ee37d622dec6365e2efa4d906c37470995871fe9ae080d967e192d88286b5"
url: "https://pub.dev"
source: hosted source: hosted
version: "6.1.0" version: "6.2.2"
sdks: sdks:
dart: ">=2.17.0 <3.0.0" dart: ">=2.18.0 <3.0.0"
flutter: ">=2.11.0-0.1.pre" flutter: ">=3.3.0"

@ -44,9 +44,11 @@ dependencies:
sizer: ^2.0.15 sizer: ^2.0.15
fluttertoast: ^8.0.8 fluttertoast: ^8.0.8
shared_preferences: ^2.0.6 shared_preferences: ^2.0.6
file_picker: ^4.4.0 file_picker: any
image_picker: ^0.8.4+4 image_picker: ^0.8.4+4
equatable: ^2.0.3 equatable: ^2.0.3
badges: ^3.0.2

Loading…
Cancel
Save