diff --git a/lib/Utils/api_urls.dart b/lib/Utils/api_urls.dart index 1b87fc9..cbe6446 100644 --- a/lib/Utils/api_urls.dart +++ b/lib/Utils/api_urls.dart @@ -94,4 +94,7 @@ class ApiUrls { //logout static String logout = "${base}Logout"; + + //signin with google + static String googlesignin = "${base}sign-in-with-google"; } diff --git a/lib/view/MainScreen/Portfolio/PortfolioEmpty.dart b/lib/view/MainScreen/Portfolio/PortfolioEmpty.dart index 7682da3..b6281ba 100644 --- a/lib/view/MainScreen/Portfolio/PortfolioEmpty.dart +++ b/lib/view/MainScreen/Portfolio/PortfolioEmpty.dart @@ -966,7 +966,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', @@ -1006,7 +1006,7 @@ class PortfolioTabBar extends StatelessWidget { 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(portfolioLength, (counter) { return Tab( text: portoflioName[counter].brokerName, diff --git a/lib/view/login/LoginScreen.dart b/lib/view/login/LoginScreen.dart index fbc7eb8..78fd5ae 100644 --- a/lib/view/login/LoginScreen.dart +++ b/lib/view/login/LoginScreen.dart @@ -9,12 +9,14 @@ import 'package:get/get.dart'; import 'package:glassmorphism/glassmorphism.dart'; import 'package:google_sign_in/google_sign_in.dart'; import 'package:onesignal_flutter/onesignal_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; import 'package:traderscircuit/Utils/Common/CustomTextFormField.dart'; import 'package:traderscircuit/Utils/Common/commonBotton.dart'; import 'package:traderscircuit/Utils/base_manager.dart'; import 'package:traderscircuit/Utils/text.dart'; import 'package:traderscircuit/Utils/utils.dart'; import 'package:traderscircuit/resources/routes/route_name.dart'; +import 'package:traderscircuit/view/login/VerifyOtp.dart'; import 'package:traderscircuit/view/onBoarding/splashScreen1.dart'; import 'package:traderscircuit/view_model/GoogleApi/google_api.dart'; import '../../view_model/SendOtp/sendOtpObserver.dart'; @@ -37,86 +39,107 @@ class _LoginScreenState extends State { } _signInWithGooglecheck() async { - // try { - final GoogleSignIn googleSignIn = GoogleSignIn(); - await googleSignIn.signOut(); - final GoogleSignInAccount? googleUser = await googleSignIn.signIn(); - if (googleUser == null) { - return; - } - final GoogleSignInAuthentication googleAuth = - await googleUser.authentication; + try { + final GoogleSignIn googleSignIn = GoogleSignIn(); + await googleSignIn.signOut(); + final GoogleSignInAccount? googleUser = await googleSignIn.signIn(); + if (googleUser == null) { + return; + } + final GoogleSignInAuthentication googleAuth = + await googleUser.authentication; - print('googleAuth AccessToken ${googleAuth.accessToken}'); + print('googleAuth AccessToken ${googleAuth.accessToken}'); - // Show loading dialog - showDialog( - context: context, - barrierDismissible: false, - builder: (BuildContext context) { - return Center( - child: CircularProgressIndicator( - color: Colors.white, - ), + // Show loading dialog + showDialog( + context: context, + barrierDismissible: false, + builder: (BuildContext context) { + return Center( + child: CircularProgressIndicator( + color: Colors.white, + ), + ); + }, + ); + + final status = await OneSignal.shared.getDeviceState(); + final String? playerIdV = status?.userId; + Map updata = { + "principal_source_xid": '3', + "access_token": '${googleAuth.accessToken}', + "player_id": playerIdV!, + }; + // Call Google API + final response = await GoogleAPI(updata).googleApi(); + + // Dismiss loading dialog + Navigator.of(context).pop(); + + if (response.status == ResponseStatus.SUCCESS) { + // await global.setname(); + // await global.getVar(); + + Get.snackbar( + "Success!", + 'Google Sign In successful!', + duration: Duration(seconds: 2), + colorText: Colors.white, + backgroundColor: Colors.green, + margin: EdgeInsets.all(8), + snackStyle: SnackStyle.FLOATING, + snackPosition: SnackPosition.BOTTOM, ); - }, - ); + SharedPreferences prefs = await SharedPreferences.getInstance(); + 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"]; + 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')}'); - // final status = await OneSignal.shared.getDeviceState(); - // final String? playerIdV = status?.userId; - // Map updata = { - // "principal_source_xid": '3', - // "access_token": '${googleAuth.accessToken}', - // "player_id": playerIdV!, - // }; - // // Call Google API - // final data = await GoogleAPI(updata).googleApi(); - - // // Dismiss loading dialog - // Navigator.of(context).pop(); - - // if (data.status == ResponseStatus.SUCCESS) { - // // await global.setname(); - // // await global.getVar(); - - // Get.snackbar( - // "Success!", - // 'Google Sign In successful!', - // duration: Duration(seconds: 2), - // colorText: Colors.white, - // backgroundColor: Colors.green, - // margin: EdgeInsets.all(8), - // snackStyle: SnackStyle.FLOATING, - // snackPosition: SnackPosition.BOTTOM, - // ); - - // Get.toNamed(RouteName.adddetails); - // } else { - // // Show an error message - // Get.snackbar( - // "Error!", - // data.message, - // duration: Duration(seconds: 2), - // colorText: Colors.white, - // backgroundColor: Colors.red, - // margin: EdgeInsets.all(8), - // snackStyle: SnackStyle.FLOATING, - // snackPosition: SnackPosition.BOTTOM, - // ); - // } - // } catch (e) { - // print("Error during Google sign-in and API call: $e"); - // Get.snackbar( - // "Error!", - // 'Something went wrong, please try again!', - // duration: Duration(seconds: 2), - // colorText: Colors.white, - // backgroundColor: Colors.red, - // margin: EdgeInsets.all(8), - // snackStyle: SnackStyle.FLOATING, - // snackPosition: SnackPosition.BOTTOM, - // ); - // } + // Get.toNamed(RouteName.adddetails); + } else { + // Show an error message + Get.snackbar( + "Error!", + response.message, + duration: Duration(seconds: 2), + colorText: Colors.white, + backgroundColor: Colors.red, + margin: EdgeInsets.all(8), + snackStyle: SnackStyle.FLOATING, + snackPosition: SnackPosition.BOTTOM, + ); + } + } catch (e) { + print("Error during Google sign-in and API call: $e"); + Get.snackbar( + "Error!", + 'Something went wrong, please try again!', + duration: Duration(seconds: 2), + colorText: Colors.white, + backgroundColor: Colors.red, + margin: EdgeInsets.all(8), + snackStyle: SnackStyle.FLOATING, + snackPosition: SnackPosition.BOTTOM, + ); + } } @override @@ -338,7 +361,7 @@ class _LoginScreenState extends State { if (isValid!) { FocusManager.instance.primaryFocus ?.unfocus(); - if (isValid != null && isValid) { + if (isValid != null && isValid) { Map myLoginData = { "mobile_number": phonecontroller.text, }; diff --git a/lib/view_model/GoogleApi/google_api.dart b/lib/view_model/GoogleApi/google_api.dart index 8785d81..731c1f3 100644 --- a/lib/view_model/GoogleApi/google_api.dart +++ b/lib/view_model/GoogleApi/google_api.dart @@ -1,6 +1,10 @@ +import 'package:get/get.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:traderscircuit/Utils/api_urls.dart'; import 'package:traderscircuit/Utils/base_manager.dart'; import 'package:traderscircuit/data/network/network_api_services.dart'; +import 'package:traderscircuit/resources/routes/route_name.dart'; +import 'package:traderscircuit/view/login/VerifyOtp.dart'; class GoogleAPI { GoogleAPI(this.data); @@ -9,16 +13,16 @@ class GoogleAPI { SharedPreferences prefs = await SharedPreferences.getInstance(); final response = await NetworkApiServices().postApi( data, - "auth/google-signin/", + ApiUrls.googlesignin, ); if (response.status == ResponseStatus.SUCCESS) { //Map responseData = jsonDecode(response.data); - if (response.data['success'] == true) { - // await prefs.setString('token', response.data["data"]["access"]); - // await prefs.setString('refreshToken', response.data["data"]["refresh"]); - // await prefs.setBool('hasSignedInBefore', response.data["data"]["complete"]); - print('signup: ${prefs.getString('token')}'); + if (response.data["status"] == "success") { + // await prefs.setString('token', response.data["data"]["access"]); + // await prefs.setString('refreshToken', response.data["data"]["refresh"]); + // await prefs.setBool('hasSignedInBefore', response.data["data"]["complete"]); + } else { return ResponseData( response.data['message'], ResponseStatus.FAILED); @@ -27,4 +31,4 @@ class GoogleAPI { return response; } -} \ No newline at end of file +} diff --git a/pubspec.lock b/pubspec.lock index 3699c01..de4ab81 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -336,11 +336,31 @@ packages: sha256: "019cd7eee74254d33fbd2e29229367ce33063516bf6b3258a341d89e3b0f1655" url: "https://pub.dev" source: hosted - - version: "0.5.7+7" - - + firebase_auth: + dependency: "direct main" + description: + name: firebase_auth + sha256: cfc2d970829202eca09e2896f0a5aa7c87302817ecc0bdfa954f026046bf10ba + url: "https://pub.dev" + source: hosted + version: "4.20.0" + firebase_auth_platform_interface: + dependency: transitive + description: + name: firebase_auth_platform_interface + sha256: a0270e1db3b2098a14cb2a2342b3cd2e7e458e0c391b1f64f6f78b14296ec093 + url: "https://pub.dev" + source: hosted + version: "7.3.0" + firebase_auth_web: + dependency: transitive + description: + name: firebase_auth_web + sha256: "64e067e763c6378b7e774e872f0f59f6812885e43020e25cde08f42e9459837b" + url: "https://pub.dev" + source: hosted + version: "5.12.0" firebase_core: dependency: "direct main" description: @@ -361,12 +381,10 @@ packages: dependency: transitive description: name: firebase_core_web - sha256: "6643fe3dbd021e6ccfb751f7882b39df355708afbdeb4130fc50f9305a9d1a3d" url: "https://pub.dev" source: hosted version: "2.17.2" - firebase_crashlytics: dependency: "direct main" description: @@ -504,10 +522,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: c6b0b4c05c458e1c01ad9bcc14041dd7b1f6783d487be4386f793f47a8a4d03e + sha256: "8cf40eebf5dec866a6d1956ad7b4f7016e6c0cc69847ab946833b7d43743809f" url: "https://pub.dev" source: hosted - version: "2.0.20" + version: "2.0.19" flutter_screenutil: dependency: "direct main" description: @@ -594,12 +612,10 @@ packages: dependency: transitive description: name: google_sign_in_android - - sha256: "8f2606fffd912ff8c23e8d94da106764c116112ce65fb18c78123331ae628eb3" + sha256: "7647893c65e6720973f0e579051c8f84b877b486614d9f70a404259c41a4632e" url: "https://pub.dev" source: hosted - version: "6.1.24" - + version: "6.1.23" google_sign_in_ios: dependency: transitive description: @@ -620,12 +636,10 @@ packages: dependency: transitive description: name: google_sign_in_web - sha256: f2b3af0ba52ff59439f18962fca71db860f09507a81da929fc0e719270b35db2 url: "https://pub.dev" source: hosted version: "0.12.3+3" - html: dependency: transitive description: @@ -686,10 +700,10 @@ packages: dependency: transitive description: name: image_picker_android - sha256: "4161e1f843d8480d2e9025ee22411778c3c9eb7e40076dcf2da23d8242b7b51c" + sha256: "0f57fee1e8bfadf8cc41818bbcd7f72e53bb768a54d9496355d5e8a5681a19f1" url: "https://pub.dev" source: hosted - version: "0.8.12+3" + version: "0.8.12+1" image_picker_for_web: dependency: transitive description: @@ -790,26 +804,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" url: "https://pub.dev" source: hosted - version: "10.0.4" + version: "10.0.0" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "2.0.1" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "2.0.1" lints: dependency: transitive description: @@ -838,10 +852,10 @@ packages: dependency: transitive description: name: local_auth_android - sha256: "48dfb2d954da8ef6a77adfc93a29998f7729e9308eaa817e91dea4500317b2c8" + sha256: e0e5b1ea247c5a0951c13a7ee13dc1beae69750e6a2e1910d1ed6a3cd4d56943 url: "https://pub.dev" source: hosted - version: "1.0.39" + version: "1.0.38" local_auth_darwin: dependency: transitive description: @@ -902,10 +916,10 @@ packages: dependency: transitive description: name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.11.0" mime: dependency: transitive description: @@ -982,10 +996,10 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "9c96da072b421e98183f9ea7464898428e764bc0ce5567f27ec8693442e72514" + sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d url: "https://pub.dev" source: hosted - version: "2.2.5" + version: "2.2.4" path_provider_foundation: dependency: transitive description: @@ -1150,10 +1164,10 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577" + sha256: "1ee8bf911094a1b592de7ab29add6f826a7331fb854273d55918693d5364a1f2" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.2.2" shared_preferences_foundation: dependency: transitive description: @@ -1347,10 +1361,10 @@ packages: dependency: transitive description: name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.6.1" timeago: dependency: "direct main" description: @@ -1379,10 +1393,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: ceb2625f0c24ade6ef6778d1de0b2e44f2db71fded235eb52295247feba8c5cf + sha256: "17cd5e205ea615e2c6ea7a77323a11712dffa0720a8a90540db57a01347f9ad9" url: "https://pub.dev" source: hosted - version: "6.3.3" + version: "6.3.2" url_launcher_ios: dependency: transitive description: @@ -1483,10 +1497,10 @@ packages: dependency: transitive description: name: video_player_android - sha256: "9529001630e42988f755772972d5014d30121610700e8e502278a245939f8fc8" + sha256: "134e1ad410d67e18a19486ed9512c72dfc6d8ffb284d0e8f2e99e903d1ba8fa3" url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.4.14" video_player_avfoundation: dependency: transitive description: @@ -1524,10 +1538,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 url: "https://pub.dev" source: hosted - version: "14.2.1" + version: "13.0.0" wakelock: dependency: transitive description: @@ -1576,7 +1590,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.5.1" - web_socket: dependency: transitive description: @@ -1585,7 +1598,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.1.5" - web_socket_channel: dependency: "direct main" description: @@ -1619,7 +1631,5 @@ packages: source: hosted version: "6.5.0" sdks: - - dart: ">=3.4.0 <4.0.0" - flutter: ">=3.22.0" - + dart: ">=3.3.0 <4.0.0" + flutter: ">=3.19.0"