master_new_changes
Aamir 1 year ago
parent 3bd72ef382
commit c1b01c1565

@ -65,7 +65,7 @@ class AppState {
List<Subscription>? _providerSubscription; List<Subscription>? _providerSubscription;
List<Subscription> get getproviderSubscription => _providerSubscription!; List<Subscription> get getproviderSubscription => _providerSubscription ?? [new Subscription(name: "")];
set setproviderSubscription(List<Subscription> value) { set setproviderSubscription(List<Subscription> value) {
_providerSubscription = value; _providerSubscription = value;

@ -69,6 +69,7 @@ class Subscription {
this.totalAds, this.totalAds,
this.branchesRemaining, this.branchesRemaining,
this.subUsersRemaining, this.subUsersRemaining,
this.subscriptionType,
this.adsRemaining}); this.adsRemaining});
int? id; int? id;
@ -90,6 +91,7 @@ class Subscription {
SubscriptionTypeEnum? subscriptionTypeEnum; SubscriptionTypeEnum? subscriptionTypeEnum;
bool? isMyCurrentPackage; bool? isMyCurrentPackage;
bool? isRenewable; bool? isRenewable;
int? subscriptionType;
int? subscriptionBranches; int? subscriptionBranches;
int? subscriptionSubUsers; int? subscriptionSubUsers;
@ -130,6 +132,7 @@ class Subscription {
branchesRemaining: json["branchesRemaining"], branchesRemaining: json["branchesRemaining"],
subUsersRemaining: json["subUsersRemaining"], subUsersRemaining: json["subUsersRemaining"],
adsRemaining: json["adsRemaining"], adsRemaining: json["adsRemaining"],
subscriptionType: json["subscriptionType"],
); );
Map<String, dynamic> toJson() => { Map<String, dynamic> toJson() => {
@ -159,5 +162,6 @@ class Subscription {
"branchesRemaining": branchesRemaining, "branchesRemaining": branchesRemaining,
"subUsersRemaining": subUsersRemaining, "subUsersRemaining": subUsersRemaining,
"adsRemaining": adsRemaining, "adsRemaining": adsRemaining,
"subscriptionType": subscriptionType,
}; };
} }

@ -2,7 +2,6 @@ import 'dart:io';
import 'package:device_info_plus/device_info_plus.dart'; import 'package:device_info_plus/device_info_plus.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:huawei_fido/huawei_fido.dart';
import 'package:local_auth/local_auth.dart'; import 'package:local_auth/local_auth.dart';
import 'package:local_auth_android/local_auth_android.dart'; import 'package:local_auth_android/local_auth_android.dart';
import 'package:local_auth_darwin/types/auth_messages_ios.dart'; import 'package:local_auth_darwin/types/auth_messages_ios.dart';
@ -61,11 +60,11 @@ class CommonAuthImp implements CommonAuthServices {
return await localAuth.getAvailableBiometrics(); return await localAuth.getAvailableBiometrics();
} }
Future<void> getHuaweiAuth() async { // Future<void> getHuaweiAuth() async {
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); // DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; // AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
// if (androidInfo.brand == "HUAWEI") { // // if (androidInfo.brand == "HUAWEI") {
// huawei.canAuth(); // // huawei.canAuth();
// } // // }
} // }
} }

@ -26,13 +26,25 @@ abstract class PaymentService {
class PaymentServiceImp implements PaymentService { class PaymentServiceImp implements PaymentService {
MyInAppBrowser? myInAppBrowser; MyInAppBrowser? myInAppBrowser;
var inAppBrowserOptions = InAppBrowserClassOptions(
inAppWebViewGroupOptions: var inAppBrowserOptions = InAppBrowserClassSettings(
InAppWebViewGroupOptions(crossPlatform: InAppWebViewOptions(useShouldOverrideUrlLoading: true, transparentBackground: false), ios: IOSInAppWebViewOptions(applePayAPIEnabled: true)), webViewSettings: InAppWebViewSettings(
crossPlatform: InAppBrowserOptions(hideUrlBar: true, toolbarTopBackgroundColor: Colors.black), useShouldOverrideUrlLoading: false,
android: AndroidInAppBrowserOptions(), transparentBackground: false,
ios: isInspectable: false,
IOSInAppBrowserOptions(hideToolbarBottom: true, toolbarBottomBackgroundColor: Colors.white, closeButtonColor: Colors.white, presentationStyle: IOSUIModalPresentationStyle.OVER_FULL_SCREEN)); applePayAPIEnabled: true,
cacheEnabled: false,
),
browserSettings: InAppBrowserSettings(
hideUrlBar: true,
hideTitleBar: true,
hideDefaultMenuItems: false,
toolbarBottomBackgroundColor: Colors.black,
closeButtonColor: Colors.white,
presentationStyle: ModalPresentationStyle.OVER_FULL_SCREEN,
// toolbarTopBackgroundColor: Colors.black
),
);
@override @override
Future<void> placePayment({ Future<void> placePayment({
@ -75,15 +87,23 @@ class PaymentServiceImp implements PaymentService {
break; break;
} }
log("PaymentUrl: $urlRequest"); log("PaymentUrl: $urlRequest");
myInAppBrowser = MyInAppBrowser(onExitCallback: () { myInAppBrowser = MyInAppBrowser(
log("Browser Exited"); onExitCallback: () {
}, onLoadStartCallback: (String url) { log("Browser Exited");
log("Browser LoadStart for : $url"); },
onBrowserLoadStart(onFailure: onFailure, onSuccess: onSuccess, url: url); onLoadStartCallback: (String url) {
}); log("Browser LoadStart for : $url");
onBrowserLoadStart(onFailure: onFailure, onSuccess: onSuccess, url: url);
},
);
await myInAppBrowser!.openUrlRequest( await myInAppBrowser!.openUrlRequest(
urlRequest: URLRequest(url: Uri.parse(urlRequest)), urlRequest: URLRequest(
options: inAppBrowserOptions, url: WebUri('${Uri.parse(urlRequest)}', forceToStringRawValue: true),
allowsCellularAccess: true,
allowsConstrainedNetworkAccess: true,
allowsExpensiveNetworkAccess: true,
),
settings: inAppBrowserOptions,
); );
} }

@ -187,9 +187,9 @@ enum ChatTypeEnum {
} }
enum SubscriptionTypeEnum { enum SubscriptionTypeEnum {
current, current, //1
upgrade, upgrade, //2
downgrade, downgrade, //3
} }
enum SubscriptionActionTypeEnum { enum SubscriptionActionTypeEnum {

@ -213,9 +213,8 @@ class PaymentVM extends ChangeNotifier {
onSubscriptionPaymentSuccess(BuildContext context) { onSubscriptionPaymentSuccess(BuildContext context) {
pop(context); pop(context);
// context.read<SubscriptionsVM>().getMySubscriptions(AppState().getUser.data?.userInfo?.providerId.toString() ?? ""); // context.read<SubscriptionsVM>().getMySubscriptions(AppState().getUser.data?.userInfo?.providerId.toString() ?? "");
context.read<SubscriptionsVM>().getSubscriptionBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? "", true); // context.read<SubscriptionsVM>().getSubscriptionBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? "", true);
// context.read<SubscriptionsVM>().mySubscriptionsBySp = []; // context.read<SubscriptionsVM>().mySubscriptionsBySp = [];
// context.read<SubscriptionsVM>().getMySubscriptionsBySP(); // context.read<SubscriptionsVM>().getMySubscriptionsBySP();
navigateReplaceWithNameUntilRoute(context, AppRoutes.dashboard); navigateReplaceWithNameUntilRoute(context, AppRoutes.dashboard);

@ -272,7 +272,8 @@ class ServiceVM extends BaseVM {
Future<void> getBranchAndServices() async { Future<void> getBranchAndServices() async {
setState(ViewState.busy); setState(ViewState.busy);
branches = await branchRepo.getBranchAndServices(); branches = await branchRepo.getBranchAndServices();
homePageBranches = branches!.data!.serviceProviderBranch!.where((element) => element.branchStatus == BranchStatusEnum.approvedOrActive).toList(); if (branches!.data != null)
homePageBranches = branches!.data!.serviceProviderBranch!.where((element) => element.branchStatus == BranchStatusEnum.approvedOrActive).toList();
setState(ViewState.idle); setState(ViewState.idle);
} }

@ -40,141 +40,141 @@ class _SettingOptionsLanguageState extends State<SettingOptionsLanguage> {
// ? // ?
Expanded( Expanded(
child: ListView( child: ListView(
shrinkWrap: true, shrinkWrap: true,
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
children: [
Column(
children: [ children: [
CustomSettingOptionsTile( Column(
leadingWidget: const Icon(Icons.quickreply_outlined, size: 20), children: [
titleText: LocaleKeys.requests.tr(), CustomSettingOptionsTile(
needBorderBelow: true, leadingWidget: const Icon(Icons.quickreply_outlined, size: 20),
onTap: () { titleText: LocaleKeys.requests.tr(),
context.read<DashboardVmCustomer>().onNavbarTapped(4);
Navigator.pop(context);
}),
if (AppState().currentAppType == AppType.customer) ...[
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.favorite, size: 20),
titleText: LocaleKeys.favoriteList.tr(),
needBorderBelow: true,
onTap: () => navigateWithName(context, AppRoutes.favoriteListView),
),
],
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.settings, size: 20),
titleText: LocaleKeys.settings.tr(),
needBorderBelow: true,
onTap: () {},
//navigateWithName(context, AppRoutes.settingOptionsInviteFriends),
),
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.question_mark_outlined, size: 20),
titleText: LocaleKeys.help.tr(),
needBorderBelow: true,
onTap: () => navigateWithName(context, AppRoutes.settingOptionsHelp),
),
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.person, size: 20),
titleText: LocaleKeys.account.tr(),
needBorderBelow: false,
onTap: () {
navigateWithName(context, AppRoutes.profileView);
// context.read<DashboardVmCustomer>().onNavbarTapped(4);
// Navigator.pop(context);
}),
],
).toWhiteContainer(width: double.infinity, pading: const EdgeInsets.all(12), borderRadius: 0),
10.height,
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.translate, size: 20),
titleText: LocaleKeys.language.tr(),
isForLanguage: true,
onTap: () {
context.read<UserVM>().changeLanguage(context);
Future.delayed(Duration(seconds: 1), () {
setState(() {});
});
},
).toWhiteContainer(width: double.infinity, pading: const EdgeInsets.all(12), borderRadius: 0),
10.height,
(AppState().currentAppType == AppType.provider)
? Column(
children: [
CustomSettingOptionsTile(
leadingWidget: SizedBox(
width: 16,
height: 16,
child: SvgPicture.asset(
MyAssets.icStar,
color: MyColors.primaryColor,
),
),
titleText: LocaleKeys.mySubscription.tr(),
subTitle: AppState().getproviderSubscription.first.name ?? "Silver",
isForLanguage: false,
needBorderBelow: true, needBorderBelow: true,
onTap: () { onTap: () {
navigateWithName(context, AppRoutes.mySubscriptionsPage); context.read<DashboardVmCustomer>().onNavbarTapped(4);
}, Navigator.pop(context);
), }),
if (AppState().currentAppType == AppType.customer) ...[
CustomSettingOptionsTile( CustomSettingOptionsTile(
leadingWidget: SizedBox( leadingWidget: const Icon(Icons.favorite, size: 20),
width: 16, titleText: LocaleKeys.favoriteList.tr(),
height: 16,
child: SvgPicture.asset(
MyAssets.icGroupStar,
// color: MyColors.primaryColor,
),
),
titleText: LocaleKeys.subscriptions.tr(),
subTitle: null,
isForLanguage: false,
needBorderBelow: true, needBorderBelow: true,
onTap: () { onTap: () => navigateWithName(context, AppRoutes.favoriteListView),
navigateWithName(context, AppRoutes.subscriptionsPage);
},
), ),
CustomSettingOptionsTile( ],
leadingWidget: SizedBox( CustomSettingOptionsTile(
width: 16, leadingWidget: const Icon(Icons.settings, size: 20),
height: 16, titleText: LocaleKeys.settings.tr(),
child: SvgPicture.asset( needBorderBelow: true,
MyAssets.icGroupStar, onTap: () {},
// color: MyColors.primaryColor, //navigateWithName(context, AppRoutes.settingOptionsInviteFriends),
), ),
), CustomSettingOptionsTile(
titleText: LocaleKeys.defineLicenses.tr(), leadingWidget: const Icon(Icons.question_mark_outlined, size: 20),
subTitle: null, titleText: LocaleKeys.help.tr(),
isForLanguage: false, needBorderBelow: true,
onTap: () => navigateWithName(context, AppRoutes.settingOptionsHelp),
),
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.person, size: 20),
titleText: LocaleKeys.account.tr(),
needBorderBelow: false, needBorderBelow: false,
onTap: () { onTap: () {
navigateWithName(context, AppRoutes.providerLicensePage); navigateWithName(context, AppRoutes.profileView);
}, // context.read<DashboardVmCustomer>().onNavbarTapped(4);
// Navigator.pop(context);
}),
],
).toWhiteContainer(width: double.infinity, pading: const EdgeInsets.all(12), borderRadius: 0),
10.height,
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.translate, size: 20),
titleText: LocaleKeys.language.tr(),
isForLanguage: true,
onTap: () {
context.read<UserVM>().changeLanguage(context);
Future.delayed(Duration(seconds: 1), () {
setState(() {});
});
},
).toWhiteContainer(width: double.infinity, pading: const EdgeInsets.all(12), borderRadius: 0),
10.height,
(AppState().currentAppType == AppType.provider)
? Column(
children: [
CustomSettingOptionsTile(
leadingWidget: SizedBox(
width: 16,
height: 16,
child: SvgPicture.asset(
MyAssets.icStar,
color: MyColors.primaryColor,
),
), ),
// CustomSettingOptionsTile( titleText: LocaleKeys.mySubscription.tr(),
// leadingWidget: SizedBox( subTitle: AppState().getproviderSubscription.first.name,
// width: 16, isForLanguage: false,
// height: 16, needBorderBelow: true,
// child: SvgPicture.asset( onTap: () {
// MyAssets.providersIcon, navigateWithName(context, AppRoutes.mySubscriptionsPage);
// // color: MyColors.primaryColor, },
// ), ),
// ), CustomSettingOptionsTile(
// titleText: "Users", leadingWidget: SizedBox(
// subTitle: null, width: 16,
// isForLanguage: false, height: 16,
// needBorderBelow: false, child: SvgPicture.asset(
// onTap: () { MyAssets.icGroupStar,
// navigateWithName(context, AppRoutes.dealerUser, arguments: AppState().getUser.data!.userInfo!.id.toString()); // color: MyColors.primaryColor,
// }, ),
// ) ),
], titleText: LocaleKeys.subscriptions.tr(),
).toWhiteContainer(width: double.infinity, pading: const EdgeInsets.all(12), borderRadius: 0) subTitle: null,
: const SizedBox(), isForLanguage: false,
(AppState().currentAppType == AppType.provider) ? 10.height : const SizedBox(), needBorderBelow: true,
], onTap: () {
)), navigateWithName(context, AppRoutes.subscriptionsPage);
},
),
CustomSettingOptionsTile(
leadingWidget: SizedBox(
width: 16,
height: 16,
child: SvgPicture.asset(
MyAssets.icGroupStar,
// color: MyColors.primaryColor,
),
),
titleText: LocaleKeys.defineLicenses.tr(),
subTitle: null,
isForLanguage: false,
needBorderBelow: false,
onTap: () {
navigateWithName(context, AppRoutes.providerLicensePage);
},
),
// CustomSettingOptionsTile(
// leadingWidget: SizedBox(
// width: 16,
// height: 16,
// child: SvgPicture.asset(
// MyAssets.providersIcon,
// // color: MyColors.primaryColor,
// ),
// ),
// titleText: "Users",
// subTitle: null,
// isForLanguage: false,
// needBorderBelow: false,
// onTap: () {
// navigateWithName(context, AppRoutes.dealerUser, arguments: AppState().getUser.data!.userInfo!.id.toString());
// },
// )
],
).toWhiteContainer(width: double.infinity, pading: const EdgeInsets.all(12), borderRadius: 0)
: const SizedBox(),
(AppState().currentAppType == AppType.provider) ? 10.height : const SizedBox(),
],
)),
// : Expanded( // : Expanded(
// child: ListView( // child: ListView(
// children: [ // children: [

@ -34,7 +34,8 @@ class _LoginWithPasswordState extends State<LoginWithPassword> {
//TODO: ONLY FOR DEVELOPMENT PURPOSE //TODO: ONLY FOR DEVELOPMENT PURPOSE
// String phoneNum = "966504278212", password = "Fa@1234"; // String phoneNum = "966504278212", password = "Fa@1234";
String phoneNum = "966504278213", password = "Fa@1234"; // String phoneNum = "966504278213", password = "Fa@1234";
String phoneNum = "", password = "";
// String phoneNum = "", password = ""; // String phoneNum = "", password = "";
String email = ""; String email = "";
@ -51,23 +52,23 @@ class _LoginWithPasswordState extends State<LoginWithPassword> {
scheduleMicrotask(() { scheduleMicrotask(() {
userVM = Provider.of(context, listen: false); userVM = Provider.of(context, listen: false);
context.read<UserVM>().getAvailBio(); context.read<UserVM>().getAvailBio();
if (AppState().currentAppType == AppType.provider) { // if (AppState().currentAppType == AppType.provider) {
phoneNum = "966530896018"; // phoneNum = "966530896018";
password = "Amir@1234"; // password = "Amir@1234";
// // //
// // phoneNum = "966569755630"; // // // phoneNum = "966569755630";
// // password = "Amir12345@"; //AAmir Sal // // // password = "Amir12345@"; //AAmir Sal
// // //
// // phoneNum = "966598646795"; // // // phoneNum = "966598646795";
// // password = "Zahoor@123"; // // // password = "Zahoor@123";
// // //
// // User Details // // // User Details
// // phoneNum = "966554870506"; // // // phoneNum = "966554870506";
// // password = "Sikander123@"; // "lastName": "sik", // // // password = "Sikander123@"; // "lastName": "sik",
// // "email": "sikander@gmail.com", // // // "email": "sikander@gmail.com",
// // phoneNum = "966569755630"; // // // phoneNum = "966569755630";
// // password = "Amir12345@"; // // // password = "Amir12345@";
} // }
getCountryList(); getCountryList();
}); });

@ -13,28 +13,28 @@ dependencies:
cupertino_icons: ^1.0.2 cupertino_icons: ^1.0.2
path_provider: ^2.0.4 path_provider: ^2.0.4
injector: ^2.0.0 injector: ^4.0.0
provider: ^6.0.0 provider: ^6.0.0
easy_localization: ^3.0.3 easy_localization: ^3.0.3
http: ^0.13.3 http: ^0.13.3
permission_handler: ^11.3.1 permission_handler: ^11.3.1
flutter_svg: ^1.0.3 flutter_svg: ^2.0.9
sizer: ^2.0.15 sizer: any
fluttertoast: ^8.0.8 fluttertoast: ^8.0.8
shared_preferences: ^2.0.6 shared_preferences: ^2.0.6
file_picker: ^6.1.1 file_picker: ^8.1.2
image_picker: ^0.8.4+4 image_picker: ^1.1.2
equatable: ^2.0.3 equatable: ^2.0.3
logger: 2.3.0 logger: ^2.4.0
auto_size_text: any auto_size_text: any
shimmer: ^2.0.0 shimmer: ^3.0.0
hexcolor: ^3.0.1 hexcolor: ^3.0.1
cached_network_image: any cached_network_image: any
url_launcher: ^6.1.14 url_launcher: ^6.1.14
badges: ^3.0.2 badges: ^3.0.2
carousel_slider: 5.0.0 carousel_slider: 5.0.0
dropdown_button2: ^2.0.0 dropdown_button2: ^2.0.0
flutter_inappwebview: ^5.7.2+3 flutter_inappwebview: ^6.1.5
country_code_picker: ^3.0.0 country_code_picker: ^3.0.0
table_calendar: ^3.0.9 table_calendar: ^3.0.9
intl: any intl: any
@ -46,9 +46,9 @@ dependencies:
# Firebase Packages # Firebase Packages
firebase_messaging: ^15.0.4 firebase_messaging: ^15.1.3
firebase_core: ^3.3.0 firebase_core: ^3.6.0
flutter_local_notifications: ^17.2.1+2 flutter_local_notifications: ^17.2.3
# google # google
@ -60,15 +60,15 @@ dependencies:
# Auth # Auth
local_auth: ^2.2.0 local_auth: ^2.2.0
huawei_fido: ^6.3.0+305 #huawei_fido: ^6.3.0+305
device_info_plus: ^10.1.0 device_info_plus: ^11.0.0
flutter_lints: any
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
flutter_lints: ^2.0.0
flutter: flutter:

Loading…
Cancel
Save