From 147c03e39057793c50f6c7ae303b16be8186b523 Mon Sep 17 00:00:00 2001 From: Rajshinde046 Date: Mon, 24 Jun 2024 14:55:18 +0530 Subject: [PATCH] add details fixed --- lib/data/network/network_api_services.dart | 5 - .../call_recommendations_model.dart | 4 +- .../MainScreen/Portfolio/PortfolioEmpty.dart | 4 +- .../Portfolio/small_case_user_portoflio.dart | 4 +- lib/view/login/AddDetails.dart | 20 +++ lib/view/login/LoginScreen.dart | 39 ++++- lib/view/login/VerifyOtp.dart | 40 ++++- lib/view/onBoarding/splashScreen.dart | 137 ++++++++++++++++-- lib/view_model/Login/send_otp_api.dart | 9 +- lib/view_model/LogoutApi/logout_api.dart | 2 +- lib/view_model/SendOtp/sendOtpObserver.dart | 2 +- lib/view_model/SendOtp/sendOtpbloc.dart | 14 +- 12 files changed, 232 insertions(+), 48 deletions(-) diff --git a/lib/data/network/network_api_services.dart b/lib/data/network/network_api_services.dart index 4de2ee2..51887e1 100644 --- a/lib/data/network/network_api_services.dart +++ b/lib/data/network/network_api_services.dart @@ -107,13 +107,8 @@ class NetworkApiServices { return ResponseData("success", ResponseStatus.SUCCESS, data: response.data); } else if (response.statusCode == 203) { - print(response.data['message'].toString()); return ResponseData("validation", ResponseStatus.PRIVATE, data: response.data['message'].toString()); - } else if (response.statusCode == 202) { - print(response.data); - return ResponseData("success", ResponseStatus.PRIVATE, - data: response.data); } else { try { return ResponseData( diff --git a/lib/model/ProductsModel/call_recommendations_model.dart b/lib/model/ProductsModel/call_recommendations_model.dart index bcccc57..a208a55 100644 --- a/lib/model/ProductsModel/call_recommendations_model.dart +++ b/lib/model/ProductsModel/call_recommendations_model.dart @@ -73,7 +73,7 @@ class ActiveCalls { String? targetPrice; String? stopLoss; int? isSendRecommendationNow; - Null? scheduleDateTime; + String? scheduleDateTime; String? createdAt; int? optionTypeXid; ProductTypeData? productTypeData; @@ -192,7 +192,7 @@ class ActionData { int? id; String? name; int? isActive; - Null? createdAt; + String? createdAt; ActionData({this.id, this.name, this.isActive, this.createdAt}); diff --git a/lib/view/MainScreen/Portfolio/PortfolioEmpty.dart b/lib/view/MainScreen/Portfolio/PortfolioEmpty.dart index c0cca96..efeefd3 100644 --- a/lib/view/MainScreen/Portfolio/PortfolioEmpty.dart +++ b/lib/view/MainScreen/Portfolio/PortfolioEmpty.dart @@ -972,7 +972,7 @@ class HoldingsTabBar extends StatelessWidget { indicatorColor: const Color(0xFFFFFFFF), labelColor: Colors.white, unselectedLabelColor: const Color(0xffFFFFFF), - overlayColor: WidgetStateProperty.all(const Color(0xFFFFFFFF)), + overlayColor: MaterialStateProperty.all(const Color(0xFFFFFFFF)), tabs: const [ Tab( text: 'Holdings', @@ -1034,7 +1034,7 @@ class _PortfolioTabBarState extends State indicatorColor: const Color(0xff6C0000), labelColor: Colors.white, unselectedLabelColor: const Color(0xFF464646), - overlayColor: WidgetStateProperty.all(const Color(0xFFFFFFFF)), + overlayColor: MaterialStateProperty.all(const Color(0xFFFFFFFF)), tabs: List.generate(widget.portfolioLength, (counter) { return Tab( text: widget.portoflioName[counter].brokerName, diff --git a/lib/view/MainScreen/Portfolio/small_case_user_portoflio.dart b/lib/view/MainScreen/Portfolio/small_case_user_portoflio.dart index 0f86d4f..e66f96d 100644 --- a/lib/view/MainScreen/Portfolio/small_case_user_portoflio.dart +++ b/lib/view/MainScreen/Portfolio/small_case_user_portoflio.dart @@ -1157,7 +1157,7 @@ class HoldingsTabBar extends StatelessWidget { indicatorColor: const Color(0xFFFFFFFF), labelColor: Colors.white, unselectedLabelColor: const Color(0xffFFFFFF), - overlayColor: WidgetStateProperty.all(const Color(0xFFFFFFFF)), + overlayColor: MaterialStateProperty.all(const Color(0xFFFFFFFF)), tabs: const [ Tab( text: 'Holdings', @@ -1204,7 +1204,7 @@ class _PortfolioTabBarState extends State indicatorColor: const Color(0xff6C0000), labelColor: Colors.white, unselectedLabelColor: const Color(0xFF464646), - overlayColor: WidgetStateProperty.all(const Color(0xFFFFFFFF)), + overlayColor: MaterialStateProperty.all(const Color(0xFFFFFFFF)), tabs: List.generate(widget.portfolioLength, (counter) { return Tab( text: widget.portoflioName.data![counter].brokerName, diff --git a/lib/view/login/AddDetails.dart b/lib/view/login/AddDetails.dart index e0e15ba..495440e 100644 --- a/lib/view/login/AddDetails.dart +++ b/lib/view/login/AddDetails.dart @@ -33,6 +33,18 @@ class _AddDetailsState extends State { Color primaryColor = Colors.transparent.withOpacity(0.2); Color secondaryColor = Colors.grey.shade800; + @override + void initState() { + super.initState(); + getDetails(); + } + + getDetails() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + email.text = prefs.getString('emailaddress')!; + phone.text = prefs.getString('phoneNumber')!; + } + bool isSwitched = false; void _toggleSwitch(bool value) { @@ -113,6 +125,8 @@ class _AddDetailsState extends State { } } + // String image = Get.arguments["image"]; + @override Widget build(BuildContext context) { return WillPopScope( @@ -164,6 +178,9 @@ class _AddDetailsState extends State { height: 15.h, ), CustomTextFormField( + readonly: email.text == null || email.text == "" + ? false + : true, autofocus: false, textEditingController: email, texttype: TextInputType.emailAddress, @@ -180,6 +197,9 @@ class _AddDetailsState extends State { height: 15.h, ), CustomTextFormField( + readonly: phone.text == null || phone.text == "" + ? false + : true, autofocus: false, textEditingController: phone, texttype: TextInputType.phone, diff --git a/lib/view/login/LoginScreen.dart b/lib/view/login/LoginScreen.dart index 78fd5ae..b397a76 100644 --- a/lib/view/login/LoginScreen.dart +++ b/lib/view/login/LoginScreen.dart @@ -92,16 +92,34 @@ class _LoginScreenState extends State { snackPosition: SnackPosition.BOTTOM, ); SharedPreferences prefs = await SharedPreferences.getInstance(); + int? isProfileUpdated; + int? isriskProfileUpdated; + String? emailaddress; + + int? isSecuredAccess; + await prefs.setString( 'accessToken', response.data["data"]["access-token"]); - isProfileUpdated = - response.data["data"]["user_data"]["profile_updated"]; - isriskProfileUpdated = - response.data["data"]["user_data"]["risk_profile_updated"]; - isKycUpdated = response.data["data"]["user_data"]["kyc_updated"]; - isSecuredAccess = response.data["data"]["user_data"]["secured_access"]; + + await prefs.setInt('isProfileUpdated', + response.data["data"]["user_data"]["profile_updated"]); + await prefs.setInt('isriskProfileUpdated', + response.data["data"]["user_data"]["risk_profile_updated"]); + + await prefs.setInt('isSecuredAccess', + response.data["data"]["user_data"]["secured_access"]); + + await prefs.setString('emailaddress', + response.data["data"]["user_data"]["email_address"]); + + isProfileUpdated = prefs.getInt('isProfileUpdated'); + isriskProfileUpdated = prefs.getInt('isriskProfileUpdated'); + isSecuredAccess = prefs.getInt('isSecuredAccess'); + emailaddress = prefs.getString('emailaddress'); isProfileUpdated == 0 - ? Get.toNamed(RouteName.adddetails) + ? Get.toNamed(RouteName.adddetails, arguments: { + "emailaddress": emailaddress, + }) : // isKycUpdated == 0 // ? Get.toNamed(RouteName.kyc) @@ -339,6 +357,12 @@ class _LoginScreenState extends State { }); } else if (state == SendOtpState.failure) { Utils.showToast("Oops something went wrong"); + } else if (state == SendOtpState.error) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(responseFromApi), + ), + ); } }, builder: (context, state) { print(state); @@ -368,6 +392,7 @@ class _LoginScreenState extends State { context .read() .add(SendOtp(myLoginData)); + } else if (state == SendOtpState.error) { } else { ScaffoldMessenger.of(context) .showSnackBar( diff --git a/lib/view/login/VerifyOtp.dart b/lib/view/login/VerifyOtp.dart index e64877b..e3fbc9d 100644 --- a/lib/view/login/VerifyOtp.dart +++ b/lib/view/login/VerifyOtp.dart @@ -58,21 +58,47 @@ class _VerifyOTPState extends State { if (resp.status == ResponseStatus.SUCCESS) { log(resp.data.toString()); Get.back(); + // isUserExist = resp.data["data"]["user_account_exist"]; + // isProfileUpdated = resp.data["data"]["user_data"]["profile_updated"]; + // isriskProfileUpdated = + // resp.data["data"]["user_data"]["risk_profile_updated"]; + // isKycUpdated = resp.data["data"]["user_data"]["kyc_updated"]; + // isSecuredAccess = resp.data["data"]["user_data"]["secured_access"]; + SharedPreferences prefs = await SharedPreferences.getInstance(); + int? isProfileUpdated; + int? isriskProfileUpdated; + + int? isSecuredAccess; + String? phoneNumber; + + await prefs.setString('accessToken', resp.data["data"]["access-token"]); + + await prefs.setInt('isProfileUpdated', + resp.data["data"]["user_data"]["profile_updated"]); + await prefs.setInt('isriskProfileUpdated', + resp.data["data"]["user_data"]["risk_profile_updated"]); + + await prefs.setInt('isSecuredAccess', + resp.data["data"]["user_data"]["secured_access"]); + + await prefs.setString( + 'phoneNumber', resp.data["data"]["user_data"]["phone_number"]); + + isProfileUpdated = prefs.getInt('isProfileUpdated'); + isriskProfileUpdated = prefs.getInt('isriskProfileUpdated'); + isSecuredAccess = prefs.getInt('isSecuredAccess'); + phoneNumber = prefs.getString('phone_number'); isUserExist = resp.data["data"]["user_account_exist"]; - isProfileUpdated = resp.data["data"]["user_data"]["profile_updated"]; - isriskProfileUpdated = - resp.data["data"]["user_data"]["risk_profile_updated"]; - isKycUpdated = resp.data["data"]["user_data"]["kyc_updated"]; - isSecuredAccess = resp.data["data"]["user_data"]["secured_access"]; if (isUserExist!) { SharedPreferences prefs = await SharedPreferences.getInstance(); await prefs.setString( 'accessToken', resp.data["data"]["access-token"]); - isProfileUpdated == 0 - ? Get.toNamed(RouteName.adddetails) + ? Get.toNamed(RouteName.adddetails, arguments: { + "phoneNumber": phoneNumber, + }) : // isKycUpdated == 0 // ? Get.toNamed(RouteName.kyc) diff --git a/lib/view/onBoarding/splashScreen.dart b/lib/view/onBoarding/splashScreen.dart index 019eece..7d7ddb5 100644 --- a/lib/view/onBoarding/splashScreen.dart +++ b/lib/view/onBoarding/splashScreen.dart @@ -8,8 +8,10 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:onesignal_flutter/onesignal_flutter.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:traderscircuit/Utils/base_manager.dart'; import 'package:traderscircuit/resources/routes/route_name.dart'; import 'package:traderscircuit/view/login/VerifyOtp.dart'; +import 'package:traderscircuit/view_model/ProfileAPI/GetProfileApi.dart'; import '../../Utils/Common/noInternet.dart'; @@ -60,6 +62,11 @@ class _SplashScreenState extends State if (result != null && result) { Timer(const Duration(seconds: 1), () async { SharedPreferences prefs = await SharedPreferences.getInstance(); + isProfileUpdated = prefs.getInt('isProfileUpdated'); + isriskProfileUpdated = prefs.getInt('isriskProfileUpdated'); + isSecuredAccess = prefs.getInt('isSecuredAccess'); + isSecuredAccess = prefs.getInt('isSecuredAccess'); + isSecuredAccess = prefs.getInt('isSecuredAccess'); var token = prefs.getString('accessToken'); // myusername = prefs.getString('name'); // phonenumber = prefs.getString('contact_number'); @@ -70,21 +77,59 @@ class _SplashScreenState extends State if (token == null || token!.isEmpty) { Get.offAndToNamed(RouteName.loginscreen); } else { - // GetProfile().GetProfileAPI().then((value) { - // Get.toNamed(RouteName.mainScreen, arguments: 0); - // }); - isProfileUpdated == 0 - ? Get.toNamed(RouteName.adddetails) - : - // isKycUpdated == 0 - // ? Get.toNamed(RouteName.kyc) - // : - isriskProfileUpdated == 0 - ? Get.toNamed(RouteName.updateriskprofile, arguments: { - "fromScreen": "login-flow", - }) - : Get.toNamed(RouteName.mainscreen); - // Get.toNamed(RouteName.mainscreen); + final response = await GetProfile().GetProfileAPI(); + if (response.status == ResponseStatus.SUCCESS) { + SharedPreferences prefs = + await SharedPreferences.getInstance(); + int? isProfileUpdated; + int? isriskProfileUpdated; + + int? isSecuredAccess; + + // await prefs.setString( + // 'accessToken', response.data["data"]["access-token"]); + + await prefs.setInt('isProfileUpdated', + response.data['data']["profile_updated"]); + await prefs.setInt('isriskProfileUpdated', + response.data['data']["risk_profile_updated"]); + + await prefs.setInt('isSecuredAccess', + response.data['data']["secured_access"]); + + isProfileUpdated = prefs.getInt('isProfileUpdated'); + isriskProfileUpdated = prefs.getInt('isriskProfileUpdated'); + isSecuredAccess = prefs.getInt('isSecuredAccess'); + isProfileUpdated == 0 + ? Get.toNamed(RouteName.adddetails) + : + // isKycUpdated == 0 + // ? Get.toNamed(RouteName.kyc) + // : + isriskProfileUpdated == 0 + ? Get.toNamed(RouteName.updateriskprofile, + arguments: { + "fromScreen": "login-flow", + }) + : Get.toNamed(RouteName.mainscreen); + print('signup: ${prefs.getString('token')}'); + + // Get.toNamed(RouteName.adddetails); + } else { + Get.toNamed(RouteName.loginscreen); + } + // isProfileUpdated == 0 + // ? Get.toNamed(RouteName.adddetails) + // : + // // isKycUpdated == 0 + // // ? Get.toNamed(RouteName.kyc) + // // : + // isriskProfileUpdated == 0 + // ? Get.toNamed(RouteName.updateriskprofile, arguments: { + // "fromScreen": "login-flow", + // }) + // : Get.toNamed(RouteName.mainscreen); + // // Get.toNamed(RouteName.mainscreen); } } }); @@ -103,10 +148,70 @@ class _SplashScreenState extends State if (token == null || token!.isEmpty) { Get.offAndToNamed(RouteName.loginscreen); } else { + final response = await GetProfile().GetProfileAPI(); + if (response.status == ResponseStatus.SUCCESS) { + SharedPreferences prefs = await SharedPreferences.getInstance(); + int? isProfileUpdated; + int? isriskProfileUpdated; + + int? isSecuredAccess; + + // await prefs.setString( + // 'accessToken', response.data["data"]["access-token"]); + + await prefs.setInt('isProfileUpdated', + response.data['data']["profile_updated"]); + await prefs.setInt('isriskProfileUpdated', + response.data['data']["risk_profile_updated"]); + + await prefs.setInt( + 'isSecuredAccess', response.data['data']["secured_access"]); + + isProfileUpdated = prefs.getInt('isProfileUpdated'); + isriskProfileUpdated = prefs.getInt('isriskProfileUpdated'); + isSecuredAccess = prefs.getInt('isSecuredAccess'); + isProfileUpdated == 0 + ? Get.toNamed(RouteName.adddetails) + : + // isKycUpdated == 0 + // ? Get.toNamed(RouteName.kyc) + // : + isriskProfileUpdated == 0 + ? Get.toNamed(RouteName.updateriskprofile, arguments: { + "fromScreen": "login-flow", + }) + : Get.toNamed(RouteName.mainscreen); + print('signup: ${prefs.getString('token')}'); + + // Get.toNamed(RouteName.adddetails); + } else { + Get.toNamed(RouteName.loginscreen); + } // GetProfile().GetProfileAPI().then((value) { // Get.toNamed(RouteName.mainScreen, arguments: 0); // }); - Get.toNamed(RouteName.mainscreen); + // bool? isUserExist; + // int? isProfileUpdated; + // int? isriskProfileUpdated; + // int? isKycUpdated; + // int? isSecuredAccess; + + // SharedPreferences prefs = await SharedPreferences.getInstance(); + // isProfileUpdated = prefs.getInt('isProfileUpdated'); + // isriskProfileUpdated = prefs.getInt('isriskProfileUpdated'); + // isSecuredAccess = prefs.getInt('isSecuredAccess'); + // isProfileUpdated == 0 + // ? Get.toNamed(RouteName.adddetails) + // : + // // isKycUpdated == 0 + // // ? Get.toNamed(RouteName.kyc) + // // : + // isriskProfileUpdated == 0 + // ? Get.toNamed(RouteName.updateriskprofile, arguments: { + // "fromScreen": "login-flow", + // }) + // : Get.toNamed(RouteName.mainscreen);c + // // Get.toNamed(RouteName.mainscreen); } } }); diff --git a/lib/view_model/Login/send_otp_api.dart b/lib/view_model/Login/send_otp_api.dart index 1a1c9f5..c1c6bed 100644 --- a/lib/view_model/Login/send_otp_api.dart +++ b/lib/view_model/Login/send_otp_api.dart @@ -1,3 +1,5 @@ +import 'dart:developer'; + import 'package:shared_preferences/shared_preferences.dart'; import 'package:traderscircuit/Utils/api_urls.dart'; import 'package:traderscircuit/Utils/base_manager.dart'; @@ -12,7 +14,7 @@ class SendOtpAPI { data, ApiUrls.sendOtp, ); - + log(response.toString()); if (response.status == ResponseStatus.SUCCESS) { Map responseData = Map.from(response.data); @@ -22,6 +24,11 @@ class SendOtpAPI { return ResponseData( responseData['message'], ResponseStatus.FAILED); } + } else if (response.status == ResponseStatus.PRIVATE) { + Map responseData = + Map.from(response.data); + return ResponseData("validation", ResponseStatus.PRIVATE, + data: responseData["message"]); } return response; } diff --git a/lib/view_model/LogoutApi/logout_api.dart b/lib/view_model/LogoutApi/logout_api.dart index ecc0e72..3860dd4 100644 --- a/lib/view_model/LogoutApi/logout_api.dart +++ b/lib/view_model/LogoutApi/logout_api.dart @@ -17,7 +17,7 @@ class LogoutAPI { Map responseData = Map.from(response.data); if (responseData['status'] == "success") { - print("OTP sent successfully"); + print("logout successful"); } else { return ResponseData( responseData['message'], ResponseStatus.FAILED); diff --git a/lib/view_model/SendOtp/sendOtpObserver.dart b/lib/view_model/SendOtp/sendOtpObserver.dart index a0b7bc7..1ba2af4 100644 --- a/lib/view_model/SendOtp/sendOtpObserver.dart +++ b/lib/view_model/SendOtp/sendOtpObserver.dart @@ -20,5 +20,5 @@ class SendOtp extends SendOtpEvent { } // Define states -enum SendOtpState { initial, loading, success, failure } +enum SendOtpState { initial, loading, success, failure, error } diff --git a/lib/view_model/SendOtp/sendOtpbloc.dart b/lib/view_model/SendOtp/sendOtpbloc.dart index 667784e..0ff15d5 100644 --- a/lib/view_model/SendOtp/sendOtpbloc.dart +++ b/lib/view_model/SendOtp/sendOtpbloc.dart @@ -1,3 +1,5 @@ +import 'dart:developer'; + import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:get/get.dart'; @@ -6,6 +8,8 @@ import '../../resources/routes/route_name.dart'; import '../Login/send_otp_api.dart'; import 'sendOtpObserver.dart'; +String responseFromApi = ""; + class SendOtpBloc extends Bloc { SendOtpBloc() : super(SendOtpState.initial) { on(mapEventToState); @@ -17,11 +21,15 @@ class SendOtpBloc extends Bloc { try { final loginData = event.loginData; var resp = await SendOtpAPI(loginData).sendOtpApi(); + print(resp); if (resp.status == ResponseStatus.SUCCESS) { emit(SendOtpState.success); - } - else { + } else if (resp.status == ResponseStatus.PRIVATE) { + responseFromApi = resp.data; + + emit(SendOtpState.error); + } else { emit(SendOtpState.failure); } } catch (e) { @@ -30,5 +38,3 @@ class SendOtpBloc extends Bloc { } } } - -