master_new_changes
Aamir 1 year ago
parent 3bd72ef382
commit c1b01c1565

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

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

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

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

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

@ -213,9 +213,8 @@ class PaymentVM extends ChangeNotifier {
onSubscriptionPaymentSuccess(BuildContext context) {
pop(context);
// 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>().getMySubscriptionsBySP();
navigateReplaceWithNameUntilRoute(context, AppRoutes.dashboard);

@ -272,7 +272,8 @@ class ServiceVM extends BaseVM {
Future<void> getBranchAndServices() async {
setState(ViewState.busy);
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);
}

@ -40,141 +40,141 @@ class _SettingOptionsLanguageState extends State<SettingOptionsLanguage> {
// ?
Expanded(
child: ListView(
shrinkWrap: true,
padding: EdgeInsets.zero,
children: [
Column(
shrinkWrap: true,
padding: EdgeInsets.zero,
children: [
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.quickreply_outlined, size: 20),
titleText: LocaleKeys.requests.tr(),
needBorderBelow: true,
onTap: () {
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,
Column(
children: [
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.quickreply_outlined, size: 20),
titleText: LocaleKeys.requests.tr(),
needBorderBelow: true,
onTap: () {
navigateWithName(context, AppRoutes.mySubscriptionsPage);
},
),
context.read<DashboardVmCustomer>().onNavbarTapped(4);
Navigator.pop(context);
}),
if (AppState().currentAppType == AppType.customer) ...[
CustomSettingOptionsTile(
leadingWidget: SizedBox(
width: 16,
height: 16,
child: SvgPicture.asset(
MyAssets.icGroupStar,
// color: MyColors.primaryColor,
),
),
titleText: LocaleKeys.subscriptions.tr(),
subTitle: null,
isForLanguage: false,
leadingWidget: const Icon(Icons.favorite, size: 20),
titleText: LocaleKeys.favoriteList.tr(),
needBorderBelow: true,
onTap: () {
navigateWithName(context, AppRoutes.subscriptionsPage);
},
onTap: () => navigateWithName(context, AppRoutes.favoriteListView),
),
CustomSettingOptionsTile(
leadingWidget: SizedBox(
width: 16,
height: 16,
child: SvgPicture.asset(
MyAssets.icGroupStar,
// color: MyColors.primaryColor,
),
),
titleText: LocaleKeys.defineLicenses.tr(),
subTitle: null,
isForLanguage: false,
],
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.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(
// 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(),
],
)),
titleText: LocaleKeys.mySubscription.tr(),
subTitle: AppState().getproviderSubscription.first.name,
isForLanguage: false,
needBorderBelow: true,
onTap: () {
navigateWithName(context, AppRoutes.mySubscriptionsPage);
},
),
CustomSettingOptionsTile(
leadingWidget: SizedBox(
width: 16,
height: 16,
child: SvgPicture.asset(
MyAssets.icGroupStar,
// color: MyColors.primaryColor,
),
),
titleText: LocaleKeys.subscriptions.tr(),
subTitle: null,
isForLanguage: false,
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(
// child: ListView(
// children: [

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

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

Loading…
Cancel
Save