aamir_dev
Aamir.Muhammad 2 years ago
parent 986a41c504
commit b78aeb8002

@ -376,14 +376,14 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = CK4WN356P5;
DEVELOPMENT_TEAM = 99Z3UD3LJM;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderApp;
PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderAppp;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
@ -504,14 +504,14 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = CK4WN356P5;
DEVELOPMENT_TEAM = 99Z3UD3LJM;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderApp;
PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderAppp;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@ -527,14 +527,14 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = CK4WN356P5;
DEVELOPMENT_TEAM = 99Z3UD3LJM;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderApp;
PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderAppp;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;

@ -27,8 +27,6 @@
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
@ -38,8 +36,8 @@
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
@ -61,8 +59,13 @@
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
<EnvironmentVariables>
<EnvironmentVariable
key = "IDEPreferLogStreaming"
value = "YES"
isEnabled = "YES">
</EnvironmentVariable>
</EnvironmentVariables>
</LaunchAction>
<ProfileAction
buildConfiguration = "Profile"

@ -1,5 +1,6 @@
import UIKit
import Flutter
import GoogleMaps
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
@ -7,6 +8,7 @@ import Flutter
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GMSServices.provideAPIKey("AIzaSyCyDbWUM9d_sBUGIE8PcuShzPaqO08NSC8")
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}

@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
@ -22,6 +24,22 @@
<string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppleMusicUsageDescription</key>
<string>Access to pick a photo</string>
<key>NSCameraUsageDescription</key>
<string>Access to take a photo by camera</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Access to pick a photo</string>
<key>NSFaceIDUsageDescription</key>
<string>This app requires Face ID to allow biometric authentication for app login.</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>This App requires access to your location to pick the location.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>This App requires access to your location to pick the location.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>This App requires access to your location to pick the location.</string>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
@ -41,15 +59,5 @@
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>NSCameraUsageDescription</key>
<string>Access to take a photo by camera</string>
<key>NSAppleMusicUsageDescription</key>
<string>Access to pick a photo</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Access to pick a photo</string>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
</dict>
</plist>

@ -18,7 +18,7 @@ import 'package:car_provider_app/views/settings/services/duplication/sheet/appro
import 'package:car_provider_app/views/settings/services/items_list_page.dart';
import 'package:car_provider_app/views/settings/services/services_list_page.dart';
import 'package:car_provider_app/views/subscriptions/my_subscritions_page.dart';
import 'package:car_provider_app/views/subscriptions/subscriptions_page.dart';
import 'package:car_provider_app/views/subscriptions/all_subscriptions_page.dart';
import 'package:mc_common_app/config/routes.dart';
import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart';
import 'package:flutter/material.dart';

@ -255,7 +255,7 @@ class _AddNewServiceAppointmentPageState extends State<AddNewServiceAppointmentP
await context.read<AppointmentsVM>().getMyAppointmentsForProvider({
"ServiceProviderID": injector.get<AppState>().getUser.data?.userInfo?.providerId.toString() ?? "0",
"ProviderBranchID": branchId.toString(),
}, isNeedToRebuild: true);
},);
}
double calculatePrice() {

@ -156,6 +156,6 @@ class MergeAppointmentListPage extends StatelessWidget {
.toString() ??
"0",
"ProviderBranchID": branchId.toString(),
}, isNeedToRebuild: true);
});
}
}

@ -21,7 +21,6 @@ import 'package:provider/provider.dart';
import '../dashboard/widget/appointment_slider_widget.dart';
import 'package:easy_localization/easy_localization.dart';
class UpdateAppointmentPage extends StatelessWidget {
late AppointmentListModel appointmentListModel;
@ -30,7 +29,7 @@ class UpdateAppointmentPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: CustomAppBar(
appBar: CustomAppBar(
title: LocaleKeys.updateAppointment.tr(),
),
body: SizedBox(
@ -266,6 +265,6 @@ class UpdateAppointmentPage extends StatelessWidget {
await context.read<AppointmentsVM>().getMyAppointmentsForProvider({
"ServiceProviderID": injector.get<AppState>().getUser.data?.userInfo?.providerId.toString() ?? "0",
"ProviderBranchID": branchId.toString(),
}, isNeedToRebuild: true);
});
}
}

@ -25,6 +25,7 @@ import 'package:mc_common_app/view_models/ad_view_model.dart';
import 'package:mc_common_app/view_models/appointments_view_model.dart';
import 'package:mc_common_app/view_models/chat_view_model.dart';
import 'package:mc_common_app/view_models/requests_view_model.dart';
import 'package:mc_common_app/view_models/subscriptions_view_model.dart';
import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:mc_common_app/widgets/common_widgets/bottom_nav_bar.dart';
@ -49,20 +50,15 @@ class _DashboardPageState extends State<DashboardPage> {
dashboardVM = Provider.of<DashboardVM>(context, listen: false);
context.read<RequestsVM>().populateRequestsFilterList();
context.read<AppointmentsVM>().populateAppointmentsFilterList();
_onRefresh();
scheduleMicrotask(() => _onRefresh());
}
Future<void> _onRefresh() async {
final requestsVM = context.read<RequestsVM>();
// final chatVM = context.read<ChatVM>();
// context.read<AdVM>().populateAdsFilterList();
context.read<ServiceVM>().getBranchAndServices();
await context.read<ServiceVM>().getBranchAndServices();
AdVM adVm = Provider.of<AdVM>(context, listen: false);
// context.read<AppointmentsVM>().myUpComingAppointments,
AppointmentsVM appointmentsVM = Provider.of<AppointmentsVM>(context, listen: false);
if (appointmentsVM.myAppointments.isEmpty) {
await appointmentsVM.getMyAppointmentsForProvider({"ServiceProviderID": injector.get<AppState>().getUser.data?.userInfo?.providerId.toString() ?? "0"});
}
SubscriptionsVM sVM = Provider.of<SubscriptionsVM>(context, listen: false);
await context.read<AppointmentsVM>().getMyAppointmentsForProvider({"ServiceProviderID": injector.get<AppState>().getUser.data?.userInfo?.providerId.toString() ?? "0"});
adVm.populateAdsFilterList();
if (adVm.myAds.isEmpty) {
await adVm.getMyAds();
@ -82,11 +78,13 @@ class _DashboardPageState extends State<DashboardPage> {
if (requestsVM.myRequests.isEmpty) {
await requestsVM.getRequests(appType: AppType.provider);
}
if (sVM.mySubscriptionsBySp.isEmpty) {
await sVM.getMySubscriptionsBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? "");
}
// await chatVM.buildHubConnection(context);
}
@override
Widget build(BuildContext context) {
List<Widget> fragments = [

@ -1,3 +1,5 @@
import 'package:car_provider_app/config/provider_routes.dart';
import 'package:car_provider_app/view_models/dashboard_view_model.dart';
import 'package:car_provider_app/views/dashboard/widget/my_service_provider.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
@ -5,11 +7,13 @@ import 'package:mc_common_app/classes/app_state.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/models/appointments_models/appointment_list_model.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/view_models/ad_view_model.dart';
import 'package:mc_common_app/view_models/appointments_view_model.dart';
import 'package:mc_common_app/view_models/service_view_model.dart';
import 'package:mc_common_app/views/advertisement/ads_list.dart';
import 'package:mc_common_app/views/appointments/widgets/customer_appointment_slider_widget.dart';
@ -20,7 +24,6 @@ import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:provider/provider.dart';
import 'package:easy_localization/easy_localization.dart';
import '../widget/appointment_slider_widget.dart';
class HomeFragment extends StatelessWidget {
@ -64,28 +67,29 @@ class HomeFragment extends StatelessWidget {
onRefresh: onRefresh,
child: ListView(
children: [
10.height,
ViewAllWidget(
title: LocaleKeys.upcoming_appointment.tr(),
subTitle: LocaleKeys.view_all.tr(),
onSubtitleTapped: () {},
).horPaddingMain(),
title: LocaleKeys.upcoming_appointment.tr(),
subTitle: LocaleKeys.view_all.tr(),
onSubtitleTapped: () {
context.read<DashboardVM>().updateIndex(1);
}).horPaddingMain(),
// const AppointmentSliderWidget().horPaddingMain(),
CustomerAppointmentSliderWidget(
myUpComingAppointments: context.read<AppointmentsVM>().myUpComingAppointments,
isNeedToShowEmptyMessage: true,
onAppointmentClick: () {
// navigateWithName(
// context, ProviderAppRoutes.appointment,
// arguments: branches[index]);
onAppointmentClick: (AppointmentListModel value) {
navigateWithName(context, ProviderAppRoutes.appointmentDetailList, arguments: value);
},
),
21.height,
ViewAllWidget(
title: LocaleKeys.myBranches.tr(),
subTitle: LocaleKeys.view_all.tr(),
onSubtitleTapped: () {},
onSubtitleTapped: () {
context.read<DashboardVM>().updateIndex(0);
},
).horPaddingMain(),
const ServiceProviderWidget().horPaddingMain(),
Consumer(
builder: (BuildContext context, AdVM adVM, Widget? child) {
if (adVM.state == ViewState.busy) {

@ -13,6 +13,7 @@ import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:permission_handler/permission_handler.dart';
import 'map_selection_widget.dart';
import 'package:geocoding/geocoding.dart';
class PickLocationPage extends StatefulWidget {
Function(double, double, String) onPickAddress;
@ -122,6 +123,8 @@ class _PickLocationPageState extends State<PickLocationPage> {
Future<void> _updatePosition(CameraPosition _position) async {
latitude = _position.target.latitude;
longitude = _position.target.longitude;
print(latitude);
print(latitude);
updateAddress(latitude, longitude);
}
@ -137,8 +140,7 @@ class _PickLocationPageState extends State<PickLocationPage> {
requestPermissions().then(
(value) async {
if (value[Permission.location]!.isGranted) {
var position =
await GeolocatorPlatform.instance.getCurrentPosition();
var position = await GeolocatorPlatform.instance.getCurrentPosition();
currentPostion = LatLng(position.latitude, position.longitude);
latitude = position.latitude;
longitude = position.longitude;
@ -151,11 +153,8 @@ class _PickLocationPageState extends State<PickLocationPage> {
}
updateAddress(double latitude, double longitude) async {
// List<Placemark> placemarks =
// await placemarkFromCoordinates(latitude, longitude);
// _counter.value =
// '${placemarks.first.street}, ${placemarks.first.subLocality}, ${placemarks.first.locality}, ${placemarks.first.postalCode}, ${placemarks.first.country}';
// print("Address121: " + placemarks[0].toString());
List<Placemark> placemarks = await placemarkFromCoordinates(latitude, longitude);
_counter.value = '${placemarks.first.street}, ${placemarks.first.subLocality}, ${placemarks.first.locality}, ${placemarks.first.postalCode}, ${placemarks.first.country}';
}
setMap() {
@ -176,6 +175,6 @@ class _PickLocationPageState extends State<PickLocationPage> {
}
Future<Map<Permission, PermissionStatus>> requestPermissions() async {
var permissionResults = [Permission.calendar].request();
var permissionResults = [Permission.location].request();
return permissionResults;
}

@ -2,7 +2,7 @@ import 'dart:async';
import 'package:car_provider_app/views/subscriptions/sheet/downgrade_data_sheet.dart';
import 'package:car_provider_app/views/subscriptions/sheet/upgrade_package_sheet.dart';
import 'package:car_provider_app/views/subscriptions/widget/subscriptions_card.dart';
import 'package:car_provider_app/views/subscriptions/widget/all_subscriptions_card.dart';
import 'package:flutter/material.dart';
import 'package:mc_common_app/classes/app_state.dart';
import 'package:mc_common_app/config/routes.dart';
@ -68,7 +68,7 @@ class _SubscriptionsPageState extends State<SubscriptionsPage> {
21.height,
ListView.separated(
itemBuilder: (BuildContext context, int index) {
return SubscriptionsCard(
return AllSubscriptionsCard(
model.tempSubscriptions[index],
isSubscribed: model.tempSubscriptions[index].isSubscribed ?? false,
isMainPage: false,

@ -2,7 +2,8 @@ import 'dart:developer';
import 'package:car_provider_app/config/provider_routes.dart';
import 'package:car_provider_app/views/subscriptions/sheet/select_package_sheet.dart';
import 'package:car_provider_app/views/subscriptions/widget/subscriptions_card.dart';
import 'package:car_provider_app/views/subscriptions/widget/all_subscriptions_card.dart';
import 'package:car_provider_app/views/subscriptions/widget/my_subscriptions_card.dart';
import 'package:flutter/material.dart';
import 'package:mc_common_app/classes/app_state.dart';
import 'package:mc_common_app/config/routes.dart';
@ -27,10 +28,10 @@ class MySubscriptionsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
context.read<SubscriptionsVM>().getMySubscriptions(AppState().getUser.data?.userInfo?.providerId.toString() ?? "");
context.read<SubscriptionsVM>().getMySubscriptionsBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? "");
return Scaffold(
appBar: const CustomAppBar(
title: "My Subscriptions",
title: "My Subscription",
),
body: SizedBox(
width: double.infinity,
@ -47,18 +48,14 @@ class MySubscriptionsPage extends StatelessWidget {
21.height,
ListView.separated(
itemBuilder: (BuildContext context, int index) {
return SubscriptionsCard(
model.allSubscriptions.data![index],
isSubscribed: model.allSubscriptions.data![index].isSubscribed ?? false,
return MySubscriptionsCard(
model.mySubscriptionsBySp[index],
isSubscribed: false,
backgroundColor: MyColors.darkIconColor,
isMainPage: model.mySubscriptionsBySp[index].isExpired ?? false,
onRenewSubscriptionClick: () async {
Utils.showLoading(context);
MResponse response = await model.createSubscriptionOrder(
model.allSubscriptions.data![index].id ?? 0,
true,
true,
model.allSubscriptions.data![index].price.toString(),
);
MResponse response = await model.createSubscriptionOrder(model.mySubscriptionsBySp[index].subscriptionID ?? 0, true, true);
Utils.hideLoading(context);
if (response.data != null) {
log("response.data: ${response.data}");
@ -81,7 +78,7 @@ class MySubscriptionsPage extends StatelessWidget {
},
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: model.allSubscriptions.data!.length,
itemCount: model.mySubscriptionsBySp.length,
),
21.height,
],
@ -102,7 +99,6 @@ class MySubscriptionsPage extends StatelessWidget {
],
),
),
);
}
}

@ -7,7 +7,7 @@ import 'package:mc_common_app/utils/date_helper.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
class SubscriptionsCard extends StatelessWidget {
class AllSubscriptionsCard extends StatelessWidget {
Subscription subscription;
bool isSubscribed;
Color? backgroundColor;
@ -15,7 +15,7 @@ class SubscriptionsCard extends StatelessWidget {
Function onRenewSubscriptionClick;
bool isMainPage;
SubscriptionsCard(this.subscription,
AllSubscriptionsCard(this.subscription,
{Key? key,
this.isSubscribed = false,
this.backgroundColor,

@ -0,0 +1,133 @@
import 'package:flutter/material.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/models/subscriptions_models/provider_subscription_model.dart';
import 'package:mc_common_app/models/subscriptions_models/subscription_model.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/date_helper.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
class MySubscriptionsCard extends StatelessWidget {
ProviderSubscriptionModel providerSubscriptionModel;
bool isSubscribed;
Color? backgroundColor;
late Color textColor;
Function onRenewSubscriptionClick;
bool isMainPage;
MySubscriptionsCard(this.providerSubscriptionModel, {Key? key, this.isSubscribed = false, this.backgroundColor, required this.onRenewSubscriptionClick, this.isMainPage = true}) : super(key: key);
@override
Widget build(BuildContext context) {
textColor = backgroundColor == null ? Colors.black : Colors.white;
return InkWell(
onTap: isSubscribed
? null
: () {
onRenewSubscriptionClick();
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
Expanded(
child: providerSubscriptionModel.subscriptionName.toString().toText(
fontSize: 18,
color: textColor,
),
),
if (providerSubscriptionModel.isActive!) "Current Package".toText(color: MyColors.primaryColor, fontWeight: FontWeight.bold),
5.width,
if (providerSubscriptionModel.isUpgradeNow!)
"Upgrade".toText(color: Colors.white).toContainer(
backgroundColor: MyColors.primaryColor,
borderRadius: 30,
padding: const EdgeInsets.symmetric(
horizontal: 6,
vertical: 3,
),
)
],
),
6.height,
showItem("Ads:", providerSubscriptionModel.adsRemaining.toString()),
showItem("Users:", providerSubscriptionModel.subUsersRemaining.toString()),
showItem("Branches:", providerSubscriptionModel.branchesRemaining.toString()),
14.height,
// Row(
// crossAxisAlignment: CrossAxisAlignment.center,
// mainAxisAlignment: MainAxisAlignment.start,
// children: [
// Expanded(
// child: Row(
// mainAxisAlignment: MainAxisAlignment.start,
// crossAxisAlignment: CrossAxisAlignment.end,
// children: [
// "10000".toString().toText(
// fontSize: 26,
// isBold: true,
// color: textColor,
// ),
// 2.width,
// " SAR/Month".toText(
// color: MyColors.lightTextColor,
// fontSize: 16,
// ),
// ],
// ),
// ),
// ],
// ),
Row(
children: [
"Expires on ${DateHelper.formatAsDayMonthYear(providerSubscriptionModel.dateEnd)}".toText(
fontSize: 14,
color: textColor,
),
if (!providerSubscriptionModel.isTrialSubscription!)
Row(
children: [
6.width,
"Renew".toText(
color: MyColors.primaryColor,
fontSize: 14,
textDecoration: TextDecoration.underline,
decorationColor: MyColors.primaryColor,
isBold: true,
),
],
).onPress(() {
onRenewSubscriptionClick();
}),
],
)
],
).toWhiteContainer(
width: double.infinity,
allPading: 12,
backgroundColor: backgroundColor,
margin: const EdgeInsets.symmetric(
horizontal: 21,
),
),
);
}
Widget showItem(String title, String value) {
return Row(
children: [
title.toText(
fontSize: 14,
color: textColor,
),
2.width,
value.toText(
fontSize: 14,
color: textColor,
),
],
);
}
}

@ -40,7 +40,7 @@ dependencies:
# path: C:/Users/mirza.shafique/AndroidStudioProjects/mc_common_app
mc_common_app:
path: /Volumes/Data/Projects/Flutter/car_common_app
path: /Users/amir/StudioProjects/car_common_app

Loading…
Cancel
Save