add details fixed

This commit is contained in:
Rajshinde046
2024-06-24 14:55:18 +05:30
parent 9aed11036a
commit 147c03e390
12 changed files with 232 additions and 48 deletions

View File

@@ -107,13 +107,8 @@ class NetworkApiServices {
return ResponseData<dynamic>("success", ResponseStatus.SUCCESS,
data: response.data);
} else if (response.statusCode == 203) {
print(response.data['message'].toString());
return ResponseData<dynamic>("validation", ResponseStatus.PRIVATE,
data: response.data['message'].toString());
} else if (response.statusCode == 202) {
print(response.data);
return ResponseData<dynamic>("success", ResponseStatus.PRIVATE,
data: response.data);
} else {
try {
return ResponseData<dynamic>(

View File

@@ -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});

View File

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

View File

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

View File

@@ -33,6 +33,18 @@ class _AddDetailsState extends State<AddDetails> {
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<AddDetails> {
}
}
// String image = Get.arguments["image"];
@override
Widget build(BuildContext context) {
return WillPopScope(
@@ -164,6 +178,9 @@ class _AddDetailsState extends State<AddDetails> {
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<AddDetails> {
height: 15.h,
),
CustomTextFormField(
readonly: phone.text == null || phone.text == ""
? false
: true,
autofocus: false,
textEditingController: phone,
texttype: TextInputType.phone,

View File

@@ -92,16 +92,34 @@ class _LoginScreenState extends State<LoginScreen> {
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<LoginScreen> {
});
} 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<LoginScreen> {
context
.read<SendOtpBloc>()
.add(SendOtp(myLoginData));
} else if (state == SendOtpState.error) {
} else {
ScaffoldMessenger.of(context)
.showSnackBar(

View File

@@ -58,21 +58,47 @@ class _VerifyOTPState extends State<VerifyOTP> {
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)

View File

@@ -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<SplashScreen>
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,9 +77,29 @@ class _SplashScreenState extends State<SplashScreen>
if (token == null || token!.isEmpty) {
Get.offAndToNamed(RouteName.loginscreen);
} else {
// GetProfile().GetProfileAPI().then((value) {
// Get.toNamed(RouteName.mainScreen, arguments: 0);
// });
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)
:
@@ -80,11 +107,29 @@ class _SplashScreenState extends State<SplashScreen>
// ? Get.toNamed(RouteName.kyc)
// :
isriskProfileUpdated == 0
? Get.toNamed(RouteName.updateriskprofile, arguments: {
? Get.toNamed(RouteName.updateriskprofile,
arguments: {
"fromScreen": "login-flow",
})
: Get.toNamed(RouteName.mainscreen);
// 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<SplashScreen>
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);
}
}
});

View File

@@ -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<String, dynamic> responseData =
Map<String, dynamic>.from(response.data);
@@ -22,6 +24,11 @@ class SendOtpAPI {
return ResponseData<dynamic>(
responseData['message'], ResponseStatus.FAILED);
}
} else if (response.status == ResponseStatus.PRIVATE) {
Map<String, dynamic> responseData =
Map<String, dynamic>.from(response.data);
return ResponseData<dynamic>("validation", ResponseStatus.PRIVATE,
data: responseData["message"]);
}
return response;
}

View File

@@ -17,7 +17,7 @@ class LogoutAPI {
Map<String, dynamic> responseData =
Map<String, dynamic>.from(response.data);
if (responseData['status'] == "success") {
print("OTP sent successfully");
print("logout successful");
} else {
return ResponseData<dynamic>(
responseData['message'], ResponseStatus.FAILED);

View File

@@ -20,5 +20,5 @@ class SendOtp extends SendOtpEvent {
}
// Define states
enum SendOtpState { initial, loading, success, failure }
enum SendOtpState { initial, loading, success, failure, error }

View File

@@ -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<SendOtpEvent, SendOtpState> {
SendOtpBloc() : super(SendOtpState.initial) {
on<SendOtp>(mapEventToState);
@@ -17,11 +21,15 @@ class SendOtpBloc extends Bloc<SendOtpEvent, SendOtpState> {
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<SendOtpEvent, SendOtpState> {
}
}
}