From 72656a3564797eb258cdc4c75a55e891d836060a Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Wed, 22 Apr 2026 11:40:27 +0300 Subject: [PATCH] update to stores, VersionID 10.0 --- lib/app_state/app_state.dart | 2 +- lib/classes/consts.dart | 4 +-- lib/widgets/sso_webview_widget.dart | 39 ++++++++++++++++++++++++++--- 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/lib/app_state/app_state.dart b/lib/app_state/app_state.dart index 83a2665..e3ba914 100644 --- a/lib/app_state/app_state.dart +++ b/lib/app_state/app_state.dart @@ -90,7 +90,7 @@ class AppState { String get getHuaweiPushToken => _huaweiPushToken; - final PostParamsModel _postParamsInitConfig = PostParamsModel(channel: 31, versionID: 9.9, mobileType: Platform.isAndroid ? "android" : "ios"); + final PostParamsModel _postParamsInitConfig = PostParamsModel(channel: 31, versionID: 10.0, mobileType: Platform.isAndroid ? "android" : "ios"); void setPostParamsInitConfig() { isAuthenticated = false; diff --git a/lib/classes/consts.dart b/lib/classes/consts.dart index 7513370..3881f3c 100644 --- a/lib/classes/consts.dart +++ b/lib/classes/consts.dart @@ -4,12 +4,12 @@ class ApiConsts { // static String baseUrl = "http://10.200.204.11"; // Local server // static String baseUrl = "https://erptstapp.srca.org.sa"; // SRCA server - static String baseUrl = "https://uat.hmgwebservices.com"; // UAT ser343622ver + // static String baseUrl = "https://uat.hmgwebservices.com"; // UAT ser343622ver // static String baseUrl = "http://10.201.204.101:2024"; // static String baseUrl = "https://webservices.hmg.com"; // PreProd // static String baseUrl = "https://hmgwebservices.com"; // Live server - // static String baseUrl = "https://mohemm.hmg.com"; // New Live server + static String baseUrl = "https://mohemm.hmg.com"; // New Live server static String ssoBaseUrl = "https://sso.hmg.com"; // New Live server // // static String baseUrl = "https://uat.hmgwebservices.com"; // UAT ser343622ver diff --git a/lib/widgets/sso_webview_widget.dart b/lib/widgets/sso_webview_widget.dart index 6db3c32..4e828c5 100644 --- a/lib/widgets/sso_webview_widget.dart +++ b/lib/widgets/sso_webview_widget.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:mohem_flutter_app/classes/utils.dart'; +import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; import 'package:webview_flutter/webview_flutter.dart'; // Enum for SSO types @@ -19,6 +20,19 @@ class SsoLoginWebView extends StatefulWidget { class _SsoLoginWebViewState extends State { late final WebViewController _controller; String? url; + bool _isTicketLoadingVisible = false; + + void _showTicketLoading() { + if (widget.ssoType != SsoType.forTicket || _isTicketLoadingVisible || !mounted) return; + _isTicketLoadingVisible = true; + Utils.showLoading(context); + } + + void _hideTicketLoading() { + if (widget.ssoType != SsoType.forTicket || !_isTicketLoadingVisible || !mounted) return; + _isTicketLoadingVisible = false; + Utils.hideLoading(context); + } @override void initState() { @@ -39,15 +53,19 @@ class _SsoLoginWebViewState extends State { }, onPageStarted: (String url) { print("Page started loading: $url"); + _showTicketLoading(); }, onPageFinished: (String url) { print("Page finished loading: $url"); + _hideTicketLoading(); }, onHttpError: (HttpResponseError error) { print("HTTP error: ${error.toString()} for URL: ${error.response!.statusCode}"); + _hideTicketLoading(); }, onWebResourceError: (WebResourceError error) { print("Web resource error: ${error.description} for URL: ${error.errorType}"); + _hideTicketLoading(); }, ), ); @@ -57,6 +75,11 @@ class _SsoLoginWebViewState extends State { // For ENSAT, just load the URL directly (GET request) _controller.loadRequest(Uri.parse(url!)); } else { + if (widget.ssoType == SsoType.forTicket) { + WidgetsBinding.instance.addPostFrameCallback((_) { + _showTicketLoading(); + }); + } // For Paxes (Ticket, Courses), use HTML form POST _controller.loadHtmlString(_buildHtmlContent()); } @@ -64,8 +87,12 @@ class _SsoLoginWebViewState extends State { // Build HTML content for the SSO form String _buildHtmlContent() { - String formAction = url ?? "https://www.paxes.com/sso/hmg"; - + String formAction; + if (widget.ssoType == SsoType.forTicket) { + formAction = "https://www.paxes.com/sso/hmg"; + } else { + formAction = url ?? ""; + } return ''' @@ -78,8 +105,14 @@ class _SsoLoginWebViewState extends State { '''; } + @override + void dispose() { + _hideTicketLoading(); + super.dispose(); + } + @override Widget build(BuildContext context) { - return Scaffold(appBar: null, body: SafeArea(child: WebViewWidget(controller: _controller))); + return Scaffold(appBar: AppBarWidget(context, title: "MoheM", showWorkListSettingButton: false), body: SafeArea(child: WebViewWidget(controller: _controller))); } }