mpin issue fix and claims history fix

This commit is contained in:
Surendiran 2026-03-19 12:23:21 +05:30
parent 0e9b2ebf6d
commit edb8423099
6 changed files with 32 additions and 14 deletions

View File

@ -19,12 +19,12 @@ if (project.hasProperty('google-services.json')) {
def flutterVersionCode = localProperties.getProperty('flutter.versionCode') def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) { if (flutterVersionCode == null) {
flutterVersionCode = '55' flutterVersionCode = '57'
} }
def flutterVersionName = localProperties.getProperty('flutter.versionName') def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) { if (flutterVersionName == null) {
flutterVersionName = '2.0.17' flutterVersionName = '2.0.19'
} }
def keystoreProperties = new Properties() def keystoreProperties = new Properties()

View File

@ -102,16 +102,21 @@ Future<String?> tokenRedirectLogic(
print('hasToken : $hasToken'); print('hasToken : $hasToken');
final location = state.matchedLocation; final location = state.matchedLocation;
// If user is already logged in, never allow returning to OTP/login screens. print('Location: $location');
print('hasToken: $hasToken');
// Already logged in prevent guest pages
if (hasToken && guestRoutes.contains(location)) { if (hasToken && guestRoutes.contains(location)) {
return '/home'; return '/home';
} }
// If not logged in and trying to access a protected route, force login. // Not logged in allow guest pages directly
if (!hasToken && guestRoutes.contains(location)) {
return null;
}
// Protected route without token
if (!hasToken && !guestRoutes.contains(location)) { if (!hasToken && !guestRoutes.contains(location)) {
print('!!!!hasToken : $hasToken');
await SessionManager().clear();
// Show toast once
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
ToastHelper.showErrorToast( ToastHelper.showErrorToast(
context, 'Session expired. Please login again.'); context, 'Session expired. Please login again.');

View File

@ -210,7 +210,8 @@ import '../service/popup_helper.dart';
flex: 12, flex: 12,
child: InkWell( child: InkWell(
onTap: () { onTap: () {
context.pop(); // context.go('/claims'); // context.pop(); //
context.go('/claims');
}, },
child: Row( child: Row(
mainAxisAlignment: mainAxisAlignment:

View File

@ -457,7 +457,7 @@ class _ClaimHistoryPopupState extends State<ClaimHistoryPopup>
], ],
), ),
SizedBox(height: Responsive.isDesktop(context) ? 10 : 6), SizedBox(height: 10),
// BODY: for mobile we will show either the Claim content or full IR Docs content (switch) // BODY: for mobile we will show either the Claim content or full IR Docs content (switch)
// for desktop we show Row with left content and optional right panel // for desktop we show Row with left content and optional right panel
@ -512,15 +512,24 @@ class _ClaimHistoryPopupState extends State<ClaimHistoryPopup>
// Main left content extracted to keep code tidy // Main left content extracted to keep code tidy
// ------------------------- // -------------------------
Widget _buildMainLeftContent({Key? key}) { Widget _buildMainLeftContent({Key? key}) {
return SingleChildScrollView( return Align(
alignment: Alignment.topLeft,
child: SingleChildScrollView(
key: key, key: key,
padding: EdgeInsets.zero,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [ children: [
// Claim Details card (unchanged) // Claim Details card (unchanged)
if(!widget.isRetailPolicy) if(!widget.isRetailPolicy)
Container( Container(
margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 6), margin: EdgeInsets.only(
left: 16,
right: 16,
top: 0,
bottom: 6,
),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(12), borderRadius: BorderRadius.circular(12),
@ -715,7 +724,7 @@ class _ClaimHistoryPopupState extends State<ClaimHistoryPopup>
), ),
], ],
), ),
); ));
} }
Widget buildIRDocsContent({ Widget buildIRDocsContent({

View File

@ -150,6 +150,9 @@ class _pinSettingPageState extends State<pinSettingPage> {
// Navigator.pushReplacementNamed(context, 'empDetails'); // Navigator.pushReplacementNamed(context, 'empDetails');
} }
} else { } else {
setState(() {
_isPinSaved = false; // unlock again
});
ToastHelper.showErrorToast( ToastHelper.showErrorToast(
context, 'Biometric authentication failed'); context, 'Biometric authentication failed');
} }

View File

@ -17,8 +17,8 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# In Windows, build-name is used as the major, minor, and patch parts # In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix. # of the product and file versions while build-number is used as the build suffix.
#version: 1.0.32+32 #version: 1.0.32+32
version: 1.0.30+35 version: 1.0.31+37
#version: 2.0.17+55 #version: 2.0.19+57
environment: environment:
sdk: '>=3.3.3 <4.0.0' sdk: '>=3.3.3 <4.0.0'