google sign in

This commit is contained in:
Rajshinde046
2024-06-18 19:48:06 +05:30
parent 7e257ffa00
commit ca712f8e30
5 changed files with 170 additions and 130 deletions

View File

@@ -94,4 +94,7 @@ class ApiUrls {
//logout
static String logout = "${base}Logout";
//signin with google
static String googlesignin = "${base}sign-in-with-google";
}

View File

@@ -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,

View File

@@ -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<LoginScreen> {
}
_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<String, String> 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<String, String> 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<LoginScreen> {
if (isValid!) {
FocusManager.instance.primaryFocus
?.unfocus();
if (isValid != null && isValid) {
if (isValid != null && isValid) {
Map<String, String> myLoginData = {
"mobile_number": phonecontroller.text,
};

View File

@@ -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<String, dynamic> 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<dynamic>(
response.data['message'], ResponseStatus.FAILED);
@@ -27,4 +31,4 @@ class GoogleAPI {
return response;
}
}
}