diff --git a/android/app/src/main/res/xml/filepaths.xml b/android/app/src/main/res/xml/filepaths.xml
index 6c5db6a..087acc2 100644
--- a/android/app/src/main/res/xml/filepaths.xml
+++ b/android/app/src/main/res/xml/filepaths.xml
@@ -1,8 +1,8 @@
-
-
+
+
+
+
+
+
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/lib/api/chat/chat_api_client.dart b/lib/api/chat/chat_api_client.dart
index daafa92..14b4e42 100644
--- a/lib/api/chat/chat_api_client.dart
+++ b/lib/api/chat/chat_api_client.dart
@@ -39,7 +39,7 @@ class ChatApiClient {
"platform": Platform.isIOS ? "ios" : "android",
"deviceToken": AppState().getIsHuawei ? AppState().getHuaweiPushToken : AppState().getDeviceToken,
"isHuaweiDevice": AppState().getIsHuawei,
- "voipToken": "",
+ "voipToken": "80a3b01fc1ef2453eb4f1daa4fc31d8142d9cb67baf848e91350b607971fe2ba",
},
);
diff --git a/lib/app_state/app_state.dart b/lib/app_state/app_state.dart
index 51469c2..202584b 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: 5.7, mobileType: Platform.isAndroid ? "android" : "ios");
+ final PostParamsModel _postParamsInitConfig = PostParamsModel(channel: 31, versionID: 5.8, mobileType: Platform.isAndroid ? "android" : "ios");
void setPostParamsInitConfig() {
isAuthenticated = false;
diff --git a/lib/classes/consts.dart b/lib/classes/consts.dart
index 4b3f54e..a6eaad2 100644
--- a/lib/classes/consts.dart
+++ b/lib/classes/consts.dart
@@ -3,8 +3,8 @@ import 'package:mohem_flutter_app/ui/marathon/widgets/question_card.dart';
class ApiConsts {
//static String baseUrl = "http://10.200.204.20:2801/"; // 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://hmgwebservices.com"; // Live server
+ // static String baseUrl = "https://uat.hmgwebservices.com"; // UAT ser343622ver
+ static String baseUrl = "https://hmgwebservices.com"; // Live server
static String baseUrlServices = baseUrl + "/Services/"; // server
// static String baseUrlServices = "https://api.cssynapses.com/tangheem/"; // Live server
static String utilitiesRest = baseUrlServices + "Utilities.svc/REST/";
diff --git a/lib/classes/file_process.dart b/lib/classes/file_process.dart
index 83ea15b..0720c8d 100644
--- a/lib/classes/file_process.dart
+++ b/lib/classes/file_process.dart
@@ -2,7 +2,7 @@ import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
-import 'package:open_file/open_file.dart';
+import 'package:open_filex/open_filex.dart';
import 'package:path_provider/path_provider.dart';
import 'package:http/http.dart' as http;
@@ -26,7 +26,7 @@ class FileProcess {
static void openFile(String fileName, {bool isFullPath = false}) {
String dir = directory!.path + "/$fileName.pdf";
- OpenFile.open(isFullPath ? fileName : dir);
+ OpenFilex.open(isFullPath ? fileName : dir);
}
static Future downloadFile(String base64Content, String fileName) async {
diff --git a/lib/provider/chat_provider_model.dart b/lib/provider/chat_provider_model.dart
index 00545b2..0a37f8e 100644
--- a/lib/provider/chat_provider_model.dart
+++ b/lib/provider/chat_provider_model.dart
@@ -37,7 +37,7 @@ import 'package:mohem_flutter_app/models/my_team/get_employee_subordinates_list.
import 'package:mohem_flutter_app/ui/chat/chat_detailed_screen.dart';
import 'package:mohem_flutter_app/ui/landing/dashboard_screen.dart';
import 'package:mohem_flutter_app/widgets/image_picker.dart';
-import 'package:open_file/open_file.dart';
+import 'package:open_filex/open_filex.dart';
import 'package:path_provider/path_provider.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:signalr_netcore/hub_connection.dart';
@@ -1674,7 +1674,7 @@ class ChatProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
try {
String path = await downChatMedia(encodedString, fileTypeName ?? "");
Utils.hideLoading(context);
- OpenFile.open(path);
+ OpenFilex.open(path);
} catch (e) {
Utils.showToast("Cannot open file.");
}
diff --git a/lib/ui/landing/dashboard_screen.dart b/lib/ui/landing/dashboard_screen.dart
index 5de9052..9a91fe3 100644
--- a/lib/ui/landing/dashboard_screen.dart
+++ b/lib/ui/landing/dashboard_screen.dart
@@ -530,49 +530,49 @@ class _DashboardScreenState extends State with WidgetsBindingOb
children: [
ServicesWidget(),
context.watch().isLoading ? const MarathonBannerShimmer().paddingAll(20) : const MarathonBanner().paddingOnly(left: 21, right: 21, bottom: 8, top: 8),
- context.watch().isTutorialLoading
- ? const MarathonBannerShimmer().paddingAll(20)
- : Container(
- padding: EdgeInsets.only(bottom: 12, top: 12),
- margin: EdgeInsets.only(left: 21, right: 21, bottom: 21, top: 8),
- width: double.infinity,
- alignment: Alignment.center,
- decoration: BoxDecoration(
- color: MyColors.backgroundBlackColor,
- borderRadius: BorderRadius.circular(20),
- border: Border.all(color: MyColors.lightGreyEDColor, width: 1),
- ),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisSize: MainAxisSize.min,
- children: [
- Text(
- "Tutorial:",
- style: TextStyle(
- fontSize: 11,
- fontStyle: FontStyle.italic,
- fontWeight: FontWeight.w600,
- color: MyColors.white.withOpacity(0.83),
- letterSpacing: -0.4,
- ),
- ),
- Text(
- context.read().tutorial?.tutorialName ?? "",
- overflow: TextOverflow.ellipsis,
- style: TextStyle(
- fontStyle: FontStyle.italic,
- fontSize: 19,
- fontWeight: FontWeight.bold,
- color: MyColors.white,
- height: 32 / 22,
- ),
- ),
- ],
- ),
- ).onPress(() {
- checkERMChannel();
- // Navigator.pushNamed(context, AppRoutes.marathonTutorialScreen);
- }),
+ // context.watch().isTutorialLoading
+ // ? const MarathonBannerShimmer().paddingAll(20)
+ // : Container(
+ // padding: EdgeInsets.only(bottom: 12, top: 12),
+ // margin: EdgeInsets.only(left: 21, right: 21, bottom: 21, top: 8),
+ // width: double.infinity,
+ // alignment: Alignment.center,
+ // decoration: BoxDecoration(
+ // color: MyColors.backgroundBlackColor,
+ // borderRadius: BorderRadius.circular(20),
+ // border: Border.all(color: MyColors.lightGreyEDColor, width: 1),
+ // ),
+ // child: Column(
+ // crossAxisAlignment: CrossAxisAlignment.start,
+ // mainAxisSize: MainAxisSize.min,
+ // children: [
+ // Text(
+ // "Tutorial:",
+ // style: TextStyle(
+ // fontSize: 11,
+ // fontStyle: FontStyle.italic,
+ // fontWeight: FontWeight.w600,
+ // color: MyColors.white.withOpacity(0.83),
+ // letterSpacing: -0.4,
+ // ),
+ // ),
+ // Text(
+ // context.read().tutorial?.tutorialName ?? "",
+ // overflow: TextOverflow.ellipsis,
+ // style: TextStyle(
+ // fontStyle: FontStyle.italic,
+ // fontSize: 19,
+ // fontWeight: FontWeight.bold,
+ // color: MyColors.white,
+ // height: 32 / 22,
+ // ),
+ // ),
+ // ],
+ // ),
+ // ).onPress(() {
+ // checkERMChannel();
+ // // Navigator.pushNamed(context, AppRoutes.marathonTutorialScreen);
+ // }),
],
),
),
diff --git a/lib/ui/marathon/marathon_tutorial_viewer_screen.dart b/lib/ui/marathon/marathon_tutorial_viewer_screen.dart
index 2e40ecf..0cdc8d8 100644
--- a/lib/ui/marathon/marathon_tutorial_viewer_screen.dart
+++ b/lib/ui/marathon/marathon_tutorial_viewer_screen.dart
@@ -174,10 +174,12 @@ class _MarathonTutorialViewerScreenState extends State {
ext = rFileExt!.split(".").last.toLowerCase();
try {
String path = await _createFileFromString(rFile!.split("base64,").last ?? "", ext ?? "");
- await OpenFile.open(path).catchError((err) {
+ await OpenFilex.open(path).catchError((err) {
print(err);
});
} catch (ex) {
diff --git a/lib/ui/screens/offers_and_discounts/offers_and_discounts_details.dart b/lib/ui/screens/offers_and_discounts/offers_and_discounts_details.dart
index 30a9fa2..b4cb242 100644
--- a/lib/ui/screens/offers_and_discounts/offers_and_discounts_details.dart
+++ b/lib/ui/screens/offers_and_discounts/offers_and_discounts_details.dart
@@ -76,7 +76,7 @@ class _OffersAndDiscountsDetailsState extends State {
: getOffersList[0].titleEn!.toText22(isBold: true, color: const Color(0xff2B353E)).center,
Html(
data: AppState().isArabic(context) ? getOffersList[0].descriptionAr! : getOffersList[0].descriptionEn ?? "",
- onLinkTap: (String? url, Map attributes, _) {
+ onLinkTap: (String? url, RenderContext context, Map attributes, _) {
launchUrl(Uri.parse(url!));
},
),
diff --git a/lib/ui/work_list/item_history_screen.dart b/lib/ui/work_list/item_history_screen.dart
index e88dcba..7490d38 100644
--- a/lib/ui/work_list/item_history_screen.dart
+++ b/lib/ui/work_list/item_history_screen.dart
@@ -22,7 +22,7 @@ import 'package:mohem_flutter_app/models/get_quotation_analysis_list_model.dart'
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/circular_avatar.dart';
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
-import 'package:open_file/open_file.dart';
+import 'package:open_filex/open_filex.dart';
import 'package:path_provider/path_provider.dart';
class ItemHistoryScreenParams {
@@ -278,7 +278,7 @@ class _ItemHistoryScreenState extends State {
).objectContainerView().onPress(() async {
try {
String path = await _createFileFromString(getAttachmentList[index].fILEDATA ?? "", getAttachmentList[index].fILECONTENTTYPE ?? "");
- OpenFile.open(path);
+ OpenFilex.open(path);
} catch (ex) {
Utils.showToast("Cannot open file.");
}
diff --git a/lib/ui/work_list/itg_fragments/attachments_fragment.dart b/lib/ui/work_list/itg_fragments/attachments_fragment.dart
index ec109e7..d31e897 100644
--- a/lib/ui/work_list/itg_fragments/attachments_fragment.dart
+++ b/lib/ui/work_list/itg_fragments/attachments_fragment.dart
@@ -10,7 +10,7 @@ import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/models/itg_forms_models/itg_forms_attachments_model.dart';
import 'package:mohem_flutter_app/widgets/dialogs/confirm_dialog.dart';
-import 'package:open_file/open_file.dart';
+import 'package:open_filex/open_filex.dart';
import 'package:path_provider/path_provider.dart';
import 'package:permission_handler/permission_handler.dart';
@@ -32,33 +32,8 @@ class ITGAttachmentsFragment extends StatelessWidget {
],
).objectContainerView().onPress(() async {
try {
- Permission.storage.isGranted.then(
- (isGranted) async {
- if (!isGranted) {
- Permission.manageExternalStorage.request().then(
- (granted) async {
- if (granted == PermissionStatus.granted) {
- String path = await _createFileFromString(itgFormAttachmentsList[index].fileBase64 ?? "", itgFormAttachmentsList[index].fileType ?? "");
- OpenFile.open(path);
- } else {
- showDialog(
- context: context,
- builder: (BuildContext cxt) => ConfirmDialog(
- message: "You need to give storage permission to view files.",
- onTap: () {
- Navigator.pop(context);
- },
- ),
- );
- }
- },
- );
- } else {
- String path = await _createFileFromString(itgFormAttachmentsList[index].fileBase64 ?? "", itgFormAttachmentsList[index].fileType ?? "");
- OpenFile.open(path);
- }
- },
- );
+ String path = await _createFileFromString(itgFormAttachmentsList[index].fileBase64 ?? "", itgFormAttachmentsList[index].fileType ?? "");
+ OpenFilex.open(path);
} catch (ex) {
Utils.showToast("Cannot open file.");
}
diff --git a/lib/ui/work_list/worklist_fragments/attachments_fragment.dart b/lib/ui/work_list/worklist_fragments/attachments_fragment.dart
index 93309f1..e1381ac 100644
--- a/lib/ui/work_list/worklist_fragments/attachments_fragment.dart
+++ b/lib/ui/work_list/worklist_fragments/attachments_fragment.dart
@@ -10,7 +10,7 @@ import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/models/get_attachement_list_model.dart';
import 'package:mohem_flutter_app/widgets/dialogs/confirm_dialog.dart';
-import 'package:open_file/open_file.dart';
+import 'package:open_filex/open_filex.dart';
import 'package:path_provider/path_provider.dart';
import 'package:permission_handler/permission_handler.dart';
@@ -32,33 +32,8 @@ class AttachmentsFragment extends StatelessWidget {
],
).objectContainerView().onPress(() async {
try {
- Permission.storage.isGranted.then(
- (isGranted) async {
- if (!isGranted) {
- Permission.manageExternalStorage.request().then(
- (granted) async {
- if (granted == PermissionStatus.granted) {
- String path = await _createFileFromString(getAttachmentList[index].fILEDATA ?? "", getAttachmentList[index].fILECONTENTTYPE ?? "");
- OpenFile.open(path);
- } else {
- showDialog(
- context: context,
- builder: (BuildContext cxt) => ConfirmDialog(
- message: "You need to give storage permission to view files.",
- onTap: () {
- Navigator.pop(context);
- },
- ),
- );
- }
- },
- );
- } else {
- String path = await _createFileFromString(getAttachmentList[index].fILEDATA ?? "", getAttachmentList[index].fILECONTENTTYPE ?? "");
- OpenFile.open(path);
- }
- },
- );
+ String path = await _createFileFromString(getAttachmentList[index].fILEDATA ?? "", getAttachmentList[index].fILECONTENTTYPE ?? "");
+ OpenFilex.open(path);
} catch (ex) {
Utils.showToast("Cannot open file.");
}
diff --git a/lib/widgets/image_picker.dart b/lib/widgets/image_picker.dart
index b98d80d..38fcdef 100644
--- a/lib/widgets/image_picker.dart
+++ b/lib/widgets/image_picker.dart
@@ -47,7 +47,7 @@ class ImageOptions {
onFilesTap: () async {
Permission.storage.isGranted.then((isGranted) async {
if (!isGranted) {
- Permission.manageExternalStorage.request().then((granted) async {
+ Permission.storage.request().then((granted) async {
if (granted == PermissionStatus.granted) {
FilePickerResult? result = await FilePicker.platform.pickFiles(
type: FileType.custom,
diff --git a/pubspec.yaml b/pubspec.yaml
index 82ae41b..f7264a4 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
#version: 3.3.01+300040
-version: 3.3.6+300046
+version: 3.3.5+300045
environment:
sdk: ">=2.16.0 <3.0.0"
@@ -63,8 +63,9 @@ dependencies:
file_picker: 5.2.5
geolocator: ^9.0.2
month_year_picker: ^0.2.0+1
- month_picker_dialog_2: 0.5.5
- open_file: ^3.2.1
+ month_picker_dialog_2: ^0.5.5
+# open_file: ^3.2.1
+ open_filex: ^4.4.0
wifi_iot: ^0.3.18
flutter_html: ^3.0.0-alpha.6
# flutter_barcode_scanner: ^2.0.0
@@ -100,7 +101,7 @@ dependencies:
#Encryption
flutter_des: ^2.1.0
- video_player: ^2.5.1
+ video_player: 2.7.0
just_audio: ^0.9.30
# safe_device: ^1.1.2
flutter_layout_grid: ^2.0.1