From 0fc8831d23a69cdec6bedad333bc3e43732011f3 Mon Sep 17 00:00:00 2001 From: Shubhamshirva Date: Fri, 12 Jul 2024 19:12:43 +0530 Subject: [PATCH 1/2] logic for user journey created and store user credentials --- lib/Common/api_urls.dart | 3 + .../controller/data/network/network_api.dart | 2 +- lib/Global.dart | 1 + lib/Login/Model/LoginModel.dart | 203 +++++- lib/Login/View/loginscreen.dart | 24 +- lib/Login/ViewModel/LoginApi.dart | 41 ++ lib/main.dart | 117 +++- .../Signup/Model/GetUserdetailsModel.dart | 332 +++++++++ .../Individual/tellusIndividual.dart | 235 +++++++ .../View/Business/View/tellusbusiness.dart | 10 +- .../View/Individual/tellusindividual.dart | 657 +++++++++--------- lib/onboarding/Signup/View/verifyuser.dart | 12 +- .../Signup/view_model/getUserprofile.dart | 72 ++ .../Signup/view_model/postmethod.dart | 25 +- lib/onboarding/SplashScreen.dart | 172 +++-- 15 files changed, 1493 insertions(+), 413 deletions(-) create mode 100644 lib/onboarding/Signup/Model/GetUserdetailsModel.dart create mode 100644 lib/onboarding/Signup/Model/Onboarding/Individual/tellusIndividual.dart create mode 100644 lib/onboarding/Signup/view_model/getUserprofile.dart diff --git a/lib/Common/api_urls.dart b/lib/Common/api_urls.dart index a8c14e7..081b73b 100644 --- a/lib/Common/api_urls.dart +++ b/lib/Common/api_urls.dart @@ -29,4 +29,7 @@ class ApiUrls { static const googlelogin = "${baseUrl}sign-in-with-google-login"; static const storeDetailsOfOAuth = "${baseUrl}update-user-account-type"; + + static const getuserdetails = "${baseUrl}get-auth-user-data"; + } diff --git a/lib/Common/controller/data/network/network_api.dart b/lib/Common/controller/data/network/network_api.dart index 0ae9574..225ff5c 100644 --- a/lib/Common/controller/data/network/network_api.dart +++ b/lib/Common/controller/data/network/network_api.dart @@ -26,7 +26,7 @@ class NetworkApiServices { } Response response; SharedPreferences prefs = await SharedPreferences.getInstance(); - token = prefs.getString('token'); + token = prefs.getString('access-token'); print("url is $url"); log(token.toString()); diff --git a/lib/Global.dart b/lib/Global.dart index 2d66269..563c15c 100644 --- a/lib/Global.dart +++ b/lib/Global.dart @@ -3,6 +3,7 @@ import 'dart:async'; import 'package:get/get.dart'; String? myusername; +String? fullname; String? token; String? emailid; int? isprofileupdated; diff --git a/lib/Login/Model/LoginModel.dart b/lib/Login/Model/LoginModel.dart index 9be84d1..5a97c5d 100644 --- a/lib/Login/Model/LoginModel.dart +++ b/lib/Login/Model/LoginModel.dart @@ -27,19 +27,212 @@ class LoginModel { class Data { String? accessToken; - int? id; + UserData? userData; - Data({this.accessToken, this.id}); + Data({this.accessToken, this.userData}); Data.fromJson(Map json) { accessToken = json['access-token']; - id = json['id']; + userData = json['user_data'] != null + ? new UserData.fromJson(json['user_data']) + : null; } Map toJson() { final Map data = new Map(); data['access-token'] = this.accessToken; - data['id'] = this.id; + if (this.userData != null) { + data['user_data'] = this.userData!.toJson(); + } return data; } -} \ No newline at end of file +} + +class UserData { + int? id; + int? principalTypeXid; + int? principalSourceXid; + String? oneSignalPlayerId; + String? googleId; + String? appleId; + String? facebookId; + String? microsoftId; + String? userName; + String? pin; + String? fullName; + String? gender; + String? dateOfBirth; + String? phoneNumber; + String? otherPhoneNumber; + String? emailAddress; + String? addressLine1; + String? addressLine2; + String? cityXid; + String? stateXid; + String? countryXid; + String? postCode; + String? lastLoginDatetime; + String? profilePhoto; + String? referralCode; + String? description; + String? about; + String? position; + String? trainingScores; + String? height; + String? weight; + String? battingAverage; + int? isProfileUpdated; + String? isActive; + int? groupNotification; + int? communityNotification; + int? followerNotification; + int? newFollowerNotification; + int? directMessageNotification; + String? createdBy; + String? modifiedBy; + String? deletedAt; + String? createdAt; + String? updatedAt; + + UserData( + {this.id, + this.principalTypeXid, + this.principalSourceXid, + this.oneSignalPlayerId, + this.googleId, + this.appleId, + this.facebookId, + this.microsoftId, + this.userName, + this.pin, + this.fullName, + this.gender, + this.dateOfBirth, + this.phoneNumber, + this.otherPhoneNumber, + this.emailAddress, + this.addressLine1, + this.addressLine2, + this.cityXid, + this.stateXid, + this.countryXid, + this.postCode, + this.lastLoginDatetime, + this.profilePhoto, + this.referralCode, + this.description, + this.about, + this.position, + this.trainingScores, + this.height, + this.weight, + this.battingAverage, + this.isProfileUpdated, + this.isActive, + this.groupNotification, + this.communityNotification, + this.followerNotification, + this.newFollowerNotification, + this.directMessageNotification, + this.createdBy, + this.modifiedBy, + this.deletedAt, + this.createdAt, + this.updatedAt}); + + UserData.fromJson(Map json) { + id = json['id']; + principalTypeXid = json['principal_type_xid']; + principalSourceXid = json['principal_source_xid']; + oneSignalPlayerId = json['one_signal_player_id']; + googleId = json['google_id']; + appleId = json['apple_id']; + facebookId = json['facebook_id']; + microsoftId = json['microsoft_id']; + userName = json['user_name']; + pin = json['pin']; + fullName = json['full_name']; + gender = json['gender']; + dateOfBirth = json['date_of_birth']; + phoneNumber = json['phone_number']; + otherPhoneNumber = json['other_phone_number']; + emailAddress = json['email_address']; + addressLine1 = json['address_line1']; + addressLine2 = json['address_line2']; + cityXid = json['city_xid']; + stateXid = json['state_xid']; + countryXid = json['country_xid']; + postCode = json['post_code']; + lastLoginDatetime = json['last_login_datetime']; + profilePhoto = json['profile_photo']; + referralCode = json['referral_code']; + description = json['description']; + about = json['about']; + position = json['position']; + trainingScores = json['training_scores']; + height = json['height']; + weight = json['weight']; + battingAverage = json['batting_average']; + isProfileUpdated = json['is_profile_updated']; + isActive = json['is_active']; + groupNotification = json['group_notification']; + communityNotification = json['community_notification']; + followerNotification = json['follower_notification']; + newFollowerNotification = json['new_follower_notification']; + directMessageNotification = json['direct_message_notification']; + createdBy = json['created_by']; + modifiedBy = json['modified_by']; + deletedAt = json['deleted_at']; + createdAt = json['created_at']; + updatedAt = json['updated_at']; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['principal_type_xid'] = this.principalTypeXid; + data['principal_source_xid'] = this.principalSourceXid; + data['one_signal_player_id'] = this.oneSignalPlayerId; + data['google_id'] = this.googleId; + data['apple_id'] = this.appleId; + data['facebook_id'] = this.facebookId; + data['microsoft_id'] = this.microsoftId; + data['user_name'] = this.userName; + data['pin'] = this.pin; + data['full_name'] = this.fullName; + data['gender'] = this.gender; + data['date_of_birth'] = this.dateOfBirth; + data['phone_number'] = this.phoneNumber; + data['other_phone_number'] = this.otherPhoneNumber; + data['email_address'] = this.emailAddress; + data['address_line1'] = this.addressLine1; + data['address_line2'] = this.addressLine2; + data['city_xid'] = this.cityXid; + data['state_xid'] = this.stateXid; + data['country_xid'] = this.countryXid; + data['post_code'] = this.postCode; + data['last_login_datetime'] = this.lastLoginDatetime; + data['profile_photo'] = this.profilePhoto; + data['referral_code'] = this.referralCode; + data['description'] = this.description; + data['about'] = this.about; + data['position'] = this.position; + data['training_scores'] = this.trainingScores; + data['height'] = this.height; + data['weight'] = this.weight; + data['batting_average'] = this.battingAverage; + data['is_profile_updated'] = this.isProfileUpdated; + data['is_active'] = this.isActive; + data['group_notification'] = this.groupNotification; + data['community_notification'] = this.communityNotification; + data['follower_notification'] = this.followerNotification; + data['new_follower_notification'] = this.newFollowerNotification; + data['direct_message_notification'] = this.directMessageNotification; + data['created_by'] = this.createdBy; + data['modified_by'] = this.modifiedBy; + data['deleted_at'] = this.deletedAt; + data['created_at'] = this.createdAt; + data['updated_at'] = this.updatedAt; + return data; + } +} diff --git a/lib/Login/View/loginscreen.dart b/lib/Login/View/loginscreen.dart index 48821a7..2d4a9bc 100644 --- a/lib/Login/View/loginscreen.dart +++ b/lib/Login/View/loginscreen.dart @@ -11,6 +11,7 @@ import 'package:regroup/Utils/Common/CustomNextButton.dart'; import 'package:regroup/Utils/Common/CustomTextformfield.dart'; import 'package:regroup/Utils/Common/googleOAuthService.dart'; import 'package:regroup/Utils/Common/sized_box.dart'; +import 'package:regroup/Utils/dialogs.dart'; import 'package:regroup/Utils/texts.dart'; import 'package:regroup/resources/routes/route_name.dart'; import 'package:remove_emoji_input_formatter/remove_emoji_input_formatter.dart'; @@ -156,18 +157,17 @@ class _LoginScreenState extends State { final data = await LoginAPI().loginApi(updata); if (data.status == ResponseStatus.SUCCESS) { // await global.setname(); - Get.snackbar( - "Success!", - 'Login successful!', - duration: const Duration(seconds: 2), - colorText: Colors.white, - backgroundColor: Colors.green, - margin: const EdgeInsets.all(8), - snackStyle: SnackStyle.FLOATING, - snackPosition: SnackPosition.BOTTOM, - ); - - Get.toNamed(RouteName.mainscreen); + // Get.snackbar( + // "Success!", + // 'Login successful!', + // duration: const Duration(seconds: 2), + // colorText: Colors.white, + // backgroundColor: Colors.green, + // margin: const EdgeInsets.all(8), + // snackStyle: SnackStyle.FLOATING, + // snackPosition: SnackPosition.BOTTOM, + // ); + return utils.showToast(data.message); } else if (data.status == ResponseStatus.FAILED) { Get.snackbar( "Error!", diff --git a/lib/Login/ViewModel/LoginApi.dart b/lib/Login/ViewModel/LoginApi.dart index 280d05b..f6f4280 100644 --- a/lib/Login/ViewModel/LoginApi.dart +++ b/lib/Login/ViewModel/LoginApi.dart @@ -1,7 +1,10 @@ +import 'package:get/get.dart'; import 'package:regroup/Common/api_urls.dart'; import 'package:regroup/Common/base_manager.dart'; import 'package:regroup/Common/controller/data/network/network_api.dart'; +import 'package:regroup/Global.dart'; import 'package:regroup/Login/Model/LoginModel.dart'; +import 'package:regroup/resources/routes/route_name.dart'; import 'package:shared_preferences/shared_preferences.dart'; class LoginAPI { @@ -14,8 +17,46 @@ class LoginAPI { if (response.data['status'] == 'success') { LoginModel loginObj = LoginModel.fromJson(response.data); await prefs.setString('access-token', loginObj.data!.accessToken!); + await prefs.setString( + 'fullname', loginObj.data?.userData?.fullName ?? ""); + await prefs.setString( + 'username', loginObj.data?.userData?.userName ?? ""); + await prefs.setString( + 'email', loginObj.data?.userData?.emailAddress ?? ""); + await prefs.setString( + 'phone', loginObj.data?.userData?.phoneNumber ?? ""); + + token = loginObj.data!.accessToken; + emailid = loginObj.data?.userData?.emailAddress; + myusername = loginObj.data?.userData?.userName; + fullname = loginObj.data?.userData?.fullName; + phonenumber = loginObj.data?.userData?.phoneNumber; print("token is ${loginObj.data!.accessToken!}"); + + if (loginObj.data?.userData?.isProfileUpdated == 0) { + String? accountype = + loginObj.data?.userData?.principalTypeXid.toString(); + + if (accountype == "1") { + print('tell us individyal'); + Get.toNamed(RouteName.tellusindividualscreen, + arguments: { + 'pageroute' : "mainscreen" + } + ); + } else if (accountype == "2") { + print('tell us business'); + + Get.toNamed(RouteName.tellusbusinessscreen, + arguments: { + 'pageroute' : "mainscreen" + } + ); + } + } else { + Get.toNamed(RouteName.mainscreen); + } } else { return ResponseData( response.data['message'], ResponseStatus.FAILED); diff --git a/lib/main.dart b/lib/main.dart index d117a93..420072e 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,4 @@ import 'dart:async'; - import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:firebase_core/firebase_core.dart'; @@ -41,25 +40,30 @@ class MyApp extends StatefulWidget { } class _MyAppState extends State with WidgetsBindingObserver { - var _connectionStatus = ConnectivityResult.values.toString(); - final Connectivity _connectivity = Connectivity(); - late StreamSubscription _connectivitySubscription; - Future checkInternet() async { - final connectivityResult = await (Connectivity().checkConnectivity()); + // var _connectionStatus = ConnectivityResult.values.toString(); + // final Connectivity _connectivity = Connectivity(); + // late StreamSubscription _connectivitySubscription; - if (connectivityResult == ConnectivityResult.wifi || - connectivityResult == ConnectivityResult.mobile) { - setState(() { - _connectionStatus = connectivityResult.toString(); - print("has internet"); - }); - } else { - setState(() { - _connectionStatus = connectivityResult.toString(); - print("no internet"); - }); - } - } + List _connectionStatus = [ConnectivityResult.none]; + final Connectivity _connectivity = Connectivity(); + late StreamSubscription> _connectivitySubscription; + + // Future checkInternet() async { + // final connectivityResult = await (Connectivity().checkConnectivity()); + + // if (connectivityResult == ConnectivityResult.wifi || + // connectivityResult == ConnectivityResult.mobile) { + // setState(() { + // _connectionStatus = connectivityResult.toString(); + // print("has internet"); + // }); + // } else { + // setState(() { + // _connectionStatus = connectivityResult.toString(); + // print("no internet"); + // }); + // } + // } Future initConnectivity() async { late List result; @@ -79,21 +83,84 @@ class _MyAppState extends State with WidgetsBindingObserver { return _updateConnectionStatus(result); } - Future _updateConnectionStatus(List result) async { - setState(() { - _connectionStatus = result.toString(); - }); + // Future _updateConnectionStatus(List result) async { + // setState(() { + // _connectionStatus = result.toString(); + // }); + // // ignore: avoid_print + // print('Connectivity changed: $_connectionStatus'); + // } + + Future _updateConnectionStatus(List result) async { + // setState(() { + // _connectionStatus = result; + // }); + + if (result.contains(ConnectivityResult.wifi) || result.contains(ConnectivityResult.mobile)) { + setState(() { + _connectionStatus = result; + Get.back(result: true); + + }); + } else { + setState(() { + _connectionStatus = result; + Get.toNamed(RouteName.nointernet); + }); + // Get.toNamed(RouteName.nointernet); + } // ignore: avoid_print print('Connectivity changed: $_connectionStatus'); } + Future _getStoragePermission() async { + DeviceInfoPlugin plugin = DeviceInfoPlugin(); + AndroidDeviceInfo android = await plugin.androidInfo; + if (android.version.sdkInt < 33) { + if (await Permission.storage.request().isGranted) { + // setState(() { + // permissionGranted = true; + // }); + } else if (await Permission.storage.request().isPermanentlyDenied) { + await openAppSettings(); + await utils.showToast("Permission denied."); + } + // else if (await Permission.audio.request().isDenied) { + // // setState(() { + // // permissionGranted = false; + // // }); + // } + } else { + if (await Permission.photos.request().isGranted) { + // await utils.showToast("Permission granted."); + // setState(() { + // permissionGranted = true; + // }); + } else if (await Permission.photos.request().isPermanentlyDenied) { + await openAppSettings(); + await utils.showToast("Permission denied."); + } else if (await Permission.photos.request().isDenied) { + await openAppSettings(); + await utils.showToast("Permission denied."); + // setState(() { + // permissionGranted = false; + // }); + } + } + } + @override void initState() { initConnectivity(); WidgetsBinding.instance.addObserver(this); -// _connectivitySubscription = -// _connectivity.onConnectivityChanged.listen(_updateConnectionStatus); + _connectivitySubscription = + _connectivity.onConnectivityChanged.listen(_updateConnectionStatus); + +//do not remove this coomented code + // if (Platform.isAndroid) { + // _getStoragePermission(); + // } super.initState(); } diff --git a/lib/onboarding/Signup/Model/GetUserdetailsModel.dart b/lib/onboarding/Signup/Model/GetUserdetailsModel.dart new file mode 100644 index 0000000..581faf6 --- /dev/null +++ b/lib/onboarding/Signup/Model/GetUserdetailsModel.dart @@ -0,0 +1,332 @@ +class GetuserdetailsModel { + String? status; + int? statusCode; + String? message; + Data? data; + + GetuserdetailsModel({this.status, this.statusCode, this.message, this.data}); + + GetuserdetailsModel.fromJson(Map json) { + status = json['status']; + statusCode = json['status_code']; + message = json['message']; + data = json['data'] != null ? new Data.fromJson(json['data']) : null; + } + + Map toJson() { + final Map data = new Map(); + data['status'] = this.status; + data['status_code'] = this.statusCode; + data['message'] = this.message; + if (this.data != null) { + data['data'] = this.data!.toJson(); + } + return data; + } +} + +class Data { + UserData? userData; + List? userCommunity; + List? userGroups; + + Data({this.userData, this.userCommunity, this.userGroups}); + + Data.fromJson(Map json) { + userData = json['userData'] != null + ? new UserData.fromJson(json['userData']) + : null; + if (json['userCommunity'] != null) { + userCommunity = []; + json['userCommunity'].forEach((v) { + userCommunity!.add(new UserCommunity.fromJson(v)); + }); + } + if (json['userGroups'] != null) { + userGroups = []; + json['userGroups'].forEach((v) { + userGroups!.add(new UserGroups.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = new Map(); + if (this.userData != null) { + data['userData'] = this.userData!.toJson(); + } + if (this.userCommunity != null) { + data['userCommunity'] = + this.userCommunity!.map((v) => v.toJson()).toList(); + } + if (this.userGroups != null) { + data['userGroups'] = this.userGroups!.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class UserData { + int? id; + int? principalTypeXid; + String? googleId; + String? appleId; + String? userName; + String? fullName; + String? gender; + String? dateOfBirth; + String? phoneNumber; + String? emailAddress; + String? addressLine1; + String? addressLine2; + String? postCode; + String? lastLoginDatetime; + String? profilePhoto; + int? isProfileUpdated; + String? isActive; + String? createdAt; + + UserData( + {this.id, + this.principalTypeXid, + this.googleId, + this.appleId, + this.userName, + this.fullName, + this.gender, + this.dateOfBirth, + this.phoneNumber, + this.emailAddress, + this.addressLine1, + this.addressLine2, + this.postCode, + this.lastLoginDatetime, + this.profilePhoto, + this.isProfileUpdated, + this.isActive, + this.createdAt}); + + UserData.fromJson(Map json) { + id = json['id']; + principalTypeXid = json['principal_type_xid']; + googleId = json['google_id']; + appleId = json['apple_id']; + userName = json['user_name']; + fullName = json['full_name']; + gender = json['gender']; + dateOfBirth = json['date_of_birth']; + phoneNumber = json['phone_number']; + emailAddress = json['email_address']; + addressLine1 = json['address_line1']; + addressLine2 = json['address_line2']; + postCode = json['post_code']; + lastLoginDatetime = json['last_login_datetime']; + profilePhoto = json['profile_photo']; + isProfileUpdated = json['is_profile_updated']; + isActive = json['is_active']; + createdAt = json['created_at']; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['principal_type_xid'] = this.principalTypeXid; + data['google_id'] = this.googleId; + data['apple_id'] = this.appleId; + data['user_name'] = this.userName; + data['full_name'] = this.fullName; + data['gender'] = this.gender; + data['date_of_birth'] = this.dateOfBirth; + data['phone_number'] = this.phoneNumber; + data['email_address'] = this.emailAddress; + data['address_line1'] = this.addressLine1; + data['address_line2'] = this.addressLine2; + data['post_code'] = this.postCode; + data['last_login_datetime'] = this.lastLoginDatetime; + data['profile_photo'] = this.profilePhoto; + data['is_profile_updated'] = this.isProfileUpdated; + data['is_active'] = this.isActive; + data['created_at'] = this.createdAt; + return data; + } +} + +class UserCommunity { + int? id; + int? iamPrincipalXid; + int? manageCommunityXid; + String? joinedAt; + int? isActive; + CommunityData? communityData; + + UserCommunity( + {this.id, + this.iamPrincipalXid, + this.manageCommunityXid, + this.joinedAt, + this.isActive, + this.communityData}); + + UserCommunity.fromJson(Map json) { + id = json['id']; + iamPrincipalXid = json['iam_principal_xid']; + manageCommunityXid = json['manage_community_xid']; + joinedAt = json['joined_at']; + isActive = json['is_active']; + communityData = json['community_data'] != null + ? new CommunityData.fromJson(json['community_data']) + : null; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['iam_principal_xid'] = this.iamPrincipalXid; + data['manage_community_xid'] = this.manageCommunityXid; + data['joined_at'] = this.joinedAt; + data['is_active'] = this.isActive; + if (this.communityData != null) { + data['community_data'] = this.communityData!.toJson(); + } + return data; + } +} + +class CommunityData { + int? id; + String? communityProfilePhoto; + String? communityBannerImage; + String? communityName; + String? communityLocation; + String? communityDescription; + int? communityTypeXid; + int? activityXid; + int? isActive; + String? createdAt; + + CommunityData( + {this.id, + this.communityProfilePhoto, + this.communityBannerImage, + this.communityName, + this.communityLocation, + this.communityDescription, + this.communityTypeXid, + this.activityXid, + this.isActive, + this.createdAt}); + + CommunityData.fromJson(Map json) { + id = json['id']; + communityProfilePhoto = json['community_profile_photo']; + communityBannerImage = json['community_banner_image']; + communityName = json['community_name']; + communityLocation = json['community_location']; + communityDescription = json['community_description']; + communityTypeXid = json['community_type_xid']; + activityXid = json['activity_xid']; + isActive = json['is_active']; + createdAt = json['created_at']; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['community_profile_photo'] = this.communityProfilePhoto; + data['community_banner_image'] = this.communityBannerImage; + data['community_name'] = this.communityName; + data['community_location'] = this.communityLocation; + data['community_description'] = this.communityDescription; + data['community_type_xid'] = this.communityTypeXid; + data['activity_xid'] = this.activityXid; + data['is_active'] = this.isActive; + data['created_at'] = this.createdAt; + return data; + } +} + +class UserGroups { + int? id; + int? iamPrincipalXid; + int? manageGroupXid; + String? createdAt; + GroupData? groupData; + + UserGroups( + {this.id, + this.iamPrincipalXid, + this.manageGroupXid, + this.createdAt, + this.groupData}); + + UserGroups.fromJson(Map json) { + id = json['id']; + iamPrincipalXid = json['iam_principal_xid']; + manageGroupXid = json['manage_group_xid']; + createdAt = json['created_at']; + groupData = json['group_data'] != null + ? new GroupData.fromJson(json['group_data']) + : null; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['iam_principal_xid'] = this.iamPrincipalXid; + data['manage_group_xid'] = this.manageGroupXid; + data['created_at'] = this.createdAt; + if (this.groupData != null) { + data['group_data'] = this.groupData!.toJson(); + } + return data; + } +} + +class GroupData { + int? id; + int? manageGroupTypeXid; + String? title; + String? backgroundImage; + String? groupImage; + String? link; + String? description; + int? isActive; + String? createdAt; + + GroupData( + {this.id, + this.manageGroupTypeXid, + this.title, + this.backgroundImage, + this.groupImage, + this.link, + this.description, + this.isActive, + this.createdAt}); + + GroupData.fromJson(Map json) { + id = json['id']; + manageGroupTypeXid = json['manage_group_type_xid']; + title = json['title']; + backgroundImage = json['background_image']; + groupImage = json['group_image']; + link = json['link']; + description = json['description']; + isActive = json['is_active']; + createdAt = json['created_at']; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['manage_group_type_xid'] = this.manageGroupTypeXid; + data['title'] = this.title; + data['background_image'] = this.backgroundImage; + data['group_image'] = this.groupImage; + data['link'] = this.link; + data['description'] = this.description; + data['is_active'] = this.isActive; + data['created_at'] = this.createdAt; + return data; + } +} diff --git a/lib/onboarding/Signup/Model/Onboarding/Individual/tellusIndividual.dart b/lib/onboarding/Signup/Model/Onboarding/Individual/tellusIndividual.dart new file mode 100644 index 0000000..1cc2ad6 --- /dev/null +++ b/lib/onboarding/Signup/Model/Onboarding/Individual/tellusIndividual.dart @@ -0,0 +1,235 @@ +class TellusIndividualModel { + String? status; + int? statusCode; + String? message; + Data? data; + + TellusIndividualModel( + {this.status, this.statusCode, this.message, this.data}); + + TellusIndividualModel.fromJson(Map json) { + status = json['status']; + statusCode = json['status_code']; + message = json['message']; + data = json['data'] != null ? new Data.fromJson(json['data']) : null; + } + + Map toJson() { + final Map data = new Map(); + data['status'] = this.status; + data['status_code'] = this.statusCode; + data['message'] = this.message; + if (this.data != null) { + data['data'] = this.data!.toJson(); + } + return data; + } +} + +class Data { + Profile? profile; + + Data({this.profile}); + + Data.fromJson(Map json) { + profile = + json['profile'] != null ? new Profile.fromJson(json['profile']) : null; + } + + Map toJson() { + final Map data = new Map(); + if (this.profile != null) { + data['profile'] = this.profile!.toJson(); + } + return data; + } +} + +class Profile { + int? id; + int? principalTypeXid; + int? principalSourceXid; + String? oneSignalPlayerId; + String? googleId; + String? appleId; + String? facebookId; + String? microsoftId; + String? userName; + String? pin; + String? fullName; + String? gender; + String? dateOfBirth; + String? phoneNumber; + String? otherPhoneNumber; + String? emailAddress; + String? addressLine1; + String? addressLine2; + String? cityXid; + String? stateXid; + String? countryXid; + String? postCode; + String? lastLoginDatetime; + String? profilePhoto; + String? referralCode; + String? description; + String? about; + String? position; + String? trainingScores; + String? height; + String? weight; + String? battingAverage; + int? isProfileUpdated; + String? isActive; + int? groupNotification; + int? communityNotification; + int? followerNotification; + int? newFollowerNotification; + int? directMessageNotification; + String? createdBy; + String? modifiedBy; + String? deletedAt; + String? createdAt; + String? updatedAt; + + Profile( + {this.id, + this.principalTypeXid, + this.principalSourceXid, + this.oneSignalPlayerId, + this.googleId, + this.appleId, + this.facebookId, + this.microsoftId, + this.userName, + this.pin, + this.fullName, + this.gender, + this.dateOfBirth, + this.phoneNumber, + this.otherPhoneNumber, + this.emailAddress, + this.addressLine1, + this.addressLine2, + this.cityXid, + this.stateXid, + this.countryXid, + this.postCode, + this.lastLoginDatetime, + this.profilePhoto, + this.referralCode, + this.description, + this.about, + this.position, + this.trainingScores, + this.height, + this.weight, + this.battingAverage, + this.isProfileUpdated, + this.isActive, + this.groupNotification, + this.communityNotification, + this.followerNotification, + this.newFollowerNotification, + this.directMessageNotification, + this.createdBy, + this.modifiedBy, + this.deletedAt, + this.createdAt, + this.updatedAt}); + + Profile.fromJson(Map json) { + id = json['id']; + principalTypeXid = json['principal_type_xid']; + principalSourceXid = json['principal_source_xid']; + oneSignalPlayerId = json['one_signal_player_id']; + googleId = json['google_id']; + appleId = json['apple_id']; + facebookId = json['facebook_id']; + microsoftId = json['microsoft_id']; + userName = json['user_name']; + pin = json['pin']; + fullName = json['full_name']; + gender = json['gender']; + dateOfBirth = json['date_of_birth']; + phoneNumber = json['phone_number']; + otherPhoneNumber = json['other_phone_number']; + emailAddress = json['email_address']; + addressLine1 = json['address_line1']; + addressLine2 = json['address_line2']; + cityXid = json['city_xid']; + stateXid = json['state_xid']; + countryXid = json['country_xid']; + postCode = json['post_code']; + lastLoginDatetime = json['last_login_datetime']; + profilePhoto = json['profile_photo']; + referralCode = json['referral_code']; + description = json['description']; + about = json['about']; + position = json['position']; + trainingScores = json['training_scores']; + height = json['height']; + weight = json['weight']; + battingAverage = json['batting_average']; + isProfileUpdated = json['is_profile_updated']; + isActive = json['is_active']; + groupNotification = json['group_notification']; + communityNotification = json['community_notification']; + followerNotification = json['follower_notification']; + newFollowerNotification = json['new_follower_notification']; + directMessageNotification = json['direct_message_notification']; + createdBy = json['created_by']; + modifiedBy = json['modified_by']; + deletedAt = json['deleted_at']; + createdAt = json['created_at']; + updatedAt = json['updated_at']; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['principal_type_xid'] = this.principalTypeXid; + data['principal_source_xid'] = this.principalSourceXid; + data['one_signal_player_id'] = this.oneSignalPlayerId; + data['google_id'] = this.googleId; + data['apple_id'] = this.appleId; + data['facebook_id'] = this.facebookId; + data['microsoft_id'] = this.microsoftId; + data['user_name'] = this.userName; + data['pin'] = this.pin; + data['full_name'] = this.fullName; + data['gender'] = this.gender; + data['date_of_birth'] = this.dateOfBirth; + data['phone_number'] = this.phoneNumber; + data['other_phone_number'] = this.otherPhoneNumber; + data['email_address'] = this.emailAddress; + data['address_line1'] = this.addressLine1; + data['address_line2'] = this.addressLine2; + data['city_xid'] = this.cityXid; + data['state_xid'] = this.stateXid; + data['country_xid'] = this.countryXid; + data['post_code'] = this.postCode; + data['last_login_datetime'] = this.lastLoginDatetime; + data['profile_photo'] = this.profilePhoto; + data['referral_code'] = this.referralCode; + data['description'] = this.description; + data['about'] = this.about; + data['position'] = this.position; + data['training_scores'] = this.trainingScores; + data['height'] = this.height; + data['weight'] = this.weight; + data['batting_average'] = this.battingAverage; + data['is_profile_updated'] = this.isProfileUpdated; + data['is_active'] = this.isActive; + data['group_notification'] = this.groupNotification; + data['community_notification'] = this.communityNotification; + data['follower_notification'] = this.followerNotification; + data['new_follower_notification'] = this.newFollowerNotification; + data['direct_message_notification'] = this.directMessageNotification; + data['created_by'] = this.createdBy; + data['modified_by'] = this.modifiedBy; + data['deleted_at'] = this.deletedAt; + data['created_at'] = this.createdAt; + data['updated_at'] = this.updatedAt; + return data; + } +} diff --git a/lib/onboarding/Signup/View/Business/View/tellusbusiness.dart b/lib/onboarding/Signup/View/Business/View/tellusbusiness.dart index a6a80e0..e01b903 100644 --- a/lib/onboarding/Signup/View/Business/View/tellusbusiness.dart +++ b/lib/onboarding/Signup/View/Business/View/tellusbusiness.dart @@ -46,6 +46,8 @@ class _TellusaboutBusinessState extends State { }); } + String pagename = Get.arguments["pageroute"]; + String getBusinessTypeId(String selectedBusinessType) { if (selectedBusinessType.contains("Retail")) { return '1'; @@ -101,7 +103,13 @@ class _TellusaboutBusinessState extends State { snackPosition: SnackPosition.BOTTOM, ); - Get.toNamed(RouteName.businessletusunderstandstep1); + if (pagename == "nextscreen") { + Get.toNamed(RouteName.businessletusunderstandstep1); + + } else if (pagename == "mainscreen") { + Get.toNamed(RouteName.mainscreen); + } + } else if (data.status == ResponseStatus.FAILED) { Get.snackbar( "Error!", diff --git a/lib/onboarding/Signup/View/Individual/tellusindividual.dart b/lib/onboarding/Signup/View/Individual/tellusindividual.dart index 0b1c65f..b66ccf6 100644 --- a/lib/onboarding/Signup/View/Individual/tellusindividual.dart +++ b/lib/onboarding/Signup/View/Individual/tellusindividual.dart @@ -36,6 +36,9 @@ class _TellusaboutIndividualState extends State { TextEditingController datecontroller = TextEditingController(); TextEditingController locationcontroller = TextEditingController(); + String pagename = Get.arguments["pageroute"]; + + DateTime? _selectedDate; final photographController = TextEditingController(); @@ -161,7 +164,12 @@ class _TellusaboutIndividualState extends State { utils.showToast("tell us done Successfully!"); Get.back(); // Get.toNamed(RouteName.individualprofilestep1); + if (pagename == "nextscreen") { Get.toNamed(RouteName.individualactivitystep2); + + } else if (pagename == "mainscreen") { + Get.toNamed(RouteName.mainscreen); + } } else { Get.back(); return utils.showToast(data.message); @@ -170,124 +178,106 @@ class _TellusaboutIndividualState extends State { @override Widget build(BuildContext context) { - return GestureDetector( - onTap: () => FocusManager.instance.primaryFocus?.unfocus(), - child: Scaffold( - backgroundColor: Color.fromARGB(255, 18, 32, 47), - body: Stack( - children: [ - Positioned(top: 70, left: -30, child: CommonBlurLeftSecond()), - Positioned(top: 310, right: -30, child: CommonBlurRightSecond()), - Positioned(top: 510, left: -30, child: CommonBlurLeftBlue()), - GlassmorphicContainer( - width: MediaQuery.of(context).size.width, - height: - // 500.h, - MediaQuery.of(context).size.height, - borderRadius: 2, - blur: 6, - alignment: Alignment.bottomLeft, - border: 2, - linearGradient: LinearGradient( - begin: Alignment.topCenter, - end: Alignment.bottomCenter, - colors: [ - Color(0XFF222935).withOpacity(0.60), - Color(0XFF222935).withOpacity(0.60), - Color(0XFF222935).withOpacity(0.60), - Color(0XFF222935).withOpacity(0.60), - - // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50), - // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50), - // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50), - // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50), - ], - ), - borderGradient: LinearGradient( - begin: Alignment.topCenter, - end: Alignment.bottomCenter, - colors: [ - // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50), - // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50), - Color(0XFF222935).withOpacity(0.60), - - Color(0XFF222935).withOpacity(0.60), - ], - ), - child: ListView(physics: ScrollPhysics(), children: [ - Padding( - padding: EdgeInsets.symmetric(horizontal: 16.w), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - // const Spacer(flex: 1), - sizedBoxHeight(50.h), - Center( - child: text20400white('Tell us about yourself')), - sizedBoxHeight(10.w), - Center( - child: Container( - width: 154, - decoration: ShapeDecoration( - shape: RoundedRectangleBorder( - side: BorderSide( - width: 1, - strokeAlign: BorderSide.strokeAlignCenter, - color: Color(0xFF858585), - ), - ), - )), - ), - sizedBoxHeight(20.h), - GestureDetector( - onTap: () { - ImageUploadBottomSheet().showModal( - context, - false, - (result) { - print("File path is $result"); - editProfileImage.profilePicPath.value = - result; - var filenameresult = extractFileName(result); - print("File name is $filenameresult"); - photographController.text = filenameresult; - }, - ); - }, - child: Center( - child: Column( - children: [ - Stack( - alignment: Alignment.center, - children: [ - // Outer circle - Container( - width: 139.w, - height: 139.h, - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Colors.transparent, - border: Border.all( - color: Color(0XFFD90B2E) - .withOpacity(0.50), - width: 2), + return WillPopScope( + onWillPop: () async { + SystemNavigator.pop(); + Navigator.pop(context); + return true; + }, + child: GestureDetector( + onTap: () => FocusManager.instance.primaryFocus?.unfocus(), + child: Scaffold( + backgroundColor: Color.fromARGB(255, 18, 32, 47), + body: Stack( + children: [ + Positioned(top: 70, left: -30, child: CommonBlurLeftSecond()), + Positioned(top: 310, right: -30, child: CommonBlurRightSecond()), + Positioned(top: 510, left: -30, child: CommonBlurLeftBlue()), + GlassmorphicContainer( + width: MediaQuery.of(context).size.width, + height: + // 500.h, + MediaQuery.of(context).size.height, + borderRadius: 2, + blur: 6, + alignment: Alignment.bottomLeft, + border: 2, + linearGradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Color(0XFF222935).withOpacity(0.60), + Color(0XFF222935).withOpacity(0.60), + Color(0XFF222935).withOpacity(0.60), + Color(0XFF222935).withOpacity(0.60), + + // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50), + // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50), + // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50), + // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50), + ], + ), + borderGradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50), + // Color.fromARGB(255, 18, 32, 47).withOpacity(0.50), + Color(0XFF222935).withOpacity(0.60), + + Color(0XFF222935).withOpacity(0.60), + ], + ), + child: ListView(physics: ScrollPhysics(), children: [ + Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // const Spacer(flex: 1), + sizedBoxHeight(50.h), + Center( + child: text20400white('Tell us about yourself')), + sizedBoxHeight(10.w), + Center( + child: Container( + width: 154, + decoration: ShapeDecoration( + shape: RoundedRectangleBorder( + side: BorderSide( + width: 1, + strokeAlign: BorderSide.strokeAlignCenter, + color: Color(0xFF858585), ), ), - // Middle circle - Container( - width: 119.w, - height: 119.h, - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Colors.transparent, - border: Border.all( - color: Color(0XFFD90B2E) - .withOpacity(0.50), - width: 2), - ), - ), - // Inner circle - Container( + )), + ), + sizedBoxHeight(20.h), + GestureDetector( + onTap: () { + ImageUploadBottomSheet().showModal( + context, + false, + (result) { + print("File path is $result"); + editProfileImage.profilePicPath.value = + result; + var filenameresult = extractFileName(result); + print("File name is $filenameresult"); + photographController.text = filenameresult; + }, + ); + }, + child: Center( + child: Column( + children: [ + Stack( + alignment: Alignment.center, + children: [ + // Outer circle + Container( + width: 139.w, + height: 139.h, decoration: BoxDecoration( shape: BoxShape.circle, color: Colors.transparent, @@ -296,217 +286,242 @@ class _TellusaboutIndividualState extends State { .withOpacity(0.50), width: 2), ), - child: Obx(() => - // editProfileImage - // .profilePicPath.value != - // '' - // ? - editProfileImage.profilePicPath - .value != - '' - ? ClipOval( - child: - SizedBox.fromSize( - size: Size.fromRadius( - 50.r), - child: Image( - image: FileImage( - File( - editProfileImage - .profilePicPath - .value, + ), + // Middle circle + Container( + width: 119.w, + height: 119.h, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.transparent, + border: Border.all( + color: Color(0XFFD90B2E) + .withOpacity(0.50), + width: 2), + ), + ), + // Inner circle + Container( + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.transparent, + border: Border.all( + color: Color(0XFFD90B2E) + .withOpacity(0.50), + width: 2), + ), + child: Obx(() => + // editProfileImage + // .profilePicPath.value != + // '' + // ? + editProfileImage.profilePicPath + .value != + '' + ? ClipOval( + child: + SizedBox.fromSize( + size: Size.fromRadius( + 50.r), + child: Image( + image: FileImage( + File( + editProfileImage + .profilePicPath + .value, + ), ), + fit: BoxFit.cover, + width: 200.w, + height: 200.h, ), - fit: BoxFit.cover, - width: 200.w, - height: 200.h, ), - ), - ) - : Image.asset( - "assets/images/png/camera.png") - // : Image.asset( - // "assets/images/png/camera.png") - )), - // Main button - ], - ), - const SizedBox(height: 9), - text16400white('Add profile picture') - ], - )), - ), - sizedBoxHeight(20.h), - text16400white('Full name'), - sizedBoxHeight(10.h), - CustomTextFormField( - textEditingController: fullNameController, - texttype: TextInputType.text, - hintText: "Enter your full name", - leadingIcon: - // const Icon(Icons.mail_outline), - Image.asset( - width: 22.w, - height: 17.h, - 'assets/images/png/user.png', + ) + : Image.asset( + "assets/images/png/camera.png") + // : Image.asset( + // "assets/images/png/camera.png") + )), + // Main button + ], + ), + const SizedBox(height: 9), + text16400white('Add profile picture') + ], + )), ), - // validatorText: "Enter your full name", - validator: (value) { - if (value!.isEmpty) { - return 'Enter your full name '; - } - return null; - }, - inputFormatters: [ - // LengthLimitingTextInputFormatter(20), - RemoveEmojiInputFormatter(), - FilteringTextInputFormatter.allow( - RegExp('[a-zA-Z ]')) - ], - ), - sizedBoxHeight(10.h), - text16400white('User name'), - sizedBoxHeight(10.h), - CustomTextFormField( - textEditingController: userNameController, - texttype: TextInputType.text, - hintText: "Enter your user name", - leadingIcon: - // const Icon(Icons.mail_outline), - Image.asset( - width: 22.w, - height: 17.h, - 'assets/images/png/user.png', - ), - // validatorText: "Enter your user name", - validator: (value) { - if (value!.isEmpty) { - return 'Enter your user name '; - } - return null; - }, - inputFormatters: [ - // LengthLimitingTextInputFormatter(20), - RemoveEmojiInputFormatter(), - FilteringTextInputFormatter.allow( - RegExp('[a-zA-Z ]')) - ], - ), - sizedBoxHeight(10.h), - text16400white('Date of birth'), - sizedBoxHeight(10.h), - CustomTextFormField( - textEditingController: datecontroller, - readonly: true, - onTap: () { - _selectDate(context); - }, - // texttype: TextInputType.text, - hintText: "Enter your date of birth", - leadingIcon: - // const Icon(Icons.mail_outline), - Image.asset( - width: 22.w, - height: 17.h, - 'assets/images/png/dateimage.png', - ), - // validatorText: "Enter date of birth", - validator: (value) { - if (value!.isEmpty) { - return 'Enter your date of birth'; - } - return null; - }, - ), - sizedBoxHeight(10.h), - text16400white('Gender'), - sizedBoxHeight(10.h), - CustomDropDownWidgetSignup( - header: 'Select gender', - title: '', - listData: _gender, - onItemSelected: _onItemSelected, - leadingImage: - Image.asset('assets/images/png/gendericon.png'), - ), - sizedBoxHeight(10.h), - Row( - children: [ - text16400white('Location'), - sizedBoxWidth(5.w), - Image.asset( - 'assets/images/png/informationicon.png') - ], - ), - sizedBoxHeight(10.h), - CustomTextFormField( - textEditingController: locationcontroller, - texttype: TextInputType.text, - hintText: "Enter your location", - leadingIcon: - // const Icon(Icons.mail_outline), - Image.asset( - width: 22.w, - height: 17.h, - 'assets/images/png/location.png', - ), - // validatorText: "Enter your location", - validator: (value) { - if (value!.isEmpty) { - return 'Enter your location '; - } - return null; - }, - inputFormatters: [ - // LengthLimitingTextInputFormatter(20), - RemoveEmojiInputFormatter(), - FilteringTextInputFormatter.allow( - RegExp('[a-zA-Z ]')) - ], - ), - sizedBoxHeight(20.h), - CustomButton( - text: "Continue", - onPressed: () { - if ( - // isValid! - // fullNameController.text.isBlank! && - // userNameController.text.isBlank! && - // datecontroller.text.isBlank! && - // _selectedgendertype.isEmpty && - // locationcontroller.text.isBlank! && - // editProfileImage.profilePicPath.value == - // '' - fullNameController.text.isBlank! || - userNameController.text.isBlank! || - datecontroller.text.isBlank! || - _selectedgendertype.isEmpty || - locationcontroller.text.isBlank! || - editProfileImage.profilePicPath.value == - '') { - utils.showToast('Please fill all fields'); - } else { - TellusUploadData(); + sizedBoxHeight(20.h), + text16400white('Full name'), + sizedBoxHeight(10.h), + CustomTextFormField( + textEditingController: fullNameController, + texttype: TextInputType.text, + hintText: "Enter your full name", + leadingIcon: + // const Icon(Icons.mail_outline), + Image.asset( + width: 22.w, + height: 17.h, + 'assets/images/png/user.png', + ), + // validatorText: "Enter your full name", + validator: (value) { + if (value!.isEmpty) { + return 'Enter your full name '; } - // if (_selectedgendertype.isNotEmpty) { - // Get.toNamed(RouteName.individualprofilestep1); - - // // Get.to(() => BusinessPage()); - // } else { - // // Handle case where no selection is made - // utils.showToast('Please select an gender type'); - // } - }), - sizedBoxHeight(30.h), - // const Spacer( - // flex: 3, - // ) - ], + return null; + }, + inputFormatters: [ + // LengthLimitingTextInputFormatter(20), + RemoveEmojiInputFormatter(), + FilteringTextInputFormatter.allow( + RegExp('[a-zA-Z ]')) + ], + ), + sizedBoxHeight(10.h), + text16400white('User name'), + sizedBoxHeight(10.h), + CustomTextFormField( + textEditingController: userNameController, + texttype: TextInputType.text, + hintText: "Enter your user name", + leadingIcon: + // const Icon(Icons.mail_outline), + Image.asset( + width: 22.w, + height: 17.h, + 'assets/images/png/user.png', + ), + // validatorText: "Enter your user name", + validator: (value) { + if (value!.isEmpty) { + return 'Enter your user name '; + } + return null; + }, + inputFormatters: [ + // LengthLimitingTextInputFormatter(20), + RemoveEmojiInputFormatter(), + FilteringTextInputFormatter.allow( + RegExp('[a-zA-Z ]')) + ], + ), + sizedBoxHeight(10.h), + text16400white('Date of birth'), + sizedBoxHeight(10.h), + CustomTextFormField( + textEditingController: datecontroller, + readonly: true, + onTap: () { + _selectDate(context); + }, + // texttype: TextInputType.text, + hintText: "Enter your date of birth", + leadingIcon: + // const Icon(Icons.mail_outline), + Image.asset( + width: 22.w, + height: 17.h, + 'assets/images/png/dateimage.png', + ), + // validatorText: "Enter date of birth", + validator: (value) { + if (value!.isEmpty) { + return 'Enter your date of birth'; + } + return null; + }, + ), + sizedBoxHeight(10.h), + text16400white('Gender'), + sizedBoxHeight(10.h), + CustomDropDownWidgetSignup( + header: 'Select gender', + title: '', + listData: _gender, + onItemSelected: _onItemSelected, + leadingImage: + Image.asset('assets/images/png/gendericon.png'), + ), + sizedBoxHeight(10.h), + Row( + children: [ + text16400white('Location'), + sizedBoxWidth(5.w), + Image.asset( + 'assets/images/png/informationicon.png') + ], + ), + sizedBoxHeight(10.h), + CustomTextFormField( + textEditingController: locationcontroller, + texttype: TextInputType.text, + hintText: "Enter your location", + leadingIcon: + // const Icon(Icons.mail_outline), + Image.asset( + width: 22.w, + height: 17.h, + 'assets/images/png/location.png', + ), + // validatorText: "Enter your location", + validator: (value) { + if (value!.isEmpty) { + return 'Enter your location '; + } + return null; + }, + inputFormatters: [ + // LengthLimitingTextInputFormatter(20), + RemoveEmojiInputFormatter(), + FilteringTextInputFormatter.allow( + RegExp('[a-zA-Z ]')) + ], + ), + sizedBoxHeight(20.h), + CustomButton( + text: "Continue", + onPressed: () { + if ( + // isValid! + // fullNameController.text.isBlank! && + // userNameController.text.isBlank! && + // datecontroller.text.isBlank! && + // _selectedgendertype.isEmpty && + // locationcontroller.text.isBlank! && + // editProfileImage.profilePicPath.value == + // '' + fullNameController.text.isBlank! || + userNameController.text.isBlank! || + datecontroller.text.isBlank! || + _selectedgendertype.isEmpty || + locationcontroller.text.isBlank! || + editProfileImage.profilePicPath.value == + '') { + utils.showToast('Please fill all fields'); + } else { + TellusUploadData(); + } + // if (_selectedgendertype.isNotEmpty) { + // Get.toNamed(RouteName.individualprofilestep1); + + // // Get.to(() => BusinessPage()); + // } else { + // // Handle case where no selection is made + // utils.showToast('Please select an gender type'); + // } + }), + sizedBoxHeight(30.h), + // const Spacer( + // flex: 3, + // ) + ], + ), ), - ), - ])), - ], - )), + ])), + ], + )), + ), ); } } diff --git a/lib/onboarding/Signup/View/verifyuser.dart b/lib/onboarding/Signup/View/verifyuser.dart index 4f2b3f5..2338cbe 100644 --- a/lib/onboarding/Signup/View/verifyuser.dart +++ b/lib/onboarding/Signup/View/verifyuser.dart @@ -54,10 +54,18 @@ class _VerifyuserScreenStateState extends State { if (accounttype == 'Individual') { print('individual selected'); - Get.toNamed(RouteName.tellusindividualscreen); + Get.toNamed(RouteName.tellusindividualscreen, + arguments: { + 'pageroute' : "nextscreen" + } + ); } else if (accounttype == 'Business') { print('business selected'); - Get.toNamed(RouteName.tellusbusinessscreen); + Get.toNamed(RouteName.tellusbusinessscreen, + arguments: { + 'pageroute' : "nextscreen" + } + ); } return utils.showToast(data.message); diff --git a/lib/onboarding/Signup/view_model/getUserprofile.dart b/lib/onboarding/Signup/view_model/getUserprofile.dart new file mode 100644 index 0000000..e847129 --- /dev/null +++ b/lib/onboarding/Signup/view_model/getUserprofile.dart @@ -0,0 +1,72 @@ +import 'dart:convert'; + +import 'package:get/get.dart'; +import 'package:regroup/Common/api_urls.dart'; +import 'package:regroup/Common/base_manager.dart'; +import 'package:regroup/Common/controller/data/network/network_api.dart'; +import 'package:regroup/Global.dart'; +import 'package:regroup/Utils/dialogs.dart'; +import 'package:regroup/onboarding/Signup/Model/GetUserdetailsModel.dart'; +import 'package:regroup/resources/routes/route_name.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +GetuserdetailsModel? getuserobj; + + +class Getuserdetails { + Getuserdetails(); + + Future> Getuser() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + final response = await NetworkApiServices().getApi(ApiUrls.getuserdetails); + + if (response.status == ResponseStatus.SUCCESS) { + dynamic responseData = response.data; + + if (responseData is Map) { + // Assuming response data is a map + getuserobj = GetuserdetailsModel.fromJson(responseData); + + await prefs.setString('fullname', getuserobj?.data?.userData?.fullName ?? ""); + await prefs.setString('username', getuserobj?.data?.userData?.userName ?? ""); + await prefs.setString('email', getuserobj?.data?.userData?.emailAddress ?? ""); + await prefs.setString('phone', getuserobj?.data?.userData?.phoneNumber ?? ""); + + emailid = prefs.getString('email'); + myusername = prefs.getString('username'); + fullname = prefs.getString('fullname'); + phonenumber = prefs.getString('phone'); + + + } else if (responseData is String) { + // Parse the JSON string into a map + Map jsonMap; + try { + jsonMap = json.decode(responseData); + } catch (e) { + return ResponseData( + "Error decoding JSON string: $responseData", + ResponseStatus.FAILED); + } + + + await prefs.setString('fullname', getuserobj?.data?.userData?.fullName ?? ""); + await prefs.setString('username', getuserobj?.data?.userData?.userName ?? ""); + await prefs.setString('email', getuserobj?.data?.userData?.emailAddress ?? ""); + await prefs.setString('phone', getuserobj?.data?.userData?.phoneNumber ?? ""); + + emailid = prefs.getString('email'); + myusername = prefs.getString('username'); + fullname = prefs.getString('fullname'); + phonenumber = prefs.getString('phone'); + + + } else { + // Handle other types if necessary + return ResponseData( + "Unexpected response format", ResponseStatus.FAILED); + } + } + return response; + } +} \ No newline at end of file diff --git a/lib/onboarding/Signup/view_model/postmethod.dart b/lib/onboarding/Signup/view_model/postmethod.dart index d0558e8..548b479 100644 --- a/lib/onboarding/Signup/view_model/postmethod.dart +++ b/lib/onboarding/Signup/view_model/postmethod.dart @@ -4,6 +4,7 @@ import 'package:regroup/Common/api_urls.dart'; import 'package:regroup/Common/base_manager.dart'; import 'package:regroup/Common/controller/data/network/network_api.dart'; import 'package:regroup/Global.dart'; +import 'package:regroup/onboarding/Signup/Model/Onboarding/Individual/tellusIndividual.dart'; import 'package:shared_preferences/shared_preferences.dart'; class Onboard { @@ -28,12 +29,9 @@ class Onboard { Map res = response.data; print("res is $res"); await prefs.setString('access-token', res['data']['token']); - await prefs.setString('email', res['data']['email']); - await prefs.setInt('isprofileupdate', res['data']['is_profile_updated']); + // await prefs.setInt('isprofileupdate', res['data']['is_profile_updated']); token = res['data']['token']; - emailid = res['data']['email']; - isprofileupdated = res['data']['is_profile_updated']; print("token is $token"); print("email is $emailid"); @@ -44,11 +42,30 @@ class Onboard { Future PosttellusIndividual(updata) async { print("updata is $updata"); + SharedPreferences prefs = await SharedPreferences.getInstance(); final response = await NetworkApiServices().postApi(updata, ApiUrls.tellusIndividual); print("response is ${response.data}"); print("response message is ${response.message}"); + if (response.status == ResponseStatus.SUCCESS) { + if (response.data['status'] == 'success') { + TellusIndividualModel tellusindiObj = TellusIndividualModel.fromJson(response.data); + // await prefs.setString('fullname', tellusindiObj.data?.profile?.fullName ?? ""); + // await prefs.setString('username', tellusindiObj.data?.profile?.userName ?? ""); + // await prefs.setString('email', tellusindiObj.data?.profile?.emailAddress ?? ""); + // await prefs.setString('phone', tellusindiObj.data?.profile?.phoneNumber ?? ""); + + // emailid = tellusindiObj.data?.profile?.emailAddress; + // myusername = tellusindiObj.data?.profile?.userName; + // fullname = tellusindiObj.data?.profile?.fullName; + // phonenumber = tellusindiObj.data?.profile?.phoneNumber; + + } else { + return ResponseData( + response.data['message'], ResponseStatus.FAILED); + } + } return response; } diff --git a/lib/onboarding/SplashScreen.dart b/lib/onboarding/SplashScreen.dart index 3b490b4..0fcb10d 100644 --- a/lib/onboarding/SplashScreen.dart +++ b/lib/onboarding/SplashScreen.dart @@ -7,8 +7,11 @@ import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_svg/svg.dart'; import 'package:get/get.dart'; +import 'package:regroup/Global.dart'; import 'package:regroup/Utils/Common/NoInternet.dart'; +import 'package:regroup/onboarding/Signup/view_model/getUserprofile.dart'; import 'package:regroup/resources/routes/route_name.dart'; +import 'package:shared_preferences/shared_preferences.dart'; // import 'package:shared_preferences/shared_preferences.dart'; class SplashScreen extends StatefulWidget { @@ -20,8 +23,8 @@ class SplashScreen extends StatefulWidget { class _SplashScreenState extends State { // var _connectionStatus; - // final Connectivity _connectivity = Connectivity(); - // List _connectionStatus = [ConnectivityResult.none]; + final Connectivity _connectivity = Connectivity(); + List _connectionStatus = [ConnectivityResult.none]; // Future checkInternet() async { // final connectivityResult = await (Connectivity().checkConnectivity()); @@ -39,58 +42,143 @@ class _SplashScreenState extends State { // } // } - // Future initConnectivity() async { - // late List result; - // try { - // result = await _connectivity.checkConnectivity(); - // } on PlatformException catch (e) { - // log('Couldn\'t check connectivity status', error: e); - // return; - // } + Future initConnectivity() async { + late List result; + try { + result = await _connectivity.checkConnectivity(); + } on PlatformException catch (e) { + log('Couldn\'t check connectivity status', error: e); + return; + } - // if (!mounted) { - // return Future.value(null); - // } + if (!mounted) { + return Future.value(null); + } - // return _updateConnectionStatus(result); - // } + return _updateConnectionStatus(result); + } - // Future _updateConnectionStatus(List result) async { - // setState(() { - // _connectionStatus = result; - // }); + Future _updateConnectionStatus(List result) async { + setState(() { + _connectionStatus = result; + }); - // // ignore: avoid_print - // print('Connectivity changed: $_connectionStatus'); - // } + // ignore: avoid_print + print('Connectivity changed: $_connectionStatus'); + } @override void initState() { // TODO: implement initState super.initState(); - // initConnectivity(); + initConnectivity(); + log(_connectionStatus.toString()); - // log(_connectionStatus.toString()); - // Future.delayed(Duration(seconds: 2), () async { - // var result = await Get.to(NoInternet()); - // if (result != null && result) { - // Timer(const Duration(seconds: 1), () async { - // Get.toNamed(RouteName.onboarding1); - - // }); - // } - // } else { - // Timer(const Duration(seconds: 2), () async { - // Get.toNamed(RouteName.onboarding1); - - // }); - // } - // }); Future.delayed(Duration(seconds: 2), () async { - Timer(const Duration(seconds: 1), () async { - Get.toNamed(RouteName.onboarding1); - }); + if (_connectionStatus.contains(ConnectivityResult.none)) { + var result = await Get.to(NoInternet()); + if (result != null && result) { + print('this is first'); + Timer(const Duration(seconds: 1), () async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + + token = prefs.getString('access-token'); + emailid = prefs.getString('email'); + myusername = prefs.getString('username'); + fullname = prefs.getString('fullname'); + phonenumber = prefs.getString('phone'); + + if (token == null || token!.isEmpty) { + Get.toNamed(RouteName.onboarding1); + } else { + Getuserdetails().Getuser().then((value) { + print(getuserobj!.data!.userData!.isProfileUpdated!); + // .then((value) { + if (getuserobj?.data?.userData?.isProfileUpdated == 0) { + String? accountype = + getuserobj?.data?.userData?.principalTypeXid.toString(); + + if (accountype == "1") { + Get.toNamed(RouteName.tellusindividualscreen, + arguments: {'pageroute': "mainscreen"}); + } else if (accountype == "2") { + Get.toNamed(RouteName.tellusbusinessscreen, + arguments: {'pageroute': "mainscreen"}); + } + } else { + Get.toNamed(RouteName.mainscreen); + } + }); + // print(getuserobj!.data!.userData!.isProfileUpdated!); + + // // .then((value) { + // if (getuserobj?.data?.userData?.isProfileUpdated == 0) { + // String? accountype = + // getuserobj?.data?.userData?.principalTypeXid.toString(); + + // if (accountype == "1") { + // Get.toNamed(RouteName.tellusindividualscreen, + // arguments: { + // 'pageroute' : "mainscreen" + // } + // ); + // } else if (accountype == "2") { + // Get.toNamed(RouteName.tellusbusinessscreen); + // } + // } else { + // Get.toNamed(RouteName.mainscreen); + // } + // } + // ); + } + }); + } + } else { + Timer(const Duration(seconds: 2), () async { + print('this is second'); + + SharedPreferences prefs = await SharedPreferences.getInstance(); + + token = prefs.getString('access-token'); + emailid = prefs.getString('email'); + myusername = prefs.getString('username'); + fullname = prefs.getString('fullname'); + phonenumber = prefs.getString('phone'); + + if (token == null || token!.isEmpty) { + Get.toNamed(RouteName.onboarding1); + } else { + Getuserdetails().Getuser().then((value) { + print(getuserobj!.data!.userData!.isProfileUpdated!); + // .then((value) { + if (getuserobj?.data?.userData?.isProfileUpdated == 0) { + String? accountype = + getuserobj?.data?.userData?.principalTypeXid.toString(); + + if (accountype == "1") { + Get.toNamed(RouteName.tellusindividualscreen, + arguments: {'pageroute': "mainscreen"}); + } else if (accountype == "2") { + Get.toNamed(RouteName.tellusbusinessscreen, + arguments: {'pageroute': "mainscreen"}); + } + } else { + Get.toNamed(RouteName.mainscreen); + } + }); + + // } + // ); + } + }); + } }); + + // Future.delayed(Duration(seconds: 2), () async { + // Timer(const Duration(seconds: 1), () async { + // Get.toNamed(RouteName.onboarding1); + // }); + // }); } @override From df11515d6b24d7c3e8297025978fe7f6f3a31adb Mon Sep 17 00:00:00 2001 From: Shubhamshirva Date: Fri, 12 Jul 2024 19:33:07 +0530 Subject: [PATCH 2/2] conflicts for tell us page resolved --- lib/Login/ViewModel/LoginApi.dart | 12 ++++++------ .../Signup/View/Business/View/tellusbusiness.dart | 10 +++++----- .../Signup/View/Individual/tellusindividual.dart | 10 +++++----- lib/onboarding/Signup/View/verifyuser.dart | 12 ++++++------ lib/onboarding/SplashScreen.dart | 12 ++++++++---- 5 files changed, 30 insertions(+), 26 deletions(-) diff --git a/lib/Login/ViewModel/LoginApi.dart b/lib/Login/ViewModel/LoginApi.dart index f6f4280..7cd1bb8 100644 --- a/lib/Login/ViewModel/LoginApi.dart +++ b/lib/Login/ViewModel/LoginApi.dart @@ -41,17 +41,17 @@ class LoginAPI { if (accountype == "1") { print('tell us individyal'); Get.toNamed(RouteName.tellusindividualscreen, - arguments: { - 'pageroute' : "mainscreen" - } + // arguments: { + // 'pageroute' : "mainscreen" + // } ); } else if (accountype == "2") { print('tell us business'); Get.toNamed(RouteName.tellusbusinessscreen, - arguments: { - 'pageroute' : "mainscreen" - } + // arguments: { + // 'pageroute' : "mainscreen" + // } ); } } else { diff --git a/lib/onboarding/Signup/View/Business/View/tellusbusiness.dart b/lib/onboarding/Signup/View/Business/View/tellusbusiness.dart index 855791e..f5a9d71 100644 --- a/lib/onboarding/Signup/View/Business/View/tellusbusiness.dart +++ b/lib/onboarding/Signup/View/Business/View/tellusbusiness.dart @@ -46,7 +46,7 @@ class _TellusaboutBusinessState extends State { }); } - String pagename = Get.arguments["pageroute"]; + // String pagename = Get.arguments["pageroute"]; String getBusinessTypeId(String selectedBusinessType) { if (selectedBusinessType.contains("Retail")) { @@ -103,12 +103,12 @@ class _TellusaboutBusinessState extends State { snackPosition: SnackPosition.BOTTOM, ); - if (pagename == "nextscreen") { + // if (pagename == "nextscreen") { Get.toNamed(RouteName.businessletusunderstandstep1); - } else if (pagename == "mainscreen") { - Get.toNamed(RouteName.mainscreen); - } + // } else if (pagename == "mainscreen") { + // Get.toNamed(RouteName.mainscreen); + // } } else if (data.status == ResponseStatus.FAILED) { Get.snackbar( diff --git a/lib/onboarding/Signup/View/Individual/tellusindividual.dart b/lib/onboarding/Signup/View/Individual/tellusindividual.dart index b66ccf6..4d17909 100644 --- a/lib/onboarding/Signup/View/Individual/tellusindividual.dart +++ b/lib/onboarding/Signup/View/Individual/tellusindividual.dart @@ -36,7 +36,7 @@ class _TellusaboutIndividualState extends State { TextEditingController datecontroller = TextEditingController(); TextEditingController locationcontroller = TextEditingController(); - String pagename = Get.arguments["pageroute"]; + // String pagename = Get.arguments["pageroute"]; DateTime? _selectedDate; @@ -164,12 +164,12 @@ class _TellusaboutIndividualState extends State { utils.showToast("tell us done Successfully!"); Get.back(); // Get.toNamed(RouteName.individualprofilestep1); - if (pagename == "nextscreen") { + // if (pagename == "nextscreen") { Get.toNamed(RouteName.individualactivitystep2); - } else if (pagename == "mainscreen") { - Get.toNamed(RouteName.mainscreen); - } + // } else if (pagename == "mainscreen") { + // Get.toNamed(RouteName.mainscreen); + // } } else { Get.back(); return utils.showToast(data.message); diff --git a/lib/onboarding/Signup/View/verifyuser.dart b/lib/onboarding/Signup/View/verifyuser.dart index 2338cbe..0617096 100644 --- a/lib/onboarding/Signup/View/verifyuser.dart +++ b/lib/onboarding/Signup/View/verifyuser.dart @@ -55,16 +55,16 @@ class _VerifyuserScreenStateState extends State { if (accounttype == 'Individual') { print('individual selected'); Get.toNamed(RouteName.tellusindividualscreen, - arguments: { - 'pageroute' : "nextscreen" - } + // arguments: { + // 'pageroute' : "nextscreen" + // } ); } else if (accounttype == 'Business') { print('business selected'); Get.toNamed(RouteName.tellusbusinessscreen, - arguments: { - 'pageroute' : "nextscreen" - } + // arguments: { + // 'pageroute' : "nextscreen" + // } ); } diff --git a/lib/onboarding/SplashScreen.dart b/lib/onboarding/SplashScreen.dart index 0fcb10d..28dc4e8 100644 --- a/lib/onboarding/SplashScreen.dart +++ b/lib/onboarding/SplashScreen.dart @@ -100,10 +100,12 @@ class _SplashScreenState extends State { if (accountype == "1") { Get.toNamed(RouteName.tellusindividualscreen, - arguments: {'pageroute': "mainscreen"}); + // arguments: {'pageroute': "mainscreen"} + ); } else if (accountype == "2") { Get.toNamed(RouteName.tellusbusinessscreen, - arguments: {'pageroute': "mainscreen"}); + // arguments: {'pageroute': "mainscreen"} + ); } } else { Get.toNamed(RouteName.mainscreen); @@ -157,10 +159,12 @@ class _SplashScreenState extends State { if (accountype == "1") { Get.toNamed(RouteName.tellusindividualscreen, - arguments: {'pageroute': "mainscreen"}); + // arguments: {'pageroute': "mainscreen"} + ); } else if (accountype == "2") { Get.toNamed(RouteName.tellusbusinessscreen, - arguments: {'pageroute': "mainscreen"}); + // arguments: {'pageroute': "mainscreen"} + ); } } else { Get.toNamed(RouteName.mainscreen);