add details fixed
This commit is contained in:
@@ -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>(
|
||||
|
||||
@@ -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});
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -20,5 +20,5 @@ class SendOtp extends SendOtpEvent {
|
||||
}
|
||||
|
||||
// Define states
|
||||
enum SendOtpState { initial, loading, success, failure }
|
||||
enum SendOtpState { initial, loading, success, failure, error }
|
||||
|
||||
|
||||
@@ -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> {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user