diff --git a/.gitignore b/.gitignore
index d7192f85..ad1bfc20 100644
--- a/.gitignore
+++ b/.gitignore
@@ -53,3 +53,7 @@ android/gradle.properties
/android/app/profile
/android/app/release
/android/gradle/wrapper/gradle-wrapper.properties
+# Build files - should not be committed
+android/app/build/
+android/build/
+build/
diff --git a/android/app/build.gradle b/android/app/build.gradle
deleted file mode 100644
index b315f561..00000000
--- a/android/app/build.gradle
+++ /dev/null
@@ -1,92 +0,0 @@
-plugins {
- id "com.android.application"
- id "kotlin-android"
- id "dev.flutter.flutter-gradle-plugin"
- id "com.google.gms.google-services"
-}
-
-def localProperties = new Properties()
-def localPropertiesFile = rootProject.file('local.properties')
-if (localPropertiesFile.exists()) {
- localPropertiesFile.withReader('UTF-8') { reader ->
- localProperties.load(reader)
- }
-}
-
-def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
-if (flutterVersionCode == null) {
- flutterVersionCode = '1'
-}
-
-def flutterVersionName = localProperties.getProperty('flutter.versionName')
-if (flutterVersionName == null) {
- flutterVersionName = '1.0'
-}
-
-def keystoreProperties = new Properties()
-def keystorePropertiesFile = rootProject.file('key.properties')
-if (keystorePropertiesFile.exists()) {
- keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
-}
-
-apply plugin: "com.huawei.agconnect"
-
-android {
- namespace 'com.example.test_sa'
-// ndkVersion flutter.ndkVersion
- ndkVersion = "27.0.12077973"
-
- compileOptions {
- coreLibraryDesugaringEnabled true
- sourceCompatibility JavaVersion.VERSION_17
- targetCompatibility JavaVersion.VERSION_17
- }
-
- kotlinOptions {
- jvmTarget = "17" // Must match the compileOptions target
- }
-
- defaultConfig {
- // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
- applicationId "com.hmg.atoms"
- // You can update the following values to match your application needs.
- // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
- minSdkVersion 21
- targetSdkVersion 35
- versionCode flutterVersionCode.toInteger()
- versionName flutterVersionName
- }
-
- signingConfigs {
- release {
- keyAlias keystoreProperties['keyAlias']
- keyPassword keystoreProperties['keyPassword']
- storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
- storePassword keystoreProperties['storePassword']
- }
- }
- buildTypes {
- debug {
- signingConfig signingConfigs.debug
- }
-// release {
-// signingConfig signingConfigs.debug
-// }
- release {
- minifyEnabled true
- shrinkResources true
- signingConfig signingConfigs.release
- }
- }
-}
-
-flutter {
- source '../..'
-}
-
-dependencies {
- implementation 'com.huawei.agconnect:agconnect-core:1.5.2.300'
- implementation 'com.huawei.hms:push:6.7.0.300'
- coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
-}
-
diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
new file mode 100644
index 00000000..840cf3ab
--- /dev/null
+++ b/android/app/build.gradle.kts
@@ -0,0 +1,110 @@
+import java.util.Properties
+import java.io.FileInputStream
+
+plugins {
+ id("com.android.application")
+ id("kotlin-android")
+ id("dev.flutter.flutter-gradle-plugin")
+ id("com.google.gms.google-services")
+ id("com.huawei.agconnect")
+}
+
+val localProperties = Properties()
+val localPropertiesFile = rootProject.file("local.properties")
+if (localPropertiesFile.exists()) {
+ localProperties.load(FileInputStream(localPropertiesFile))
+}
+
+val flutterVersionCode = localProperties.getProperty("flutter.versionCode") ?: "1"
+val flutterVersionName = localProperties.getProperty("flutter.versionName") ?: "1.0"
+
+val keystoreProperties = Properties()
+val keystorePropertiesFile = rootProject.file("key.properties")
+if (keystorePropertiesFile.exists()) {
+ keystoreProperties.load(FileInputStream(keystorePropertiesFile))
+}
+
+android {
+ namespace = "com.example.test_sa"
+ ndkVersion = "28.2.13676358"
+ compileSdk = 36
+
+ compileOptions {
+ isCoreLibraryDesugaringEnabled = true
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+ }
+
+ kotlinOptions {
+ jvmTarget = "17"
+ }
+
+ defaultConfig {
+ applicationId = "com.hmg.atoms"
+ minSdk = flutter.minSdkVersion
+ targetSdk = 36
+ versionCode = flutterVersionCode.toInt()
+ versionName = flutterVersionName
+
+ // 16KB page size support - ensure all ABIs are included
+ ndk {
+ abiFilters.addAll(listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64"))
+ }
+
+ // Additional 16KB page size optimization
+ manifestPlaceholders["16kb_page_size_compatible"] = "true"
+ }
+
+ signingConfigs {
+ create("release") {
+ keyAlias = keystoreProperties["keyAlias"] as String?
+ keyPassword = keystoreProperties["keyPassword"] as String?
+ storeFile = keystoreProperties["storeFile"]?.let { file(it as String) }
+ storePassword = keystoreProperties["storePassword"] as String?
+ }
+ }
+
+ buildTypes {
+ debug {
+ signingConfig = signingConfigs.getByName("debug")
+ }
+ release {
+ isMinifyEnabled = true
+ isShrinkResources = true
+ signingConfig = signingConfigs.getByName("release")
+ }
+ }
+
+ // 16KB page size support for Google Play Store (August 2025 requirement)
+ // AGP 8.1+ uses packaging.jniLibs instead of the deprecated gradle.properties flag
+ packaging {
+ jniLibs {
+ useLegacyPackaging = false
+ // Ensure proper extraction and alignment for 16KB page size
+ excludes.add("**/libunity.so")
+ }
+ resources {
+ excludes += setOf(
+ "META-INF/DEPENDENCIES",
+ "META-INF/LICENSE",
+ "META-INF/LICENSE.txt",
+ "META-INF/license.txt",
+ "META-INF/NOTICE",
+ "META-INF/NOTICE.txt",
+ "META-INF/notice.txt",
+ "META-INF/*.kotlin_module"
+ )
+ }
+ }
+}
+
+flutter {
+ source = "../.."
+}
+
+dependencies {
+ implementation("com.huawei.agconnect:agconnect-core:1.5.2.300")
+ implementation("com.huawei.hms:push:6.7.0.300")
+ coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.3")
+}
+
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index df7bac77..ae995740 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -42,6 +42,12 @@
android:showWhenLocked="true"
android:turnScreenOn="true"
android:usesCleartextTraffic="true">
+
+
+
+
- if (project.plugins.hasPlugin("com.android.application") ||
- project.plugins.hasPlugin("com.android.library")) {
- project.android {
- compileSdkVersion 34
- }
- }
- }
-
-}
-
-//subprojects {
-// project.buildDir = "${rootProject.buildDir}/${project.name}"
-// project.evaluationDependsOn(':app')
-//}
-
-//rootProject.buildDir = File("../build")
-subprojects {
- project.buildDir = "${rootProject.buildDir}/${project.name}"
-}
-subprojects {
- project.evaluationDependsOn(":app")
-}
-
-
-//subprojects {
-// project.buildDir = "${rootProject.buildDir}/${project.name}"
-//}
-//subprojects {
-// project.evaluationDependsOn(':app')
-//}
-
-tasks.register("clean", Delete) {
- delete rootProject.buildDir
-}
diff --git a/android/build.gradle.kts b/android/build.gradle.kts
new file mode 100644
index 00000000..7e718766
--- /dev/null
+++ b/android/build.gradle.kts
@@ -0,0 +1,51 @@
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ maven { url = uri("https://jitpack.io") }
+ maven { url = uri("https://developer.huawei.com/repo/") }
+ }
+
+ dependencies {
+ classpath("com.android.tools.build:gradle:8.9.1")
+ classpath("com.huawei.agconnect:agcp:1.9.1.304")
+ }
+}
+
+configurations.all {
+ resolutionStrategy.force("androidx.appcompat:appcompat:1.3.0")
+}
+
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ maven { url = uri("https://developer.huawei.com/repo/") }
+ }
+}
+
+rootProject.buildDir = file("../build")
+
+subprojects {
+ afterEvaluate {
+ if (plugins.hasPlugin("com.android.application") ||
+ plugins.hasPlugin("com.android.library")) {
+ extensions.configure {
+ compileSdkVersion(36)
+ }
+ }
+ }
+}
+
+subprojects {
+ project.buildDir = file("${rootProject.buildDir}/${project.name}")
+}
+
+subprojects {
+ project.evaluationDependsOn(":app")
+}
+
+tasks.register("clean") {
+ delete(rootProject.buildDir)
+}
+
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index 2fd3de27..3df3acaf 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Thu Oct 24 09:39:31 AST 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
\ No newline at end of file
diff --git a/android/settings.gradle b/android/settings.gradle
deleted file mode 100644
index b9a925b1..00000000
--- a/android/settings.gradle
+++ /dev/null
@@ -1,39 +0,0 @@
-//include ':app'
-//
-//def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
-//def properties = new Properties()
-//
-//assert localPropertiesFile.exists()
-//localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
-//
-//def flutterSdkPath = properties.getProperty("flutter.sdk")
-//assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
-//apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
-//
-
-pluginManagement {
- def flutterSdkPath = {
- def properties = new Properties()
- file("local.properties").withInputStream { properties.load(it) }
- def flutterSdkPath = properties.getProperty("flutter.sdk")
- assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
- return flutterSdkPath
- }()
-
- includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
-
- repositories {
- google()
- mavenCentral()
- gradlePluginPortal()
- }
-}
-
-plugins {
- id "dev.flutter.flutter-plugin-loader" version "1.0.0"
- id "com.android.application" version "8.7.0" apply false
- id "org.jetbrains.kotlin.android" version "1.9.25" apply false // Replace {kotlinVersion} with your version, e.g., "1.7.10"
- id "com.google.gms.google-services" version "4.3.13" apply false // Replace {kotlinVersion} with your version, e.g., "1.7.10"
-}
-
-include ":app"
\ No newline at end of file
diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts
new file mode 100644
index 00000000..5804dc0a
--- /dev/null
+++ b/android/settings.gradle.kts
@@ -0,0 +1,27 @@
+pluginManagement {
+ val flutterSdkPath: String = run {
+ val properties = java.util.Properties()
+ file("local.properties").inputStream().use { properties.load(it) }
+ val path = properties.getProperty("flutter.sdk")
+ require(path != null) { "flutter.sdk not set in local.properties" }
+ path
+ }
+
+ includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
+
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+
+plugins {
+ id("dev.flutter.flutter-plugin-loader") version "1.0.0"
+ id("com.android.application") version "8.9.1" apply false
+ id("org.jetbrains.kotlin.android") version "2.1.0" apply false
+ id("com.google.gms.google-services") version "4.4.2" apply false
+}
+
+include(":app")
+
diff --git a/l10n.yaml b/l10n.yaml
index ce15a00b..0b38c4dc 100644
--- a/l10n.yaml
+++ b/l10n.yaml
@@ -1,4 +1,4 @@
arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
-untranslated-messages-file: localization_error.txt
+untranslated-messages-file: localization_error.txt
\ No newline at end of file
diff --git a/lib/controllers/api_routes/http_status_manger.dart b/lib/controllers/api_routes/http_status_manger.dart
index 93ea13ee..d4d5066c 100644
--- a/lib/controllers/api_routes/http_status_manger.dart
+++ b/lib/controllers/api_routes/http_status_manger.dart
@@ -1,4 +1,6 @@
-import 'package:flutter_gen/gen_l10n/app_localizations.dart';
+import 'package:localization/localization.dart';
+
+import '../../l10n/app_localizations.dart';
class HttpStatusManger {
static String getStatusMessage({
diff --git a/lib/controllers/localization/localization.dart b/lib/controllers/localization/localization.dart
index 75d6e383..61356f3a 100644
--- a/lib/controllers/localization/localization.dart
+++ b/lib/controllers/localization/localization.dart
@@ -3,7 +3,7 @@
//
// import 'package:flutter/material.dart';
// import 'package:flutter/services.dart';
-// import 'package:flutter_gen/gen_l10n/app_localizations.dart';
+// import 'package:localization/localization.dart';
//
// class AppLocalization {
// AppLocalization(this.locale);
diff --git a/lib/controllers/providers/api/devices_provider.dart b/lib/controllers/providers/api/devices_provider.dart
index bc0e5a61..218ebf80 100644
--- a/lib/controllers/providers/api/devices_provider.dart
+++ b/lib/controllers/providers/api/devices_provider.dart
@@ -2,7 +2,7 @@ import 'dart:convert';
import 'dart:developer';
import 'package:flutter/cupertino.dart';
-import 'package:flutter_gen/gen_l10n/app_localizations.dart';
+import 'package:localization/localization.dart';
import 'package:http/http.dart';
import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/http_status_manger.dart';
@@ -13,6 +13,7 @@ import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/user.dart';
import 'package:test_sa/modules/asset_delivery_module/models/technical_inpection_asset_model.dart';
+import '../../../l10n/app_localizations.dart';
import '../../../models/device/asset.dart';
class AssetProvider extends ChangeNotifier {
diff --git a/lib/extensions/context_extension.dart b/lib/extensions/context_extension.dart
index 792dd942..41f93d7f 100644
--- a/lib/extensions/context_extension.dart
+++ b/lib/extensions/context_extension.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:flutter_gen/gen_l10n/app_localizations.dart';
+import 'package:localization/localization.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
@@ -7,6 +7,7 @@ import 'package:test_sa/new_views/swipe_module/dialoge/confirm_dialog.dart';
import 'package:test_sa/new_views/swipe_module/dialoge/info_dialog.dart';
import '../controllers/providers/settings/setting_provider.dart';
+import '../l10n/app_localizations.dart';
extension BuildContextExtension on BuildContext {
AppLocalizations get translation => AppLocalizations.of(this)!;
diff --git a/lib/helper/utils.dart b/lib/helper/utils.dart
index 41026321..d35cd4cb 100644
--- a/lib/helper/utils.dart
+++ b/lib/helper/utils.dart
@@ -20,7 +20,6 @@ import 'package:google_api_availability/google_api_availability.dart';
// import 'package:mohem_flutter_app/widgets/dialogs/confirm_dialog.dart';
// import 'package:mohem_flutter_app/widgets/loading_dialog.dart';
import 'package:nfc_manager/nfc_manager.dart';
-import 'package:nfc_manager/platform_tags.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:test_sa/new_views/common_widgets/app_lazy_loading.dart';
import 'package:test_sa/views/widgets/dialogs/confirm_dialog.dart';
@@ -418,17 +417,40 @@ class Utils {
// }
static void readNFc({required Function(String) onRead}) {
- NfcManager.instance.startSession(onDiscovered: (NfcTag tag) async {
- MifareUltralight f;
- if (Platform.isAndroid) {
- f = MifareUltralight(tag: tag, identifier: tag.data["nfca"]["identifier"], type: 2, maxTransceiveLength: 252, timeout: 22);
- } else {
- f = MifareUltralight(tag: tag, identifier: tag.data["mifare"]["identifier"], type: 2, maxTransceiveLength: 252, timeout: 22);
+ NfcManager.instance.startSession(
+ onDiscovered: (NfcTag tag) async {
+ String identifier = '';
+
+ try {
+ final dynamic tagDynamic = tag;
+ final Map tagData = Map.from(tagDynamic.data as Map);
+
+ if (Platform.isAndroid) {
+ if (tagData.containsKey('nfca')) {
+ final nfcaData = tagData['nfca'] as Map;
+ if (nfcaData.containsKey('identifier')) {
+ final List idBytes = List.from(nfcaData['identifier'] as List);
+ identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+ }
+ }
+ } else {
+ if (tagData.containsKey('mifare')) {
+ final mifareData = tagData['mifare'] as Map;
+ if (mifareData.containsKey('identifier')) {
+ final List idBytes = List.from(mifareData['identifier'] as List);
+ identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+ }
+ }
+ }
+ } catch (e) {
+ print('Error reading NFC: $e');
}
- String identifier = f.identifier.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+
NfcManager.instance.stopSession();
onRead(identifier);
- }).catchError((err) {
+ },
+ pollingOptions: {NfcPollingOption.iso14443},
+ ).catchError((err) {
print(err);
});
}
diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart
new file mode 100644
index 00000000..1001219e
--- /dev/null
+++ b/lib/l10n/app_localizations.dart
@@ -0,0 +1,3481 @@
+import 'dart:async';
+
+import 'package:flutter/foundation.dart';
+import 'package:flutter/widgets.dart';
+import 'package:flutter_localizations/flutter_localizations.dart';
+import 'package:intl/intl.dart' as intl;
+
+import 'app_localizations_ar.dart';
+import 'app_localizations_en.dart';
+
+// ignore_for_file: type=lint
+
+/// Callers can lookup localized strings with an instance of AppLocalizations
+/// returned by `AppLocalizations.of(context)`.
+///
+/// Applications need to include `AppLocalizations.delegate()` in their app's
+/// `localizationDelegates` list, and the locales they support in the app's
+/// `supportedLocales` list. For example:
+///
+/// ```dart
+/// import 'l10n/app_localizations.dart';
+///
+/// return MaterialApp(
+/// localizationsDelegates: AppLocalizations.localizationsDelegates,
+/// supportedLocales: AppLocalizations.supportedLocales,
+/// home: MyApplicationHome(),
+/// );
+/// ```
+///
+/// ## Update pubspec.yaml
+///
+/// Please make sure to update your pubspec.yaml to include the following
+/// packages:
+///
+/// ```yaml
+/// dependencies:
+/// # Internationalization support.
+/// flutter_localizations:
+/// sdk: flutter
+/// intl: any # Use the pinned version from flutter_localizations
+///
+/// # Rest of dependencies
+/// ```
+///
+/// ## iOS Applications
+///
+/// iOS applications define key application metadata, including supported
+/// locales, in an Info.plist file that is built into the application bundle.
+/// To configure the locales supported by your app, you’ll need to edit this
+/// file.
+///
+/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file.
+/// Then, in the Project Navigator, open the Info.plist file under the Runner
+/// project’s Runner folder.
+///
+/// Next, select the Information Property List item, select Add Item from the
+/// Editor menu, then select Localizations from the pop-up menu.
+///
+/// Select and expand the newly-created Localizations item then, for each
+/// locale your application supports, add a new item and select the locale
+/// you wish to add from the pop-up menu in the Value field. This list should
+/// be consistent with the languages listed in the AppLocalizations.supportedLocales
+/// property.
+abstract class AppLocalizations {
+ AppLocalizations(String locale)
+ : localeName = intl.Intl.canonicalizedLocale(locale.toString());
+
+ final String localeName;
+
+ static AppLocalizations? of(BuildContext context) {
+ return Localizations.of(context, AppLocalizations);
+ }
+
+ static const LocalizationsDelegate delegate =
+ _AppLocalizationsDelegate();
+
+ /// A list of this localizations delegate along with the default localizations
+ /// delegates.
+ ///
+ /// Returns a list of localizations delegates containing this delegate along with
+ /// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
+ /// and GlobalWidgetsLocalizations.delegate.
+ ///
+ /// Additional delegates can be added by appending to this list in
+ /// MaterialApp. This list does not have to be used at all if a custom list
+ /// of delegates is preferred or required.
+ static const List> localizationsDelegates =
+ >[
+ delegate,
+ GlobalMaterialLocalizations.delegate,
+ GlobalCupertinoLocalizations.delegate,
+ GlobalWidgetsLocalizations.delegate,
+ ];
+
+ /// A list of this localizations delegate's supported locales.
+ static const List supportedLocales = [
+ Locale('ar'),
+ Locale('en')
+ ];
+
+ /// No description provided for @serverErrorMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'Currently, Service not available'**
+ String get serverErrorMessage;
+
+ /// No description provided for @failedRequestMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'Failed to complete request'**
+ String get failedRequestMessage;
+
+ /// No description provided for @successfulRequestMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'Request complete successfully'**
+ String get successfulRequestMessage;
+
+ /// No description provided for @commentAdded.
+ ///
+ /// In en, this message translates to:
+ /// **'Comment Added'**
+ String get commentAdded;
+
+ /// No description provided for @requestLockMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'Wait until your request complete'**
+ String get requestLockMessage;
+
+ /// No description provided for @cancel.
+ ///
+ /// In en, this message translates to:
+ /// **'Cancel'**
+ String get cancel;
+
+ /// No description provided for @confirm.
+ ///
+ /// In en, this message translates to:
+ /// **'Confirm'**
+ String get confirm;
+
+ /// No description provided for @notArrived.
+ ///
+ /// In en, this message translates to:
+ /// **'Not Arrived'**
+ String get notArrived;
+
+ /// No description provided for @arrived.
+ ///
+ /// In en, this message translates to:
+ /// **'Arrived'**
+ String get arrived;
+
+ /// No description provided for @done.
+ ///
+ /// In en, this message translates to:
+ /// **'Done'**
+ String get done;
+
+ /// No description provided for @exit.
+ ///
+ /// In en, this message translates to:
+ /// **'Exit'**
+ String get exit;
+
+ /// No description provided for @refreshQrCode.
+ ///
+ /// In en, this message translates to:
+ /// **'Refresh QR Code'**
+ String get refreshQrCode;
+
+ /// No description provided for @exitAlert.
+ ///
+ /// In en, this message translates to:
+ /// **'Are you sure you want to exit?'**
+ String get exitAlert;
+
+ /// No description provided for @assetRetiredPendingOpManagementApproval.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Retired. Pending OP Management Approval'**
+ String get assetRetiredPendingOpManagementApproval;
+
+ /// No description provided for @assetRetirementRequestSubmittedSuccessfully.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset retirement request submitted successfully'**
+ String get assetRetirementRequestSubmittedSuccessfully;
+
+ /// No description provided for @youMarkedThisIssueAsFixedWaitingForTheRequesterToConfirm.
+ ///
+ /// In en, this message translates to:
+ /// **'You marked this issue as fixed. Waiting for the requester to confirm'**
+ String get youMarkedThisIssueAsFixedWaitingForTheRequesterToConfirm;
+
+ /// No description provided for @signOut.
+ ///
+ /// In en, this message translates to:
+ /// **'Sign Out'**
+ String get signOut;
+
+ /// No description provided for @logoutAlert.
+ ///
+ /// In en, this message translates to:
+ /// **'Are you sure you want to Sign Out?'**
+ String get logoutAlert;
+
+ /// No description provided for @language.
+ ///
+ /// In en, this message translates to:
+ /// **'English'**
+ String get language;
+
+ /// No description provided for @name.
+ ///
+ /// In en, this message translates to:
+ /// **'Name'**
+ String get name;
+
+ /// No description provided for @email.
+ ///
+ /// In en, this message translates to:
+ /// **'Email'**
+ String get email;
+
+ /// No description provided for @retirementType.
+ ///
+ /// In en, this message translates to:
+ /// **'Retirement Type'**
+ String get retirementType;
+
+ /// No description provided for @assetSituation.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Situation'**
+ String get assetSituation;
+
+ /// No description provided for @phoneNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'Phone Number'**
+ String get phoneNumber;
+
+ /// No description provided for @password.
+ ///
+ /// In en, this message translates to:
+ /// **'Password'**
+ String get password;
+
+ /// No description provided for @confirmPassword.
+ ///
+ /// In en, this message translates to:
+ /// **'Confirm Password'**
+ String get confirmPassword;
+
+ /// No description provided for @skipForLater.
+ ///
+ /// In en, this message translates to:
+ /// **'Skip For Later'**
+ String get skipForLater;
+
+ /// No description provided for @signIn.
+ ///
+ /// In en, this message translates to:
+ /// **'Sign In'**
+ String get signIn;
+
+ /// No description provided for @letSignInToAccount.
+ ///
+ /// In en, this message translates to:
+ /// **'Let’s sign in to your account'**
+ String get letSignInToAccount;
+
+ /// No description provided for @signUp.
+ ///
+ /// In en, this message translates to:
+ /// **'Sign Up'**
+ String get signUp;
+
+ /// No description provided for @accept.
+ ///
+ /// In en, this message translates to:
+ /// **'Accept'**
+ String get accept;
+
+ /// No description provided for @reject.
+ ///
+ /// In en, this message translates to:
+ /// **'Reject'**
+ String get reject;
+
+ /// No description provided for @forgetPassword.
+ ///
+ /// In en, this message translates to:
+ /// **'Forget Password'**
+ String get forgetPassword;
+
+ /// No description provided for @acceptTermsAndConditions.
+ ///
+ /// In en, this message translates to:
+ /// **'Accept Terms And Conditions'**
+ String get acceptTermsAndConditions;
+
+ /// No description provided for @emailValidateMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'Not valid email'**
+ String get emailValidateMessage;
+
+ /// No description provided for @nameValidateMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'name is required'**
+ String get nameValidateMessage;
+
+ /// No description provided for @passwordValidateMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'at least 6 characters or numbers'**
+ String get passwordValidateMessage;
+
+ /// No description provided for @confirmPasswordValidateMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'Password and confirm password not match'**
+ String get confirmPasswordValidateMessage;
+
+ /// No description provided for @phoneNumberValidateMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'Not valid phone number'**
+ String get phoneNumberValidateMessage;
+
+ /// No description provided for @termsAndConditionsValidateMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'Accept terms and conditions is required'**
+ String get termsAndConditionsValidateMessage;
+
+ /// No description provided for @update.
+ ///
+ /// In en, this message translates to:
+ /// **'Update'**
+ String get update;
+
+ /// No description provided for @step.
+ ///
+ /// In en, this message translates to:
+ /// **'Step'**
+ String get step;
+
+ /// No description provided for @forgetPasswordWithMark.
+ ///
+ /// In en, this message translates to:
+ /// **'Forget Password?'**
+ String get forgetPasswordWithMark;
+
+ /// No description provided for @showPassword.
+ ///
+ /// In en, this message translates to:
+ /// **'show password'**
+ String get showPassword;
+
+ /// No description provided for @wrongEmailOrPassword.
+ ///
+ /// In en, this message translates to:
+ /// **'Wrong email or password'**
+ String get wrongEmailOrPassword;
+
+ /// No description provided for @emailExist.
+ ///
+ /// In en, this message translates to:
+ /// **'Email exist'**
+ String get emailExist;
+
+ /// No description provided for @phoneNumberExist.
+ ///
+ /// In en, this message translates to:
+ /// **'Phone number exist'**
+ String get phoneNumberExist;
+
+ /// No description provided for @next.
+ ///
+ /// In en, this message translates to:
+ /// **'Next'**
+ String get next;
+
+ /// No description provided for @back.
+ ///
+ /// In en, this message translates to:
+ /// **'Back'**
+ String get back;
+
+ /// No description provided for @search.
+ ///
+ /// In en, this message translates to:
+ /// **'Search'**
+ String get search;
+
+ /// No description provided for @searchByName.
+ ///
+ /// In en, this message translates to:
+ /// **'Search by name'**
+ String get searchByName;
+
+ /// No description provided for @searchByAssetNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'Search by asset number'**
+ String get searchByAssetNumber;
+
+ /// No description provided for @address.
+ ///
+ /// In en, this message translates to:
+ /// **'Address'**
+ String get address;
+
+ /// No description provided for @addressNotFound.
+ ///
+ /// In en, this message translates to:
+ /// **'Address not found'**
+ String get addressNotFound;
+
+ /// No description provided for @addressValidateMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'Address validateMessage'**
+ String get addressValidateMessage;
+
+ /// No description provided for @dataNotFound.
+ ///
+ /// In en, this message translates to:
+ /// **'Data not found'**
+ String get dataNotFound;
+
+ /// No description provided for @description.
+ ///
+ /// In en, this message translates to:
+ /// **'Description'**
+ String get description;
+
+ /// No description provided for @descriptionNotFound.
+ ///
+ /// In en, this message translates to:
+ /// **'Description not found'**
+ String get descriptionNotFound;
+
+ /// No description provided for @descriptionValidateMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'Description can\'t be empty'**
+ String get descriptionValidateMessage;
+
+ /// No description provided for @edit.
+ ///
+ /// In en, this message translates to:
+ /// **'Edit'**
+ String get edit;
+
+ /// No description provided for @emailNotFound.
+ ///
+ /// In en, this message translates to:
+ /// **'Email not found'**
+ String get emailNotFound;
+
+ /// No description provided for @from.
+ ///
+ /// In en, this message translates to:
+ /// **'From'**
+ String get from;
+
+ /// No description provided for @endDateTimeMustBeGreaterThanStartDate.
+ ///
+ /// In en, this message translates to:
+ /// **'End Date time must be greater than start date'**
+ String get endDateTimeMustBeGreaterThanStartDate;
+
+ /// No description provided for @signaturesAreRequired.
+ ///
+ /// In en, this message translates to:
+ /// **'Signatures are required'**
+ String get signaturesAreRequired;
+
+ /// No description provided for @to.
+ ///
+ /// In en, this message translates to:
+ /// **'To'**
+ String get to;
+
+ /// No description provided for @linkNotFound.
+ ///
+ /// In en, this message translates to:
+ /// **'Link not found'**
+ String get linkNotFound;
+
+ /// No description provided for @nameNotFound.
+ ///
+ /// In en, this message translates to:
+ /// **'Name not found'**
+ String get nameNotFound;
+
+ /// No description provided for @phoneNumberNotFound.
+ ///
+ /// In en, this message translates to:
+ /// **'Phone number not found'**
+ String get phoneNumberNotFound;
+
+ /// No description provided for @title.
+ ///
+ /// In en, this message translates to:
+ /// **'Title'**
+ String get title;
+
+ /// No description provided for @titleNotFound.
+ ///
+ /// In en, this message translates to:
+ /// **'Title not found'**
+ String get titleNotFound;
+
+ /// No description provided for @titleValidateMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'Title Can\'t be empty'**
+ String get titleValidateMessage;
+
+ /// No description provided for @urlNotFound.
+ ///
+ /// In en, this message translates to:
+ /// **'URL not found'**
+ String get urlNotFound;
+
+ /// No description provided for @date.
+ ///
+ /// In en, this message translates to:
+ /// **'Date'**
+ String get date;
+
+ /// No description provided for @status.
+ ///
+ /// In en, this message translates to:
+ /// **'Status'**
+ String get status;
+
+ /// No description provided for @code.
+ ///
+ /// In en, this message translates to:
+ /// **'Code'**
+ String get code;
+
+ /// No description provided for @serialNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'Serial Number'**
+ String get serialNumber;
+
+ /// No description provided for @add.
+ ///
+ /// In en, this message translates to:
+ /// **'Add'**
+ String get add;
+
+ /// No description provided for @brand.
+ ///
+ /// In en, this message translates to:
+ /// **'manufacture'**
+ String get brand;
+
+ /// No description provided for @clearSearch.
+ ///
+ /// In en, this message translates to:
+ /// **'Clear Search'**
+ String get clearSearch;
+
+ /// No description provided for @closed.
+ ///
+ /// In en, this message translates to:
+ /// **'Closed'**
+ String get closed;
+
+ /// No description provided for @close.
+ ///
+ /// In en, this message translates to:
+ /// **'Close'**
+ String get close;
+
+ /// No description provided for @scanOrPickAsset.
+ ///
+ /// In en, this message translates to:
+ /// **'Scan or Pick Asset'**
+ String get scanOrPickAsset;
+
+ /// No description provided for @reScanOrPickAsset.
+ ///
+ /// In en, this message translates to:
+ /// **'Re-Scan or Pick Asset'**
+ String get reScanOrPickAsset;
+
+ /// No description provided for @camera.
+ ///
+ /// In en, this message translates to:
+ /// **'Camera'**
+ String get camera;
+
+ /// No description provided for @gallery.
+ ///
+ /// In en, this message translates to:
+ /// **'Gallery'**
+ String get gallery;
+
+ /// No description provided for @files.
+ ///
+ /// In en, this message translates to:
+ /// **'Files'**
+ String get files;
+
+ /// No description provided for @attachFiles.
+ ///
+ /// In en, this message translates to:
+ /// **'Attach Files'**
+ String get attachFiles;
+
+ /// No description provided for @activityStatus.
+ ///
+ /// In en, this message translates to:
+ /// **'Activity Status'**
+ String get activityStatus;
+
+ /// No description provided for @takeAction.
+ ///
+ /// In en, this message translates to:
+ /// **'Take Action'**
+ String get takeAction;
+
+ /// No description provided for @pleaseConfirmTheIssueHasBeenResolved.
+ ///
+ /// In en, this message translates to:
+ /// **'Please confirm the issue has been resolved'**
+ String get pleaseConfirmTheIssueHasBeenResolved;
+
+ /// No description provided for @nurseAcknowledge.
+ ///
+ /// In en, this message translates to:
+ /// **'I acknowledge the completion of this work order'**
+ String get nurseAcknowledge;
+
+ /// No description provided for @hours.
+ ///
+ /// In en, this message translates to:
+ /// **'Hours'**
+ String get hours;
+
+ /// No description provided for @internal.
+ ///
+ /// In en, this message translates to:
+ /// **'Internal'**
+ String get internal;
+
+ /// No description provided for @external.
+ ///
+ /// In en, this message translates to:
+ /// **'External'**
+ String get external;
+
+ /// No description provided for @addInternalActivity.
+ ///
+ /// In en, this message translates to:
+ /// **'Add Internal Activity'**
+ String get addInternalActivity;
+
+ /// No description provided for @addExternalActivity.
+ ///
+ /// In en, this message translates to:
+ /// **'Add External Activity'**
+ String get addExternalActivity;
+
+ /// No description provided for @remotely.
+ ///
+ /// In en, this message translates to:
+ /// **'Remotely'**
+ String get remotely;
+
+ /// No description provided for @workshop.
+ ///
+ /// In en, this message translates to:
+ /// **'Workshop'**
+ String get workshop;
+
+ /// No description provided for @abroad.
+ ///
+ /// In en, this message translates to:
+ /// **'Abroad'**
+ String get abroad;
+
+ /// No description provided for @create.
+ ///
+ /// In en, this message translates to:
+ /// **'Create'**
+ String get create;
+
+ /// No description provided for @createServiceRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Create Service Request'**
+ String get createServiceRequest;
+
+ /// No description provided for @delete.
+ ///
+ /// In en, this message translates to:
+ /// **'Delete'**
+ String get delete;
+
+ /// No description provided for @details.
+ ///
+ /// In en, this message translates to:
+ /// **'Details'**
+ String get details;
+
+ /// No description provided for @device.
+ ///
+ /// In en, this message translates to:
+ /// **'Device'**
+ String get device;
+
+ /// No description provided for @deviceArName.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Ar Name'**
+ String get deviceArName;
+
+ /// No description provided for @sparePartDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Spare Part Details'**
+ String get sparePartDetails;
+
+ /// No description provided for @attachQuotation.
+ ///
+ /// In en, this message translates to:
+ /// **'Attach Quotation'**
+ String get attachQuotation;
+
+ /// No description provided for @addSparePartActivity.
+ ///
+ /// In en, this message translates to:
+ /// **'Add Spare Part Activity'**
+ String get addSparePartActivity;
+
+ /// No description provided for @addActivity.
+ ///
+ /// In en, this message translates to:
+ /// **'Add Activity'**
+ String get addActivity;
+
+ /// No description provided for @updateSparePartActivity.
+ ///
+ /// In en, this message translates to:
+ /// **'Update Spare Part Activity'**
+ String get updateSparePartActivity;
+
+ /// No description provided for @deviceName.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Name'**
+ String get deviceName;
+
+ /// No description provided for @deviceImages.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Images'**
+ String get deviceImages;
+
+ /// No description provided for @deviceModel.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Model'**
+ String get deviceModel;
+
+ /// No description provided for @doYouWantToCreateAnotherSparePartRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Do you want to create another spare part request?'**
+ String get doYouWantToCreateAnotherSparePartRequest;
+
+ /// No description provided for @sparePartActivitySuccess.
+ ///
+ /// In en, this message translates to:
+ /// **'Spare Part Request activity has been created successfully'**
+ String get sparePartActivitySuccess;
+
+ /// No description provided for @deviceRequired.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Required'**
+ String get deviceRequired;
+
+ /// No description provided for @deviceSN.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Serial Number'**
+ String get deviceSN;
+
+ /// No description provided for @engineerName.
+ ///
+ /// In en, this message translates to:
+ /// **'Engineer Name'**
+ String get engineerName;
+
+ /// No description provided for @engineerPhone.
+ ///
+ /// In en, this message translates to:
+ /// **'Engineer Phone'**
+ String get engineerPhone;
+
+ /// No description provided for @facebook.
+ ///
+ /// In en, this message translates to:
+ /// **'facebook'**
+ String get facebook;
+
+ /// No description provided for @faultDescription.
+ ///
+ /// In en, this message translates to:
+ /// **'Fault Description'**
+ String get faultDescription;
+
+ /// No description provided for @general.
+ ///
+ /// In en, this message translates to:
+ /// **'General'**
+ String get general;
+
+ /// No description provided for @hospital.
+ ///
+ /// In en, this message translates to:
+ /// **'Site'**
+ String get hospital;
+
+ /// No description provided for @hospitalRequired.
+ ///
+ /// In en, this message translates to:
+ /// **'Site Required'**
+ String get hospitalRequired;
+
+ /// No description provided for @hotLine.
+ ///
+ /// In en, this message translates to:
+ /// **'Hot Line'**
+ String get hotLine;
+
+ /// No description provided for @jobSheetNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'Job Sheet Number'**
+ String get jobSheetNumber;
+
+ /// No description provided for @linkedIn.
+ ///
+ /// In en, this message translates to:
+ /// **'linkedIn'**
+ String get linkedIn;
+
+ /// No description provided for @maintenanceIssue.
+ ///
+ /// In en, this message translates to:
+ /// **'Maintenance Issue'**
+ String get maintenanceIssue;
+
+ /// No description provided for @maintenanceIssueRequired.
+ ///
+ /// In en, this message translates to:
+ /// **'maintenance Issue Required'**
+ String get maintenanceIssueRequired;
+
+ /// No description provided for @maxImagesNumberIs5.
+ ///
+ /// In en, this message translates to:
+ /// **'Maximum Images Number Is 5'**
+ String get maxImagesNumberIs5;
+
+ /// No description provided for @model.
+ ///
+ /// In en, this message translates to:
+ /// **'Model'**
+ String get model;
+
+ /// No description provided for @modelNo.
+ ///
+ /// In en, this message translates to:
+ /// **'Model No.'**
+ String get modelNo;
+
+ /// No description provided for @modelName.
+ ///
+ /// In en, this message translates to:
+ /// **'Model Name'**
+ String get modelName;
+
+ /// No description provided for @nameExist.
+ ///
+ /// In en, this message translates to:
+ /// **'Name Exist'**
+ String get nameExist;
+
+ /// No description provided for @newServiceRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'New Service Request'**
+ String get newServiceRequest;
+
+ /// No description provided for @newWord.
+ ///
+ /// In en, this message translates to:
+ /// **'New'**
+ String get newWord;
+
+ /// No description provided for @noDateFound.
+ ///
+ /// In en, this message translates to:
+ /// **'No Date Found'**
+ String get noDateFound;
+
+ /// No description provided for @noDeviceFound.
+ ///
+ /// In en, this message translates to:
+ /// **'No Asset Found'**
+ String get noDeviceFound;
+
+ /// No description provided for @noHospitalFound.
+ ///
+ /// In en, this message translates to:
+ /// **'No Site Found'**
+ String get noHospitalFound;
+
+ /// No description provided for @noModelFound.
+ ///
+ /// In en, this message translates to:
+ /// **'No Model Found'**
+ String get noModelFound;
+
+ /// No description provided for @noServiceRequestFound.
+ ///
+ /// In en, this message translates to:
+ /// **'No Service Request Found'**
+ String get noServiceRequestFound;
+
+ /// No description provided for @noSnFound.
+ ///
+ /// In en, this message translates to:
+ /// **'No SN Found'**
+ String get noSnFound;
+
+ /// No description provided for @notifications.
+ ///
+ /// In en, this message translates to:
+ /// **'Notifications'**
+ String get notifications;
+
+ /// No description provided for @notificationsNotFound.
+ ///
+ /// In en, this message translates to:
+ /// **'Notifications Not Found'**
+ String get notificationsNotFound;
+
+ /// No description provided for @noUniteFound.
+ ///
+ /// In en, this message translates to:
+ /// **'No Unit Found'**
+ String get noUniteFound;
+
+ /// No description provided for @ourWebsite.
+ ///
+ /// In en, this message translates to:
+ /// **'Our Website'**
+ String get ourWebsite;
+
+ /// No description provided for @pickDevice.
+ ///
+ /// In en, this message translates to:
+ /// **'Pick Asset'**
+ String get pickDevice;
+
+ /// No description provided for @pickHospital.
+ ///
+ /// In en, this message translates to:
+ /// **'Pick Site'**
+ String get pickHospital;
+
+ /// No description provided for @pickUnite.
+ ///
+ /// In en, this message translates to:
+ /// **'Pick Unit'**
+ String get pickUnite;
+
+ /// No description provided for @policy.
+ ///
+ /// In en, this message translates to:
+ /// **'Policy'**
+ String get policy;
+
+ /// No description provided for @fixed.
+ ///
+ /// In en, this message translates to:
+ /// **'Fixed'**
+ String get fixed;
+
+ /// No description provided for @reason1.
+ ///
+ /// In en, this message translates to:
+ /// **'The engineer didn\'t confirm visit date with 2 hours from the request time'**
+ String get reason1;
+
+ /// No description provided for @reason2.
+ ///
+ /// In en, this message translates to:
+ /// **'The engineer change the visit date without coordination with me'**
+ String get reason2;
+
+ /// No description provided for @reason3.
+ ///
+ /// In en, this message translates to:
+ /// **'the engineer didn\'t attend on date/time'**
+ String get reason3;
+
+ /// No description provided for @reason4.
+ ///
+ /// In en, this message translates to:
+ /// **'I can\'t reach engineer by phone or SMS'**
+ String get reason4;
+
+ /// No description provided for @reason5.
+ ///
+ /// In en, this message translates to:
+ /// **'There is delay ib bringing the spare parts'**
+ String get reason5;
+
+ /// No description provided for @repaired.
+ ///
+ /// In en, this message translates to:
+ /// **'Repaired'**
+ String get repaired;
+
+ /// No description provided for @repeated.
+ ///
+ /// In en, this message translates to:
+ /// **'Repeated'**
+ String get repeated;
+
+ /// No description provided for @reportIssue.
+ ///
+ /// In en, this message translates to:
+ /// **'Report a Issue'**
+ String get reportIssue;
+
+ /// No description provided for @requestInformation.
+ ///
+ /// In en, this message translates to:
+ /// **'request Information'**
+ String get requestInformation;
+
+ /// No description provided for @searchBySn.
+ ///
+ /// In en, this message translates to:
+ /// **'Search By Sn'**
+ String get searchBySn;
+
+ /// No description provided for @serviceRequestInformation.
+ ///
+ /// In en, this message translates to:
+ /// **'Service Request Information'**
+ String get serviceRequestInformation;
+
+ /// No description provided for @serviceRequests.
+ ///
+ /// In en, this message translates to:
+ /// **'Service Requests'**
+ String get serviceRequests;
+
+ /// No description provided for @correctiveMaintenance.
+ ///
+ /// In en, this message translates to:
+ /// **'Corrective Maintenance'**
+ String get correctiveMaintenance;
+
+ /// No description provided for @shareAntherIssue.
+ ///
+ /// In en, this message translates to:
+ /// **'share Another Issue'**
+ String get shareAntherIssue;
+
+ /// No description provided for @shareApp.
+ ///
+ /// In en, this message translates to:
+ /// **'Share App'**
+ String get shareApp;
+
+ /// No description provided for @sn.
+ ///
+ /// In en, this message translates to:
+ /// **'SN'**
+ String get sn;
+
+ /// No description provided for @submit.
+ ///
+ /// In en, this message translates to:
+ /// **'Submit'**
+ String get submit;
+
+ /// No description provided for @trackServiceRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Track Service Requests'**
+ String get trackServiceRequest;
+
+ /// No description provided for @twitter.
+ ///
+ /// In en, this message translates to:
+ /// **'Twitter'**
+ String get twitter;
+
+ /// No description provided for @underRepair.
+ ///
+ /// In en, this message translates to:
+ /// **'Under Repair'**
+ String get underRepair;
+
+ /// No description provided for @unite.
+ ///
+ /// In en, this message translates to:
+ /// **'Unit'**
+ String get unite;
+
+ /// No description provided for @uniteRequired.
+ ///
+ /// In en, this message translates to:
+ /// **'Unit Required'**
+ String get uniteRequired;
+
+ /// No description provided for @visitDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Visit Date'**
+ String get visitDate;
+
+ /// No description provided for @returnToService.
+ ///
+ /// In en, this message translates to:
+ /// **'Return to service'**
+ String get returnToService;
+
+ /// No description provided for @whatsApp.
+ ///
+ /// In en, this message translates to:
+ /// **'WhatsApp'**
+ String get whatsApp;
+
+ /// No description provided for @workPerformed.
+ ///
+ /// In en, this message translates to:
+ /// **'Work Performed'**
+ String get workPerformed;
+
+ /// No description provided for @actualDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Actual Date'**
+ String get actualDate;
+
+ /// No description provided for @expectDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Expect Date'**
+ String get expectDate;
+
+ /// No description provided for @images.
+ ///
+ /// In en, this message translates to:
+ /// **'Images'**
+ String get images;
+
+ /// No description provided for @imagesRequired.
+ ///
+ /// In en, this message translates to:
+ /// **'Images Required'**
+ String get imagesRequired;
+
+ /// No description provided for @noSerialNumberFound.
+ ///
+ /// In en, this message translates to:
+ /// **'No Serial Number Found'**
+ String get noSerialNumberFound;
+
+ /// No description provided for @notYet.
+ ///
+ /// In en, this message translates to:
+ /// **'Not Yet'**
+ String get notYet;
+
+ /// No description provided for @noVisitsFound.
+ ///
+ /// In en, this message translates to:
+ /// **'No Visits Found'**
+ String get noVisitsFound;
+
+ /// No description provided for @onHold.
+ ///
+ /// In en, this message translates to:
+ /// **'On Hold'**
+ String get onHold;
+
+ /// No description provided for @pickFromCamera.
+ ///
+ /// In en, this message translates to:
+ /// **'Pick From Camera'**
+ String get pickFromCamera;
+
+ /// No description provided for @pickFromGallery.
+ ///
+ /// In en, this message translates to:
+ /// **'Pick From Gallery'**
+ String get pickFromGallery;
+
+ /// No description provided for @preventiveMaintenance.
+ ///
+ /// In en, this message translates to:
+ /// **'Preventive Maintenance'**
+ String get preventiveMaintenance;
+
+ /// No description provided for @preventiveMaintenanceUpdatedSuccessfully.
+ ///
+ /// In en, this message translates to:
+ /// **'Preventive Maintenance Updated Successfully'**
+ String get preventiveMaintenanceUpdatedSuccessfully;
+
+ /// No description provided for @regularVisits.
+ ///
+ /// In en, this message translates to:
+ /// **'Regular Visits'**
+ String get regularVisits;
+
+ /// No description provided for @regularVisitsUpdatedSuccessfully.
+ ///
+ /// In en, this message translates to:
+ /// **'Regular Visits Updated Successfully'**
+ String get regularVisitsUpdatedSuccessfully;
+
+ /// No description provided for @requiredStatus.
+ ///
+ /// In en, this message translates to:
+ /// **'Required Status'**
+ String get requiredStatus;
+
+ /// No description provided for @updatePreventiveMaintenance.
+ ///
+ /// In en, this message translates to:
+ /// **'Update Preventive Maintenance'**
+ String get updatePreventiveMaintenance;
+
+ /// No description provided for @updateRegularVisits.
+ ///
+ /// In en, this message translates to:
+ /// **'Update Regular Visits'**
+ String get updateRegularVisits;
+
+ /// No description provided for @updateVisitsGroup.
+ ///
+ /// In en, this message translates to:
+ /// **'Update Visits Group'**
+ String get updateVisitsGroup;
+
+ /// No description provided for @updatingDots.
+ ///
+ /// In en, this message translates to:
+ /// **'Updating ...'**
+ String get updatingDots;
+
+ /// No description provided for @expectedVisitDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Next Visit Date'**
+ String get expectedVisitDate;
+
+ /// No description provided for @actualVisitDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Actual Visit Date'**
+ String get actualVisitDate;
+
+ /// No description provided for @visitInformation.
+ ///
+ /// In en, this message translates to:
+ /// **'Visit Information'**
+ String get visitInformation;
+
+ /// No description provided for @travelingHours.
+ ///
+ /// In en, this message translates to:
+ /// **'Traveling Hours'**
+ String get travelingHours;
+
+ /// No description provided for @workingHours.
+ ///
+ /// In en, this message translates to:
+ /// **'Working Hours'**
+ String get workingHours;
+
+ /// No description provided for @contactStatus.
+ ///
+ /// In en, this message translates to:
+ /// **'Assigned To'**
+ String get contactStatus;
+
+ /// No description provided for @image.
+ ///
+ /// In en, this message translates to:
+ /// **'Image'**
+ String get image;
+
+ /// No description provided for @pickImage.
+ ///
+ /// In en, this message translates to:
+ /// **'Pick Image'**
+ String get pickImage;
+
+ /// No description provided for @requiredImage.
+ ///
+ /// In en, this message translates to:
+ /// **'Image Required'**
+ String get requiredImage;
+
+ /// No description provided for @taskStatus.
+ ///
+ /// In en, this message translates to:
+ /// **'Task Status'**
+ String get taskStatus;
+
+ /// No description provided for @activationAlert.
+ ///
+ /// In en, this message translates to:
+ /// **'Account under reviewing please wait until be activated'**
+ String get activationAlert;
+
+ /// No description provided for @attachImage.
+ ///
+ /// In en, this message translates to:
+ /// **'Attach Image'**
+ String get attachImage;
+
+ /// No description provided for @callLastSituation.
+ ///
+ /// In en, this message translates to:
+ /// **'Call\'s Last Situation'**
+ String get callLastSituation;
+
+ /// No description provided for @customer.
+ ///
+ /// In en, this message translates to:
+ /// **'Customer'**
+ String get customer;
+
+ /// No description provided for @editServiceReport.
+ ///
+ /// In en, this message translates to:
+ /// **'Edit Work Order'**
+ String get editServiceReport;
+
+ /// No description provided for @invoiceCode.
+ ///
+ /// In en, this message translates to:
+ /// **'Invoice Code'**
+ String get invoiceCode;
+
+ /// No description provided for @invoiceNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'Invoice Number'**
+ String get invoiceNumber;
+
+ /// No description provided for @newServiceReport.
+ ///
+ /// In en, this message translates to:
+ /// **'New Work Order'**
+ String get newServiceReport;
+
+ /// No description provided for @number.
+ ///
+ /// In en, this message translates to:
+ /// **'Number'**
+ String get number;
+
+ /// No description provided for @operatingHours.
+ ///
+ /// In en, this message translates to:
+ /// **'Operating Hours'**
+ String get operatingHours;
+
+ /// No description provided for @partName.
+ ///
+ /// In en, this message translates to:
+ /// **'Part Name'**
+ String get partName;
+
+ /// No description provided for @quantity.
+ ///
+ /// In en, this message translates to:
+ /// **'Quantity'**
+ String get quantity;
+
+ /// No description provided for @installedQty.
+ ///
+ /// In en, this message translates to:
+ /// **'Installed Quantity'**
+ String get installedQty;
+
+ /// No description provided for @returnQty.
+ ///
+ /// In en, this message translates to:
+ /// **'Return Quantity'**
+ String get returnQty;
+
+ /// No description provided for @oracleNo.
+ ///
+ /// In en, this message translates to:
+ /// **'Oracle No.'**
+ String get oracleNo;
+
+ /// No description provided for @reasons.
+ ///
+ /// In en, this message translates to:
+ /// **'Reasons'**
+ String get reasons;
+
+ /// No description provided for @addSparePartActionHeading.
+ ///
+ /// In en, this message translates to:
+ /// **'Do you want to create another spare part request?'**
+ String get addSparePartActionHeading;
+
+ /// No description provided for @reason.
+ ///
+ /// In en, this message translates to:
+ /// **'Reason'**
+ String get reason;
+
+ /// No description provided for @reportStatus.
+ ///
+ /// In en, this message translates to:
+ /// **'Report Status'**
+ String get reportStatus;
+
+ /// No description provided for @reportType.
+ ///
+ /// In en, this message translates to:
+ /// **'Report Type'**
+ String get reportType;
+
+ /// No description provided for @callId.
+ ///
+ /// In en, this message translates to:
+ /// **'Call Id'**
+ String get callId;
+
+ /// No description provided for @requiredWord.
+ ///
+ /// In en, this message translates to:
+ /// **'required'**
+ String get requiredWord;
+
+ /// No description provided for @assetType.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Type'**
+ String get assetType;
+
+ /// No description provided for @workPreformed.
+ ///
+ /// In en, this message translates to:
+ /// **'Work Preformed'**
+ String get workPreformed;
+
+ /// No description provided for @orderWorkNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'Order Work Number'**
+ String get orderWorkNumber;
+
+ /// No description provided for @assignedEmployee.
+ ///
+ /// In en, this message translates to:
+ /// **'Assigned Employee'**
+ String get assignedEmployee;
+
+ /// No description provided for @assetSN.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset S.N'**
+ String get assetSN;
+
+ /// No description provided for @assetName.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Name'**
+ String get assetName;
+
+ /// No description provided for @assetNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Number'**
+ String get assetNumber;
+
+ /// No description provided for @assetDetail.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Detail'**
+ String get assetDetail;
+
+ /// No description provided for @requestDetail.
+ ///
+ /// In en, this message translates to:
+ /// **'Request Details'**
+ String get requestDetail;
+
+ /// No description provided for @site.
+ ///
+ /// In en, this message translates to:
+ /// **'Site'**
+ String get site;
+
+ /// No description provided for @maintenanceSituation.
+ ///
+ /// In en, this message translates to:
+ /// **'Maintenance Situation'**
+ String get maintenanceSituation;
+
+ /// No description provided for @currentSituation.
+ ///
+ /// In en, this message translates to:
+ /// **'Current Situation'**
+ String get currentSituation;
+
+ /// No description provided for @alert.
+ ///
+ /// In en, this message translates to:
+ /// **'Alert'**
+ String get alert;
+
+ /// No description provided for @duplicateAlert.
+ ///
+ /// In en, this message translates to:
+ /// **'Duplicate Alert'**
+ String get duplicateAlert;
+
+ /// No description provided for @duplicateAlertMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'Are you sure you want to duplicate request?'**
+ String get duplicateAlertMessage;
+
+ /// No description provided for @duplicateRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Duplicate Request'**
+ String get duplicateRequest;
+
+ /// No description provided for @comment.
+ ///
+ /// In en, this message translates to:
+ /// **'Comment'**
+ String get comment;
+
+ /// No description provided for @updateServiceRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Update Service Request'**
+ String get updateServiceRequest;
+
+ /// No description provided for @repairLocation.
+ ///
+ /// In en, this message translates to:
+ /// **'Repair Location'**
+ String get repairLocation;
+
+ /// No description provided for @travelingExpense.
+ ///
+ /// In en, this message translates to:
+ /// **'Traveling Expense'**
+ String get travelingExpense;
+
+ /// No description provided for @startDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Start Date'**
+ String get startDate;
+
+ /// No description provided for @startTime.
+ ///
+ /// In en, this message translates to:
+ /// **'Start Time'**
+ String get startTime;
+
+ /// No description provided for @endTime.
+ ///
+ /// In en, this message translates to:
+ /// **'End Time'**
+ String get endTime;
+
+ /// No description provided for @no.
+ ///
+ /// In en, this message translates to:
+ /// **'No'**
+ String get no;
+
+ /// No description provided for @fillDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Please fill the below details'**
+ String get fillDetails;
+
+ /// No description provided for @yes.
+ ///
+ /// In en, this message translates to:
+ /// **'Yes'**
+ String get yes;
+
+ /// No description provided for @requestedQuantity.
+ ///
+ /// In en, this message translates to:
+ /// **'Requested Quantity'**
+ String get requestedQuantity;
+
+ /// No description provided for @deliveredQuantity.
+ ///
+ /// In en, this message translates to:
+ /// **'Delivered Quantity'**
+ String get deliveredQuantity;
+
+ /// No description provided for @endDate.
+ ///
+ /// In en, this message translates to:
+ /// **'End Date'**
+ String get endDate;
+
+ /// No description provided for @destinationSite.
+ ///
+ /// In en, this message translates to:
+ /// **'Destination Site'**
+ String get destinationSite;
+
+ /// No description provided for @building.
+ ///
+ /// In en, this message translates to:
+ /// **'Building'**
+ String get building;
+
+ /// No description provided for @floor.
+ ///
+ /// In en, this message translates to:
+ /// **'Floor'**
+ String get floor;
+
+ /// No description provided for @department.
+ ///
+ /// In en, this message translates to:
+ /// **'Department'**
+ String get department;
+
+ /// No description provided for @room.
+ ///
+ /// In en, this message translates to:
+ /// **'Room'**
+ String get room;
+
+ /// No description provided for @actions.
+ ///
+ /// In en, this message translates to:
+ /// **'Actions'**
+ String get actions;
+
+ /// No description provided for @deviceFiles.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Files'**
+ String get deviceFiles;
+
+ /// No description provided for @pickFromFiles.
+ ///
+ /// In en, this message translates to:
+ /// **'Pick From Files'**
+ String get pickFromFiles;
+
+ /// No description provided for @requiredFile.
+ ///
+ /// In en, this message translates to:
+ /// **'File Required'**
+ String get requiredFile;
+
+ /// No description provided for @pickFile.
+ ///
+ /// In en, this message translates to:
+ /// **'Pick File'**
+ String get pickFile;
+
+ /// No description provided for @login.
+ ///
+ /// In en, this message translates to:
+ /// **'Login'**
+ String get login;
+
+ /// No description provided for @enterCredsToLogin.
+ ///
+ /// In en, this message translates to:
+ /// **'Enter your credential to login'**
+ String get enterCredsToLogin;
+
+ /// No description provided for @signInToYour.
+ ///
+ /// In en, this message translates to:
+ /// **'Sign in to your'**
+ String get signInToYour;
+
+ /// No description provided for @account.
+ ///
+ /// In en, this message translates to:
+ /// **'account'**
+ String get account;
+
+ /// No description provided for @forgotPassword.
+ ///
+ /// In en, this message translates to:
+ /// **'Forgot Password?'**
+ String get forgotPassword;
+
+ /// No description provided for @username.
+ ///
+ /// In en, this message translates to:
+ /// **'Username'**
+ String get username;
+
+ /// No description provided for @requiredField.
+ ///
+ /// In en, this message translates to:
+ /// **'Required Field'**
+ String get requiredField;
+
+ /// No description provided for @passwordLengthMessage.
+ ///
+ /// In en, this message translates to:
+ /// **'Password must has at least 6 characters'**
+ String get passwordLengthMessage;
+
+ /// No description provided for @overview.
+ ///
+ /// In en, this message translates to:
+ /// **'Overview'**
+ String get overview;
+
+ /// No description provided for @request.
+ ///
+ /// In en, this message translates to:
+ /// **'Request'**
+ String get request;
+
+ /// No description provided for @assets.
+ ///
+ /// In en, this message translates to:
+ /// **'Assets'**
+ String get assets;
+
+ /// No description provided for @contact.
+ ///
+ /// In en, this message translates to:
+ /// **'Contact'**
+ String get contact;
+
+ /// No description provided for @welcome.
+ ///
+ /// In en, this message translates to:
+ /// **'Welcome,'**
+ String get welcome;
+
+ /// No description provided for @openWhatsapp.
+ ///
+ /// In en, this message translates to:
+ /// **'Open WhatsApp'**
+ String get openWhatsapp;
+
+ /// No description provided for @timeAndDuration.
+ ///
+ /// In en, this message translates to:
+ /// **'Time and Duration'**
+ String get timeAndDuration;
+
+ /// No description provided for @assetsCondition.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset’s Condition'**
+ String get assetsCondition;
+
+ /// No description provided for @attachmentsAcknowledge.
+ ///
+ /// In en, this message translates to:
+ /// **'Attachments & Acknowledge'**
+ String get attachmentsAcknowledge;
+
+ /// No description provided for @up_and_running.
+ ///
+ /// In en, this message translates to:
+ /// **'Up & Running'**
+ String get up_and_running;
+
+ /// No description provided for @partially_down.
+ ///
+ /// In en, this message translates to:
+ /// **'Partially Down'**
+ String get partially_down;
+
+ /// No description provided for @needAVisit.
+ ///
+ /// In en, this message translates to:
+ /// **'Need a Visit'**
+ String get needAVisit;
+
+ /// No description provided for @fixedRemotely.
+ ///
+ /// In en, this message translates to:
+ /// **'Fixed Remotely'**
+ String get fixedRemotely;
+
+ /// No description provided for @iHaveArrived.
+ ///
+ /// In en, this message translates to:
+ /// **'I have arrived'**
+ String get iHaveArrived;
+
+ /// No description provided for @updateAssetDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Update Asset Details'**
+ String get updateAssetDetails;
+
+ /// No description provided for @equipment_status.
+ ///
+ /// In en, this message translates to:
+ /// **'Equipment Status'**
+ String get equipment_status;
+
+ /// No description provided for @failureReason.
+ ///
+ /// In en, this message translates to:
+ /// **'Failure Reason'**
+ String get failureReason;
+
+ /// No description provided for @visitDateAndTime.
+ ///
+ /// In en, this message translates to:
+ /// **'Visit Date & Time'**
+ String get visitDateAndTime;
+
+ /// No description provided for @markAsFixed.
+ ///
+ /// In en, this message translates to:
+ /// **'Mark as Fixed'**
+ String get markAsFixed;
+
+ /// No description provided for @fully_down.
+ ///
+ /// In en, this message translates to:
+ /// **'Fully Down'**
+ String get fully_down;
+
+ /// No description provided for @solutions.
+ ///
+ /// In en, this message translates to:
+ /// **'Solutions'**
+ String get solutions;
+
+ /// No description provided for @callUs.
+ ///
+ /// In en, this message translates to:
+ /// **'Call Us'**
+ String get callUs;
+
+ /// No description provided for @liveChat.
+ ///
+ /// In en, this message translates to:
+ /// **'Live Chat'**
+ String get liveChat;
+
+ /// No description provided for @feedBack.
+ ///
+ /// In en, this message translates to:
+ /// **'Feedback'**
+ String get feedBack;
+
+ /// No description provided for @gasRefillRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Gas Refill Request'**
+ String get gasRefillRequest;
+
+ /// No description provided for @transferRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Transfer Request'**
+ String get transferRequest;
+
+ /// No description provided for @serviceRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Service Request'**
+ String get serviceRequest;
+
+ /// No description provided for @newGasRefillRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'New Gas Refill Request'**
+ String get newGasRefillRequest;
+
+ /// No description provided for @newTransferRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'New Transfer Request'**
+ String get newTransferRequest;
+
+ /// No description provided for @submitRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Submit Request'**
+ String get submitRequest;
+
+ /// No description provided for @select.
+ ///
+ /// In en, this message translates to:
+ /// **'Select'**
+ String get select;
+
+ /// No description provided for @gasType.
+ ///
+ /// In en, this message translates to:
+ /// **'Gas Type'**
+ String get gasType;
+
+ /// No description provided for @cylinderType.
+ ///
+ /// In en, this message translates to:
+ /// **'Cylinder Type'**
+ String get cylinderType;
+
+ /// No description provided for @cylinderSize.
+ ///
+ /// In en, this message translates to:
+ /// **'Cylinder Size'**
+ String get cylinderSize;
+
+ /// No description provided for @httpError.
+ ///
+ /// In en, this message translates to:
+ /// **'Error Request Failed'**
+ String get httpError;
+
+ /// No description provided for @tryAgain.
+ ///
+ /// In en, this message translates to:
+ /// **'Try Again'**
+ String get tryAgain;
+
+ /// No description provided for @onlyNumbers.
+ ///
+ /// In en, this message translates to:
+ /// **'Only Numbers Allowed'**
+ String get onlyNumbers;
+
+ /// No description provided for @youHaveToSelect.
+ ///
+ /// In en, this message translates to:
+ /// **'You have to select'**
+ String get youHaveToSelect;
+
+ /// No description provided for @youHaveToAddRequests.
+ ///
+ /// In en, this message translates to:
+ /// **'You have to add requests'**
+ String get youHaveToAddRequests;
+
+ /// No description provided for @createdSuccessfully.
+ ///
+ /// In en, this message translates to:
+ /// **'Created successfully'**
+ String get createdSuccessfully;
+
+ /// No description provided for @failedToCompleteRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Failed to complete request'**
+ String get failedToCompleteRequest;
+
+ /// No description provided for @assetNo.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset No'**
+ String get assetNo;
+
+ /// No description provided for @manufacture.
+ ///
+ /// In en, this message translates to:
+ /// **'Manufacture'**
+ String get manufacture;
+
+ /// No description provided for @serialNo.
+ ///
+ /// In en, this message translates to:
+ /// **'Serial No'**
+ String get serialNo;
+
+ /// No description provided for @pickAsset.
+ ///
+ /// In en, this message translates to:
+ /// **'Pick Asset'**
+ String get pickAsset;
+
+ /// No description provided for @filter.
+ ///
+ /// In en, this message translates to:
+ /// **'Filter'**
+ String get filter;
+
+ /// No description provided for @firstAction.
+ ///
+ /// In en, this message translates to:
+ /// **'First Action'**
+ String get firstAction;
+
+ /// No description provided for @rejectionReason.
+ ///
+ /// In en, this message translates to:
+ /// **'Rejection Reason'**
+ String get rejectionReason;
+
+ /// No description provided for @workOrder.
+ ///
+ /// In en, this message translates to:
+ /// **'Work Order'**
+ String get workOrder;
+
+ /// No description provided for @cmDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'CM Details'**
+ String get cmDetails;
+
+ /// No description provided for @assetInformation.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Information'**
+ String get assetInformation;
+
+ /// No description provided for @callDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Call Details'**
+ String get callDetails;
+
+ /// No description provided for @assetStatus.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Status'**
+ String get assetStatus;
+
+ /// No description provided for @workOrders.
+ ///
+ /// In en, this message translates to:
+ /// **'Work Orders'**
+ String get workOrders;
+
+ /// No description provided for @viewWorkOrder.
+ ///
+ /// In en, this message translates to:
+ /// **'View All Work Order'**
+ String get viewWorkOrder;
+
+ /// No description provided for @createWorkOrder.
+ ///
+ /// In en, this message translates to:
+ /// **'Create Work Order'**
+ String get createWorkOrder;
+
+ /// No description provided for @serviceDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Service Details'**
+ String get serviceDetails;
+
+ /// No description provided for @setVisitDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Set Date Of Visit'**
+ String get setVisitDate;
+
+ /// No description provided for @verifyArrival.
+ ///
+ /// In en, this message translates to:
+ /// **'Verify Arrival'**
+ String get verifyArrival;
+
+ /// No description provided for @selectWorkOrder.
+ ///
+ /// In en, this message translates to:
+ /// **'Select Work Order'**
+ String get selectWorkOrder;
+
+ /// No description provided for @scanQr.
+ ///
+ /// In en, this message translates to:
+ /// **'Scan QR'**
+ String get scanQr;
+
+ /// No description provided for @scanQrDetail.
+ ///
+ /// In en, this message translates to:
+ /// **'Scan QR Code of the device'**
+ String get scanQrDetail;
+
+ /// No description provided for @askRequester.
+ ///
+ /// In en, this message translates to:
+ /// **'Ask Requester to Verify'**
+ String get askRequester;
+
+ /// No description provided for @askRequesterDetail.
+ ///
+ /// In en, this message translates to:
+ /// **'Ask requester to verify your arrival through Atoms Application.'**
+ String get askRequesterDetail;
+
+ /// No description provided for @askOtp.
+ ///
+ /// In en, this message translates to:
+ /// **'Ask OTP From Requester'**
+ String get askOtp;
+
+ /// No description provided for @askOtpDetail.
+ ///
+ /// In en, this message translates to:
+ /// **'Ask OTP from requester to verify you arrival'**
+ String get askOtpDetail;
+
+ /// No description provided for @takeDevicePhoto.
+ ///
+ /// In en, this message translates to:
+ /// **'Take Device Photo'**
+ String get takeDevicePhoto;
+
+ /// No description provided for @takeDevicePhotoDetail.
+ ///
+ /// In en, this message translates to:
+ /// **'Take the photo of the device from location'**
+ String get takeDevicePhotoDetail;
+
+ /// No description provided for @lastSituationStatus.
+ ///
+ /// In en, this message translates to:
+ /// **'Last Situation Status'**
+ String get lastSituationStatus;
+
+ /// No description provided for @priority.
+ ///
+ /// In en, this message translates to:
+ /// **'Request Priority'**
+ String get priority;
+
+ /// No description provided for @equipmentStatus.
+ ///
+ /// In en, this message translates to:
+ /// **'Equipment Status'**
+ String get equipmentStatus;
+
+ /// No description provided for @requestSparePart.
+ ///
+ /// In en, this message translates to:
+ /// **'Request Spare Part'**
+ String get requestSparePart;
+
+ /// No description provided for @callResponse.
+ ///
+ /// In en, this message translates to:
+ /// **'Call Response'**
+ String get callResponse;
+
+ /// No description provided for @selectAction.
+ ///
+ /// In en, this message translates to:
+ /// **'Select Action'**
+ String get selectAction;
+
+ /// No description provided for @requestSparePartForYourAsset.
+ ///
+ /// In en, this message translates to:
+ /// **'Request spare part for your asset'**
+ String get requestSparePartForYourAsset;
+
+ /// No description provided for @addNewActivity.
+ ///
+ /// In en, this message translates to:
+ /// **'Add New Activity'**
+ String get addNewActivity;
+
+ /// No description provided for @addNewActivityToYourWorkOrder.
+ ///
+ /// In en, this message translates to:
+ /// **'Add new activity to your work order'**
+ String get addNewActivityToYourWorkOrder;
+
+ /// No description provided for @markAsCompleted.
+ ///
+ /// In en, this message translates to:
+ /// **'Mark As Completed'**
+ String get markAsCompleted;
+
+ /// No description provided for @cmNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'CM Number'**
+ String get cmNumber;
+
+ /// No description provided for @jopStatus.
+ ///
+ /// In en, this message translates to:
+ /// **'Jop Status'**
+ String get jopStatus;
+
+ /// No description provided for @callComments.
+ ///
+ /// In en, this message translates to:
+ /// **'Call Comments'**
+ String get callComments;
+
+ /// No description provided for @comments.
+ ///
+ /// In en, this message translates to:
+ /// **'Comments'**
+ String get comments;
+
+ /// No description provided for @recordVoice.
+ ///
+ /// In en, this message translates to:
+ /// **'Record Voice'**
+ String get recordVoice;
+
+ /// No description provided for @gasRefillDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Gas Refill Details'**
+ String get gasRefillDetails;
+
+ /// No description provided for @updateRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Update Request'**
+ String get updateRequest;
+
+ /// No description provided for @gasRefill.
+ ///
+ /// In en, this message translates to:
+ /// **'Gas Refill'**
+ String get gasRefill;
+
+ /// No description provided for @assetDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Details'**
+ String get assetDetails;
+
+ /// No description provided for @receiverName.
+ ///
+ /// In en, this message translates to:
+ /// **'Receiver Name'**
+ String get receiverName;
+
+ /// No description provided for @receiverDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Receiver Details'**
+ String get receiverDetails;
+
+ /// No description provided for @requestedThrough.
+ ///
+ /// In en, this message translates to:
+ /// **'Requested Through'**
+ String get requestedThrough;
+
+ /// No description provided for @typeOfRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Type of Request'**
+ String get typeOfRequest;
+
+ /// No description provided for @deviceTransfer.
+ ///
+ /// In en, this message translates to:
+ /// **'Device Transfer'**
+ String get deviceTransfer;
+
+ /// No description provided for @deviceTransferRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Device Transfer Requests'**
+ String get deviceTransferRequest;
+
+ /// No description provided for @deviceTransferDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Device Transfer Details'**
+ String get deviceTransferDetails;
+
+ /// No description provided for @transferDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Transfer Details'**
+ String get transferDetails;
+
+ /// No description provided for @senderDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Sender Details'**
+ String get senderDetails;
+
+ /// No description provided for @searchBy.
+ ///
+ /// In en, this message translates to:
+ /// **'Search by'**
+ String get searchBy;
+
+ /// No description provided for @searchByDesc.
+ ///
+ /// In en, this message translates to:
+ /// **'Search by any of the following criteria'**
+ String get searchByDesc;
+
+ /// No description provided for @location.
+ ///
+ /// In en, this message translates to:
+ /// **'Location'**
+ String get location;
+
+ /// No description provided for @supplier.
+ ///
+ /// In en, this message translates to:
+ /// **'Supplier'**
+ String get supplier;
+
+ /// No description provided for @supplierEngineer.
+ ///
+ /// In en, this message translates to:
+ /// **'Supplier Engineer'**
+ String get supplierEngineer;
+
+ /// No description provided for @md.
+ ///
+ /// In en, this message translates to:
+ /// **'MD'**
+ String get md;
+
+ /// No description provided for @snNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'SN Number'**
+ String get snNumber;
+
+ /// No description provided for @snNo.
+ ///
+ /// In en, this message translates to:
+ /// **'SN No.'**
+ String get snNo;
+
+ /// No description provided for @oracleCode.
+ ///
+ /// In en, this message translates to:
+ /// **'Oracle Code'**
+ String get oracleCode;
+
+ /// No description provided for @byDepartment.
+ ///
+ /// In en, this message translates to:
+ /// **'By Department'**
+ String get byDepartment;
+
+ /// No description provided for @bySite.
+ ///
+ /// In en, this message translates to:
+ /// **'By Site'**
+ String get bySite;
+
+ /// No description provided for @applyFilter.
+ ///
+ /// In en, this message translates to:
+ /// **'Apply Filter'**
+ String get applyFilter;
+
+ /// No description provided for @pmDateRange.
+ ///
+ /// In en, this message translates to:
+ /// **'PM Date Range'**
+ String get pmDateRange;
+
+ /// No description provided for @pickDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Pick Date'**
+ String get pickDate;
+
+ /// No description provided for @verify.
+ ///
+ /// In en, this message translates to:
+ /// **'Verify'**
+ String get verify;
+
+ /// No description provided for @resend.
+ ///
+ /// In en, this message translates to:
+ /// **'Resend'**
+ String get resend;
+
+ /// No description provided for @resendIn.
+ ///
+ /// In en, this message translates to:
+ /// **'Resend In'**
+ String get resendIn;
+
+ /// No description provided for @havingTroubleReceivingOtp.
+ ///
+ /// In en, this message translates to:
+ /// **'Having trouble receiving OTP?'**
+ String get havingTroubleReceivingOtp;
+
+ /// No description provided for @askOtpFromRequester.
+ ///
+ /// In en, this message translates to:
+ /// **'Ask OTP From Requester'**
+ String get askOtpFromRequester;
+
+ /// No description provided for @checkOutOtherMethods.
+ ///
+ /// In en, this message translates to:
+ /// **'Check out other methods.'**
+ String get checkOutOtherMethods;
+
+ /// No description provided for @otpSentToNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'An OTP sent to the number'**
+ String get otpSentToNumber;
+
+ /// No description provided for @requestDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Request Details'**
+ String get requestDetails;
+
+ /// No description provided for @historyLogs.
+ ///
+ /// In en, this message translates to:
+ /// **'History Logs'**
+ String get historyLogs;
+
+ /// No description provided for @pickTime.
+ ///
+ /// In en, this message translates to:
+ /// **'Pick Time'**
+ String get pickTime;
+
+ /// No description provided for @readCompleteThread.
+ ///
+ /// In en, this message translates to:
+ /// **'Read Complete thread'**
+ String get readCompleteThread;
+
+ /// No description provided for @pickADate.
+ ///
+ /// In en, this message translates to:
+ /// **'Pick a date'**
+ String get pickADate;
+
+ /// No description provided for @firstActionStatus.
+ ///
+ /// In en, this message translates to:
+ /// **'First Action Status'**
+ String get firstActionStatus;
+
+ /// No description provided for @loanAvailability.
+ ///
+ /// In en, this message translates to:
+ /// **'Loan Availability'**
+ String get loanAvailability;
+
+ /// No description provided for @save.
+ ///
+ /// In en, this message translates to:
+ /// **'Save'**
+ String get save;
+
+ /// No description provided for @serviceType.
+ ///
+ /// In en, this message translates to:
+ /// **'Service Type'**
+ String get serviceType;
+
+ /// No description provided for @assistantEmployee.
+ ///
+ /// In en, this message translates to:
+ /// **'Assistant Employee'**
+ String get assistantEmployee;
+
+ /// No description provided for @assignAssistant.
+ ///
+ /// In en, this message translates to:
+ /// **'Assign Assistant'**
+ String get assignAssistant;
+
+ /// No description provided for @partNo.
+ ///
+ /// In en, this message translates to:
+ /// **'Part No.'**
+ String get partNo;
+
+ /// No description provided for @partNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'Part Number'**
+ String get partNumber;
+
+ /// No description provided for @engSign.
+ ///
+ /// In en, this message translates to:
+ /// **'Engineer Signature'**
+ String get engSign;
+
+ /// No description provided for @requesterName.
+ ///
+ /// In en, this message translates to:
+ /// **'Requester Name'**
+ String get requesterName;
+
+ /// No description provided for @updateWorkOrder.
+ ///
+ /// In en, this message translates to:
+ /// **'Update Work Order'**
+ String get updateWorkOrder;
+
+ /// No description provided for @createPreventiveMaintenanceRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Create Preventive Maintenance Request'**
+ String get createPreventiveMaintenanceRequest;
+
+ /// No description provided for @createNewRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Create New Request'**
+ String get createNewRequest;
+
+ /// No description provided for @calendar.
+ ///
+ /// In en, this message translates to:
+ /// **'Calendar'**
+ String get calendar;
+
+ /// No description provided for @helpCenter.
+ ///
+ /// In en, this message translates to:
+ /// **'Help Center'**
+ String get helpCenter;
+
+ /// No description provided for @rateUs.
+ ///
+ /// In en, this message translates to:
+ /// **'Rate Us'**
+ String get rateUs;
+
+ /// No description provided for @settings.
+ ///
+ /// In en, this message translates to:
+ /// **'Settings'**
+ String get settings;
+
+ /// No description provided for @reportBg.
+ ///
+ /// In en, this message translates to:
+ /// **'Report a bug'**
+ String get reportBg;
+
+ /// No description provided for @whatsNew.
+ ///
+ /// In en, this message translates to:
+ /// **'What\'s New'**
+ String get whatsNew;
+
+ /// No description provided for @logout.
+ ///
+ /// In en, this message translates to:
+ /// **'Logout'**
+ String get logout;
+
+ /// No description provided for @arabic.
+ ///
+ /// In en, this message translates to:
+ /// **'Arabic'**
+ String get arabic;
+
+ /// No description provided for @lightTheme.
+ ///
+ /// In en, this message translates to:
+ /// **'Light Theme'**
+ String get lightTheme;
+
+ /// No description provided for @myProfile.
+ ///
+ /// In en, this message translates to:
+ /// **'My Profile'**
+ String get myProfile;
+
+ /// No description provided for @viewDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'View Details'**
+ String get viewDetails;
+
+ /// No description provided for @requests.
+ ///
+ /// In en, this message translates to:
+ /// **'Requests'**
+ String get requests;
+
+ /// No description provided for @highPriority.
+ ///
+ /// In en, this message translates to:
+ /// **'High Priority'**
+ String get highPriority;
+
+ /// No description provided for @newRequests.
+ ///
+ /// In en, this message translates to:
+ /// **'New'**
+ String get newRequests;
+
+ /// No description provided for @completed.
+ ///
+ /// In en, this message translates to:
+ /// **'Completed'**
+ String get completed;
+
+ /// No description provided for @overdue.
+ ///
+ /// In en, this message translates to:
+ /// **'Overdue'**
+ String get overdue;
+
+ /// No description provided for @lowPriority.
+ ///
+ /// In en, this message translates to:
+ /// **'Low Priority'**
+ String get lowPriority;
+
+ /// No description provided for @newR.
+ ///
+ /// In en, this message translates to:
+ /// **'New'**
+ String get newR;
+
+ /// No description provided for @inProgress.
+ ///
+ /// In en, this message translates to:
+ /// **'In Progress'**
+ String get inProgress;
+
+ /// No description provided for @open.
+ ///
+ /// In en, this message translates to:
+ /// **'Open'**
+ String get open;
+
+ /// No description provided for @requestType.
+ ///
+ /// In en, this message translates to:
+ /// **'Request Type'**
+ String get requestType;
+
+ /// No description provided for @requestNo.
+ ///
+ /// In en, this message translates to:
+ /// **'Request No'**
+ String get requestNo;
+
+ /// No description provided for @assignedTo.
+ ///
+ /// In en, this message translates to:
+ /// **'Assigned To'**
+ String get assignedTo;
+
+ /// No description provided for @waitingForQuotation.
+ ///
+ /// In en, this message translates to:
+ /// **'Waiting for quotation'**
+ String get waitingForQuotation;
+
+ /// No description provided for @gasRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Gas Request'**
+ String get gasRequest;
+
+ /// No description provided for @viewComments.
+ ///
+ /// In en, this message translates to:
+ /// **'View Comments'**
+ String get viewComments;
+
+ /// No description provided for @commentHere.
+ ///
+ /// In en, this message translates to:
+ /// **'Comment Here'**
+ String get commentHere;
+
+ /// No description provided for @nurseSignature.
+ ///
+ /// In en, this message translates to:
+ /// **'Nurse Signature'**
+ String get nurseSignature;
+
+ /// No description provided for @ppmVisit.
+ ///
+ /// In en, this message translates to:
+ /// **'PPM Visit Status'**
+ String get ppmVisit;
+
+ /// No description provided for @ppmRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'PPMs Request'**
+ String get ppmRequest;
+
+ /// No description provided for @timer.
+ ///
+ /// In en, this message translates to:
+ /// **'Timer'**
+ String get timer;
+
+ /// No description provided for @deviceStatus.
+ ///
+ /// In en, this message translates to:
+ /// **'Device Status'**
+ String get deviceStatus;
+
+ /// No description provided for @addAsset.
+ ///
+ /// In en, this message translates to:
+ /// **'Add Asset'**
+ String get addAsset;
+
+ /// No description provided for @calibrationDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Calibration Date'**
+ String get calibrationDate;
+
+ /// No description provided for @asset.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset'**
+ String get asset;
+
+ /// No description provided for @addItem.
+ ///
+ /// In en, this message translates to:
+ /// **'Add Item'**
+ String get addItem;
+
+ /// No description provided for @item.
+ ///
+ /// In en, this message translates to:
+ /// **'Item'**
+ String get item;
+
+ /// No description provided for @measuredValue.
+ ///
+ /// In en, this message translates to:
+ /// **'Measured Value'**
+ String get measuredValue;
+
+ /// No description provided for @sureExit.
+ ///
+ /// In en, this message translates to:
+ /// **'Are you sure ypu want to Exit? '**
+ String get sureExit;
+
+ /// No description provided for @daily.
+ ///
+ /// In en, this message translates to:
+ /// **'Daily'**
+ String get daily;
+
+ /// No description provided for @weekly.
+ ///
+ /// In en, this message translates to:
+ /// **'Weekly'**
+ String get weekly;
+
+ /// No description provided for @monthly.
+ ///
+ /// In en, this message translates to:
+ /// **'Monthly'**
+ String get monthly;
+
+ /// No description provided for @confirmEngineerArrival.
+ ///
+ /// In en, this message translates to:
+ /// **'Confirm Engineer Arrival'**
+ String get confirmEngineerArrival;
+
+ /// No description provided for @confirmingEngineerArrivalAction.
+ ///
+ /// In en, this message translates to:
+ /// **'With this action you are confirming engineer arrival'**
+ String get confirmingEngineerArrivalAction;
+
+ /// No description provided for @myShift.
+ ///
+ /// In en, this message translates to:
+ /// **'My Shift'**
+ String get myShift;
+
+ /// No description provided for @myTeamRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'My Team Request'**
+ String get myTeamRequest;
+
+ /// No description provided for @sunToThurs.
+ ///
+ /// In en, this message translates to:
+ /// **'Sunday to Thursday'**
+ String get sunToThurs;
+
+ /// No description provided for @requestGasRefill.
+ ///
+ /// In en, this message translates to:
+ /// **'Request Gas Refill'**
+ String get requestGasRefill;
+
+ /// No description provided for @trackGasRefill.
+ ///
+ /// In en, this message translates to:
+ /// **'Track Gas Refill'**
+ String get trackGasRefill;
+
+ /// No description provided for @trackAssetTransfer.
+ ///
+ /// In en, this message translates to:
+ /// **'Track Asset Transfer'**
+ String get trackAssetTransfer;
+
+ /// No description provided for @total.
+ ///
+ /// In en, this message translates to:
+ /// **'Total'**
+ String get total;
+
+ /// No description provided for @noDataFound.
+ ///
+ /// In en, this message translates to:
+ /// **'No Data Found'**
+ String get noDataFound;
+
+ /// No description provided for @allRequests.
+ ///
+ /// In en, this message translates to:
+ /// **'All Requests'**
+ String get allRequests;
+
+ /// No description provided for @allWorkOrder.
+ ///
+ /// In en, this message translates to:
+ /// **'All Work Orders'**
+ String get allWorkOrder;
+
+ /// No description provided for @requestStatus.
+ ///
+ /// In en, this message translates to:
+ /// **'Request Status'**
+ String get requestStatus;
+
+ /// No description provided for @createSubWorkOrder.
+ ///
+ /// In en, this message translates to:
+ /// **'Create Sub Work Order'**
+ String get createSubWorkOrder;
+
+ /// No description provided for @mrNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'MR Number'**
+ String get mrNumber;
+
+ /// No description provided for @vendorEng.
+ ///
+ /// In en, this message translates to:
+ /// **'Vendor Engineer'**
+ String get vendorEng;
+
+ /// No description provided for @vendorName.
+ ///
+ /// In en, this message translates to:
+ /// **'Vendor Name'**
+ String get vendorName;
+
+ /// No description provided for @reset.
+ ///
+ /// In en, this message translates to:
+ /// **'Reset'**
+ String get reset;
+
+ /// No description provided for @solution.
+ ///
+ /// In en, this message translates to:
+ /// **'Solution'**
+ String get solution;
+
+ /// No description provided for @technicalComment.
+ ///
+ /// In en, this message translates to:
+ /// **'Technical Comment'**
+ String get technicalComment;
+
+ /// No description provided for @recentActivities.
+ ///
+ /// In en, this message translates to:
+ /// **'Recent Activities'**
+ String get recentActivities;
+
+ /// No description provided for @activities.
+ ///
+ /// In en, this message translates to:
+ /// **'Activities'**
+ String get activities;
+
+ /// No description provided for @provideQrCodeToEngineer.
+ ///
+ /// In en, this message translates to:
+ /// **'Provide the below QR Code to Engineer to verify his arrival'**
+ String get provideQrCodeToEngineer;
+
+ /// No description provided for @qrCode.
+ ///
+ /// In en, this message translates to:
+ /// **'QR Code'**
+ String get qrCode;
+
+ /// No description provided for @createNewActivity.
+ ///
+ /// In en, this message translates to:
+ /// **'Create New Activity'**
+ String get createNewActivity;
+
+ /// No description provided for @selectActivityType.
+ ///
+ /// In en, this message translates to:
+ /// **'Select Activity Type'**
+ String get selectActivityType;
+
+ /// No description provided for @sparePartRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Spare Part Request'**
+ String get sparePartRequest;
+
+ /// No description provided for @sparePartRequestDetail.
+ ///
+ /// In en, this message translates to:
+ /// **'Ask requester to verify your arrival through Atoms Application.'**
+ String get sparePartRequestDetail;
+
+ /// No description provided for @maintenanceRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Maintenance Request'**
+ String get maintenanceRequest;
+
+ /// No description provided for @assetToBeRetired.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset to be retired'**
+ String get assetToBeRetired;
+
+ /// No description provided for @problemDesc.
+ ///
+ /// In en, this message translates to:
+ /// **'Problem Description'**
+ String get problemDesc;
+
+ /// No description provided for @source.
+ ///
+ /// In en, this message translates to:
+ /// **'Source'**
+ String get source;
+
+ /// No description provided for @costCodeName.
+ ///
+ /// In en, this message translates to:
+ /// **'Cost Code Name'**
+ String get costCodeName;
+
+ /// No description provided for @installationDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Installation Date'**
+ String get installationDate;
+
+ /// No description provided for @nextPmDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Next PM Date'**
+ String get nextPmDate;
+
+ /// No description provided for @lastPmDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Last PM Date'**
+ String get lastPmDate;
+
+ /// No description provided for @assetScan.
+ ///
+ /// In en, this message translates to:
+ /// **'Asset Scan'**
+ String get assetScan;
+
+ /// No description provided for @pickManually.
+ ///
+ /// In en, this message translates to:
+ /// **'Pick Manually'**
+ String get pickManually;
+
+ /// No description provided for @doYouWantToSetReminder.
+ ///
+ /// In en, this message translates to:
+ /// **'Do you want to set reminder?'**
+ String get doYouWantToSetReminder;
+
+ /// No description provided for @youCanSetTheReminderInAlarmToRemindYouBeforeVisit.
+ ///
+ /// In en, this message translates to:
+ /// **'You can set the reminder in alarm to remind you before visit. Please select the time below'**
+ String get youCanSetTheReminderInAlarmToRemindYouBeforeVisit;
+
+ /// No description provided for @setReminder.
+ ///
+ /// In en, this message translates to:
+ /// **'Set Reminder'**
+ String get setReminder;
+
+ /// No description provided for @searchAsset.
+ ///
+ /// In en, this message translates to:
+ /// **'Search Asset'**
+ String get searchAsset;
+
+ /// No description provided for @newPassword.
+ ///
+ /// In en, this message translates to:
+ /// **'New Password'**
+ String get newPassword;
+
+ /// No description provided for @resetPassword.
+ ///
+ /// In en, this message translates to:
+ /// **'Reset Password'**
+ String get resetPassword;
+
+ /// No description provided for @otpVerification.
+ ///
+ /// In en, this message translates to:
+ /// **'OTP Verification'**
+ String get otpVerification;
+
+ /// No description provided for @pleaseEnterTheOtpSentTo.
+ ///
+ /// In en, this message translates to:
+ /// **'Please enter the OTP sent to'**
+ String get pleaseEnterTheOtpSentTo;
+
+ /// No description provided for @pleaseEnterTheNewPassword.
+ ///
+ /// In en, this message translates to:
+ /// **'Please enter the new password'**
+ String get pleaseEnterTheNewPassword;
+
+ /// No description provided for @markAttendance.
+ ///
+ /// In en, this message translates to:
+ /// **'Mark Attendance'**
+ String get markAttendance;
+
+ /// No description provided for @selectMethodToMarkAttendance.
+ ///
+ /// In en, this message translates to:
+ /// **'Select the method to mark the attendance'**
+ String get selectMethodToMarkAttendance;
+
+ /// No description provided for @employeeIdIsRequired.
+ ///
+ /// In en, this message translates to:
+ /// **'Employee Id is required'**
+ String get employeeIdIsRequired;
+
+ /// No description provided for @successful.
+ ///
+ /// In en, this message translates to:
+ /// **'Successful'**
+ String get successful;
+
+ /// No description provided for @youHaveSuccessfullyMarkedYourAttendance.
+ ///
+ /// In en, this message translates to:
+ /// **'You have successfully marked your attendance'**
+ String get youHaveSuccessfullyMarkedYourAttendance;
+
+ /// No description provided for @swipeTypeName.
+ ///
+ /// In en, this message translates to:
+ /// **'Swipe Type Name'**
+ String get swipeTypeName;
+
+ /// No description provided for @userName.
+ ///
+ /// In en, this message translates to:
+ /// **'User Name'**
+ String get userName;
+
+ /// No description provided for @siteName.
+ ///
+ /// In en, this message translates to:
+ /// **'Site Name'**
+ String get siteName;
+
+ /// No description provided for @pointName.
+ ///
+ /// In en, this message translates to:
+ /// **'Point Name'**
+ String get pointName;
+
+ /// No description provided for @checkIn.
+ ///
+ /// In en, this message translates to:
+ /// **'Check in'**
+ String get checkIn;
+
+ /// No description provided for @pmWo.
+ ///
+ /// In en, this message translates to:
+ /// **'PM WO'**
+ String get pmWo;
+
+ /// No description provided for @recurrentWo.
+ ///
+ /// In en, this message translates to:
+ /// **'Recurrent WO'**
+ String get recurrentWo;
+
+ /// No description provided for @taskNo.
+ ///
+ /// In en, this message translates to:
+ /// **'Task No'**
+ String get taskNo;
+
+ /// No description provided for @assignEngineer.
+ ///
+ /// In en, this message translates to:
+ /// **'Assign Engineer'**
+ String get assignEngineer;
+
+ /// No description provided for @scheduledDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Scheduled Date'**
+ String get scheduledDate;
+
+ /// No description provided for @complete.
+ ///
+ /// In en, this message translates to:
+ /// **'Complete'**
+ String get complete;
+
+ /// No description provided for @createdDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Created Date'**
+ String get createdDate;
+
+ /// No description provided for @employeeId.
+ ///
+ /// In en, this message translates to:
+ /// **'Employee ID'**
+ String get employeeId;
+
+ /// No description provided for @extensionNo.
+ ///
+ /// In en, this message translates to:
+ /// **'Extension No'**
+ String get extensionNo;
+
+ /// No description provided for @fail.
+ ///
+ /// In en, this message translates to:
+ /// **'FAIL'**
+ String get fail;
+
+ /// No description provided for @pass.
+ ///
+ /// In en, this message translates to:
+ /// **'PASS'**
+ String get pass;
+
+ /// No description provided for @pmPlanNo.
+ ///
+ /// In en, this message translates to:
+ /// **'PM Plan No'**
+ String get pmPlanNo;
+
+ /// No description provided for @executionTimeFrame.
+ ///
+ /// In en, this message translates to:
+ /// **'Execution Time Frame'**
+ String get executionTimeFrame;
+
+ /// No description provided for @pmTestResult.
+ ///
+ /// In en, this message translates to:
+ /// **'PM Test Result'**
+ String get pmTestResult;
+
+ /// No description provided for @actualVisit.
+ ///
+ /// In en, this message translates to:
+ /// **'Actual Visit'**
+ String get actualVisit;
+
+ /// No description provided for @totalWorkingTime.
+ ///
+ /// In en, this message translates to:
+ /// **'Total Working Time'**
+ String get totalWorkingTime;
+
+ /// No description provided for @typeOfPm.
+ ///
+ /// In en, this message translates to:
+ /// **'Type of PM'**
+ String get typeOfPm;
+
+ /// No description provided for @attachments.
+ ///
+ /// In en, this message translates to:
+ /// **'Attachments'**
+ String get attachments;
+
+ /// No description provided for @supplierName.
+ ///
+ /// In en, this message translates to:
+ /// **'Supplier Name'**
+ String get supplierName;
+
+ /// No description provided for @externalEngineerName.
+ ///
+ /// In en, this message translates to:
+ /// **'External Engineer Name'**
+ String get externalEngineerName;
+
+ /// No description provided for @telephone.
+ ///
+ /// In en, this message translates to:
+ /// **'Telephone'**
+ String get telephone;
+
+ /// No description provided for @task.
+ ///
+ /// In en, this message translates to:
+ /// **'Task'**
+ String get task;
+
+ /// No description provided for @taskType.
+ ///
+ /// In en, this message translates to:
+ /// **'Task Type'**
+ String get taskType;
+
+ /// No description provided for @createTaskRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Create Task Request'**
+ String get createTaskRequest;
+
+ /// No description provided for @taskRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Task Request'**
+ String get taskRequest;
+
+ /// No description provided for @completedActions.
+ ///
+ /// In en, this message translates to:
+ /// **'Completed Actions'**
+ String get completedActions;
+
+ /// No description provided for @impactStatus.
+ ///
+ /// In en, this message translates to:
+ /// **'Impact Status'**
+ String get impactStatus;
+
+ /// No description provided for @installationSite.
+ ///
+ /// In en, this message translates to:
+ /// **'Installation Site'**
+ String get installationSite;
+
+ /// No description provided for @installationBuilding.
+ ///
+ /// In en, this message translates to:
+ /// **'Installation Building'**
+ String get installationBuilding;
+
+ /// No description provided for @installationFloor.
+ ///
+ /// In en, this message translates to:
+ /// **'Installation Floor'**
+ String get installationFloor;
+
+ /// No description provided for @installationDepartment.
+ ///
+ /// In en, this message translates to:
+ /// **'Installation Department'**
+ String get installationDepartment;
+
+ /// No description provided for @acknowledge.
+ ///
+ /// In en, this message translates to:
+ /// **'Acknowledge'**
+ String get acknowledge;
+
+ /// No description provided for @transferAsset.
+ ///
+ /// In en, this message translates to:
+ /// **'Transfer Asset'**
+ String get transferAsset;
+
+ /// No description provided for @createAssetTransferRequest.
+ ///
+ /// In en, this message translates to:
+ /// **'Create Asset Transfer Request'**
+ String get createAssetTransferRequest;
+
+ /// No description provided for @arrivedDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Arrived Date'**
+ String get arrivedDate;
+
+ /// No description provided for @closedDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Closed Date'**
+ String get closedDate;
+
+ /// No description provided for @transferType.
+ ///
+ /// In en, this message translates to:
+ /// **'Transfer Type'**
+ String get transferType;
+
+ /// No description provided for @since.
+ ///
+ /// In en, this message translates to:
+ /// **'Since'**
+ String get since;
+
+ /// No description provided for @rejectionDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Rejection Details'**
+ String get rejectionDetails;
+
+ /// No description provided for @part.
+ ///
+ /// In en, this message translates to:
+ /// **'Part'**
+ String get part;
+
+ /// No description provided for @creationDate.
+ ///
+ /// In en, this message translates to:
+ /// **'Creation Date'**
+ String get creationDate;
+
+ /// No description provided for @createdBy.
+ ///
+ /// In en, this message translates to:
+ /// **'Created BY'**
+ String get createdBy;
+
+ /// No description provided for @trNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'TR Number'**
+ String get trNumber;
+
+ /// No description provided for @workOrderDetails.
+ ///
+ /// In en, this message translates to:
+ /// **'Work Order Details'**
+ String get workOrderDetails;
+
+ /// No description provided for @woNumber.
+ ///
+ /// In en, this message translates to:
+ /// **'WO Number'**
+ String get woNumber;
+
+ /// No description provided for @contactInfo.
+ ///
+ /// In en, this message translates to:
+ /// **'Contact Info'**
+ String get contactInfo;
+
+ /// No description provided for @destinationBuilding.
+ ///
+ /// In en, this message translates to:
+ /// **'Destination Building'**
+ String get destinationBuilding;
+
+ /// No description provided for @destinationFloor.
+ ///
+ /// In en, this message translates to:
+ /// **'Destination Floor'**
+ String get destinationFloor;
+
+ /// No description provided for @destinationDepartment.
+ ///
+ /// In en, this message translates to:
+ /// **'Destination Department'**
+ String get destinationDepartment;
+}
+
+class _AppLocalizationsDelegate
+ extends LocalizationsDelegate {
+ const _AppLocalizationsDelegate();
+
+ @override
+ Future load(Locale locale) {
+ return SynchronousFuture(lookupAppLocalizations(locale));
+ }
+
+ @override
+ bool isSupported(Locale locale) =>
+ ['ar', 'en'].contains(locale.languageCode);
+
+ @override
+ bool shouldReload(_AppLocalizationsDelegate old) => false;
+}
+
+AppLocalizations lookupAppLocalizations(Locale locale) {
+ // Lookup logic when only language code is specified.
+ switch (locale.languageCode) {
+ case 'ar':
+ return AppLocalizationsAr();
+ case 'en':
+ return AppLocalizationsEn();
+ }
+
+ throw FlutterError(
+ 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
+ 'an issue with the localizations generation tool. Please file an issue '
+ 'on GitHub with a reproducible sample app and the gen-l10n configuration '
+ 'that was used.');
+}
diff --git a/lib/l10n/app_localizations_ar.dart b/lib/l10n/app_localizations_ar.dart
new file mode 100644
index 00000000..9f5681b3
--- /dev/null
+++ b/lib/l10n/app_localizations_ar.dart
@@ -0,0 +1,1705 @@
+// ignore: unused_import
+import 'package:intl/intl.dart' as intl;
+import 'app_localizations.dart';
+
+// ignore_for_file: type=lint
+
+/// The translations for Arabic (`ar`).
+class AppLocalizationsAr extends AppLocalizations {
+ AppLocalizationsAr([String locale = 'ar']) : super(locale);
+
+ @override
+ String get serverErrorMessage => 'الخدمة غير متاحة حاليا';
+
+ @override
+ String get failedRequestMessage => 'فشل إكمال الطلب';
+
+ @override
+ String get successfulRequestMessage => 'تم إكمال الطلب بنجاح';
+
+ @override
+ String get commentAdded => 'تم إضافة التعليق';
+
+ @override
+ String get requestLockMessage => 'انتظر حتى إكمال الطلب';
+
+ @override
+ String get cancel => 'إلغاء';
+
+ @override
+ String get confirm => 'تاكيد';
+
+ @override
+ String get notArrived => 'لم يصل';
+
+ @override
+ String get arrived => 'وصل';
+
+ @override
+ String get done => 'تم';
+
+ @override
+ String get exit => 'إغلاق';
+
+ @override
+ String get refreshQrCode => 'تحديث رمز الاستجابة السريعة';
+
+ @override
+ String get exitAlert => 'هل انت متاكد من رغبتك في إغلاق التطبيق؟';
+
+ @override
+ String get assetRetiredPendingOpManagementApproval =>
+ 'تم تقاعد الأصل. في انتظار موافقة إدارة العمليات';
+
+ @override
+ String get assetRetirementRequestSubmittedSuccessfully =>
+ 'تم تقديم طلب تقاعد الأصل بنجاح';
+
+ @override
+ String get youMarkedThisIssueAsFixedWaitingForTheRequesterToConfirm =>
+ 'لقد قمت بوضع علامة على هذه المشكلة على أنها تم إصلاحها. في انتظار تأكيد مقدم الطلب';
+
+ @override
+ String get signOut => 'تسجيل الخروج';
+
+ @override
+ String get logoutAlert => 'هل انت متاكد من رغبتك في تسجيل الخروج؟';
+
+ @override
+ String get language => 'اللغة';
+
+ @override
+ String get name => 'الاسم';
+
+ @override
+ String get email => 'البريد الالكتروني';
+
+ @override
+ String get retirementType => 'نوع التقاعد';
+
+ @override
+ String get assetSituation => 'حالة الأصول';
+
+ @override
+ String get phoneNumber => 'رقم الهاتف';
+
+ @override
+ String get password => 'كلمة السر';
+
+ @override
+ String get confirmPassword => 'تاكيد كلمة المرور';
+
+ @override
+ String get skipForLater => 'تخطي لاحقًا';
+
+ @override
+ String get signIn => 'تسجيل الدخول';
+
+ @override
+ String get letSignInToAccount => 'لنقم بتسجيل الدخول إلى حسابك';
+
+ @override
+ String get signUp => 'انشاء حساب';
+
+ @override
+ String get accept => 'قبول';
+
+ @override
+ String get reject => 'رفض';
+
+ @override
+ String get forgetPassword => 'نسيت كلمة المرور';
+
+ @override
+ String get acceptTermsAndConditions => 'موافقة علي الشروط والاحكام';
+
+ @override
+ String get emailValidateMessage => 'البريد الالكتروني غير صحيح';
+
+ @override
+ String get nameValidateMessage => 'الاسم مطلوب';
+
+ @override
+ String get passwordValidateMessage => 'علي الاقل استخدم 6 حروف او ارقام';
+
+ @override
+ String get confirmPasswordValidateMessage =>
+ 'كلمة المرور و تاكيد كلمة المرور غير متطابقان';
+
+ @override
+ String get phoneNumberValidateMessage => 'رقم الهاتف غير صالح';
+
+ @override
+ String get termsAndConditionsValidateMessage =>
+ 'موافقة علي الشروط والاحكام مطاوبة';
+
+ @override
+ String get update => 'تحديث';
+
+ @override
+ String get step => 'خطوة';
+
+ @override
+ String get forgetPasswordWithMark => 'نسيت كلمة المرور؟';
+
+ @override
+ String get showPassword => 'اظهار كلمة المرور';
+
+ @override
+ String get wrongEmailOrPassword =>
+ 'البريد الالكتروني او كلمة المرور غير صحيح';
+
+ @override
+ String get emailExist => 'البريد الالكتروني موجود بالفعل';
+
+ @override
+ String get phoneNumberExist => 'رقم الهاتف موجود بالفعل';
+
+ @override
+ String get next => 'التالي';
+
+ @override
+ String get back => 'السابق';
+
+ @override
+ String get search => 'بحث';
+
+ @override
+ String get searchByName => 'بحث بالاسم';
+
+ @override
+ String get searchByAssetNumber => 'بحث برقم الجهاز';
+
+ @override
+ String get address => 'العنوان';
+
+ @override
+ String get addressNotFound => 'لا يوجد عنوان';
+
+ @override
+ String get addressValidateMessage => 'العنوان مطلوب';
+
+ @override
+ String get dataNotFound => 'لا يوجد تاريخ';
+
+ @override
+ String get description => 'الوصف';
+
+ @override
+ String get descriptionNotFound => 'لا يوجد وصف';
+
+ @override
+ String get descriptionValidateMessage => 'الوصف مطلوب';
+
+ @override
+ String get edit => 'تعدل';
+
+ @override
+ String get emailNotFound => 'لا يوجد بريد الكتروني';
+
+ @override
+ String get from => 'من';
+
+ @override
+ String get endDateTimeMustBeGreaterThanStartDate =>
+ 'يجب أن يكون تاريخ ووقت الانتهاء أكبر من تاريخ البدء';
+
+ @override
+ String get signaturesAreRequired => 'التوقيعات مطلوبة';
+
+ @override
+ String get to => 'إلى';
+
+ @override
+ String get linkNotFound => 'لا يوجد رابط';
+
+ @override
+ String get nameNotFound => 'لا يوجد إسم';
+
+ @override
+ String get phoneNumberNotFound => 'لا يوجد رقم هاتف';
+
+ @override
+ String get title => 'عنوان';
+
+ @override
+ String get titleNotFound => 'لا يوجد عنوان';
+
+ @override
+ String get titleValidateMessage => 'العنوان مطلوب';
+
+ @override
+ String get urlNotFound => 'لا يوجد رابط';
+
+ @override
+ String get date => 'تاريخ';
+
+ @override
+ String get status => 'الحالة';
+
+ @override
+ String get code => 'كود';
+
+ @override
+ String get serialNumber => 'رقم تسلسلي';
+
+ @override
+ String get add => 'أضف';
+
+ @override
+ String get brand => 'ماركة';
+
+ @override
+ String get clearSearch => 'تنظيف البحث';
+
+ @override
+ String get closed => 'غلق';
+
+ @override
+ String get close => 'يغلق';
+
+ @override
+ String get scanOrPickAsset => 'امسح أو اختر الأصل';
+
+ @override
+ String get reScanOrPickAsset => 'أعد المسح أو اختر الأصل';
+
+ @override
+ String get camera => 'الكاميرا';
+
+ @override
+ String get gallery => 'المعرض';
+
+ @override
+ String get files => 'الملفات';
+
+ @override
+ String get attachFiles => 'إرفاق الملفات';
+
+ @override
+ String get activityStatus => 'حالة النشاط';
+
+ @override
+ String get takeAction => 'اتخذ إجراء';
+
+ @override
+ String get pleaseConfirmTheIssueHasBeenResolved =>
+ 'يرجى تأكيد أن المشكلة قد تم حلها';
+
+ @override
+ String get nurseAcknowledge => 'أقر بإكمال أمر العمل هذا';
+
+ @override
+ String get hours => 'ساعات';
+
+ @override
+ String get internal => 'داخلي';
+
+ @override
+ String get external => 'خارجي';
+
+ @override
+ String get addInternalActivity => 'إضافة نشاط داخلي';
+
+ @override
+ String get addExternalActivity => 'إضافة نشاط خارجي';
+
+ @override
+ String get remotely => 'عن بُعد';
+
+ @override
+ String get workshop => 'ورشة';
+
+ @override
+ String get abroad => 'خارج البلاد';
+
+ @override
+ String get create => 'انشاء';
+
+ @override
+ String get createServiceRequest => 'انشاء طلب خدمة';
+
+ @override
+ String get delete => 'مسح';
+
+ @override
+ String get details => 'تفاصيل';
+
+ @override
+ String get device => 'الجهاز';
+
+ @override
+ String get deviceArName => 'اسم الجهاز بعربي';
+
+ @override
+ String get sparePartDetails => 'تفاصيل قطع الغيار';
+
+ @override
+ String get attachQuotation => 'إرفاق العرض';
+
+ @override
+ String get addSparePartActivity => 'إضافة نشاط قطع الغيار';
+
+ @override
+ String get addActivity => 'إضافة نشاط';
+
+ @override
+ String get updateSparePartActivity => 'تحديث نشاط قطع غيار';
+
+ @override
+ String get deviceName => 'اسم الجهاز';
+
+ @override
+ String get deviceImages => 'صور الجهاز';
+
+ @override
+ String get deviceModel => 'مركة الجهاز';
+
+ @override
+ String get doYouWantToCreateAnotherSparePartRequest =>
+ 'هل تريد إنشاء طلب قطعة غيار آخر؟';
+
+ @override
+ String get sparePartActivitySuccess => 'تم إنشاء نشاط طلب قطعة الغيار بنجاح';
+
+ @override
+ String get deviceRequired => 'الجهاز مطلوب';
+
+ @override
+ String get deviceSN => 'رقم تسلسلي للجهاز';
+
+ @override
+ String get engineerName => 'اسم المهندس';
+
+ @override
+ String get engineerPhone => 'رقم المهندس';
+
+ @override
+ String get facebook => 'فيسبوك';
+
+ @override
+ String get faultDescription => 'تفاصيل الخطأ';
+
+ @override
+ String get general => 'تفاصيل العامة';
+
+ @override
+ String get hospital => 'العميل';
+
+ @override
+ String get hospitalRequired => 'العميل مطلوبة';
+
+ @override
+ String get hotLine => 'الخط ساخن';
+
+ @override
+ String get jobSheetNumber => 'رقم ورقة العمل';
+
+ @override
+ String get linkedIn => 'لينكد إن';
+
+ @override
+ String get maintenanceIssue => 'مشكلة الصيانة';
+
+ @override
+ String get maintenanceIssueRequired => 'مطلوب مسألة صيانة';
+
+ @override
+ String get maxImagesNumberIs5 => 'أقصى عدد للصورة 5';
+
+ @override
+ String get model => 'الطراز';
+
+ @override
+ String get modelNo => 'رقم النموذج';
+
+ @override
+ String get modelName => 'اسم النموذج';
+
+ @override
+ String get nameExist => 'الاسم موجود';
+
+ @override
+ String get newServiceRequest => 'طلب خدمة جديدة';
+
+ @override
+ String get newWord => 'جديد';
+
+ @override
+ String get noDateFound => 'لم يتم العثور على تاريخ';
+
+ @override
+ String get noDeviceFound => 'لم يتم العثور على جهاز';
+
+ @override
+ String get noHospitalFound => 'لا يوجد عميل';
+
+ @override
+ String get noModelFound => 'لم يتم العثور على نموذج';
+
+ @override
+ String get noServiceRequestFound => 'لم يتم العثور على طلب خدمة';
+
+ @override
+ String get noSnFound => 'لم يتم العثور على رقم تسلسلي';
+
+ @override
+ String get notifications => 'إشعارات';
+
+ @override
+ String get notificationsNotFound => 'لم يتم العثور على إشعارات';
+
+ @override
+ String get noUniteFound => 'لا توجد اقسام';
+
+ @override
+ String get ourWebsite => 'موقعنا';
+
+ @override
+ String get pickDevice => 'اختر الجهاز';
+
+ @override
+ String get pickHospital => 'اختر العميل';
+
+ @override
+ String get pickUnite => 'اختر القسم';
+
+ @override
+ String get policy => 'سياسة';
+
+ @override
+ String get fixed => 'تم الإصلاح';
+
+ @override
+ String get reason1 => 'لم يؤكد المهندس موعد الزيارة قبل ساعتين من وقت الطلب';
+
+ @override
+ String get reason2 => 'يقوم المهندس بتغيير موعد الزيارة دون التنسيق معي';
+
+ @override
+ String get reason3 => 'لم يحضر المهندس في التاريخ / الوقت';
+
+ @override
+ String get reason4 =>
+ 'لا يمكنني الوصول إلى المهندس عن طريق الهاتف أو الرسائل القصيرة';
+
+ @override
+ String get reason5 => 'هناك تأخير في إحضار قطع الغيار';
+
+ @override
+ String get repaired => 'تم الاصلاح';
+
+ @override
+ String get repeated => 'معاد';
+
+ @override
+ String get reportIssue => 'الإبلاغ عن مشكلة';
+
+ @override
+ String get requestInformation => 'معلومات طلب';
+
+ @override
+ String get searchBySn => 'البحث بالرقم التسلسلي';
+
+ @override
+ String get serviceRequestInformation => 'معلومات طلب الخدمة';
+
+ @override
+ String get serviceRequests => 'طلبات الخدمة';
+
+ @override
+ String get correctiveMaintenance => 'الصيانة التصحيحية';
+
+ @override
+ String get shareAntherIssue => 'مشاركة قضية أخرى';
+
+ @override
+ String get shareApp => 'مشاركة التطبيق';
+
+ @override
+ String get sn => 'الرقم التسلسلي';
+
+ @override
+ String get submit => 'إرسال';
+
+ @override
+ String get trackServiceRequest => 'تتبع طلبات الخدمة';
+
+ @override
+ String get twitter => 'تويتر';
+
+ @override
+ String get underRepair => 'تحت الاصلاح';
+
+ @override
+ String get unite => 'قسم';
+
+ @override
+ String get uniteRequired => 'القسم مطلوب';
+
+ @override
+ String get visitDate => 'تاريخ الزيارة';
+
+ @override
+ String get returnToService => 'Return to service';
+
+ @override
+ String get whatsApp => 'واتساب';
+
+ @override
+ String get workPerformed => 'العمل انجز';
+
+ @override
+ String get actualDate => 'تاريخ الفعلي';
+
+ @override
+ String get expectDate => 'التاريخ المتوقع';
+
+ @override
+ String get images => 'الصور';
+
+ @override
+ String get imagesRequired => 'الصور مطلوبة';
+
+ @override
+ String get noSerialNumberFound => 'لا يوجد رقم تسلسلي';
+
+ @override
+ String get notYet => 'ليس بعد';
+
+ @override
+ String get noVisitsFound => 'لا توجد زيارات';
+
+ @override
+ String get onHold => 'معلق';
+
+ @override
+ String get pickFromCamera => 'الالتقاط من الكاميرا';
+
+ @override
+ String get pickFromGallery => 'الاختيار من معرض صور';
+
+ @override
+ String get preventiveMaintenance => 'الصيانة الوقائية';
+
+ @override
+ String get preventiveMaintenanceUpdatedSuccessfully =>
+ 'تم تحديث الصيانة الوقائية بنجاح';
+
+ @override
+ String get regularVisits => 'زيارات منتظمة';
+
+ @override
+ String get regularVisitsUpdatedSuccessfully =>
+ 'تم تحديث الزيارات المنتظمة بنجاح';
+
+ @override
+ String get requiredStatus => 'الحالة المطلوبة';
+
+ @override
+ String get updatePreventiveMaintenance => 'تحديث الصيانة الوقائية';
+
+ @override
+ String get updateRegularVisits => 'تحديث الزيارات المنتظمة';
+
+ @override
+ String get updateVisitsGroup => 'تحديث مجموعة الزيارات';
+
+ @override
+ String get updatingDots => 'تحديث ...';
+
+ @override
+ String get expectedVisitDate => 'تاريخ الزيارة القادم';
+
+ @override
+ String get actualVisitDate => 'تاريخ الزيارة الفعلي';
+
+ @override
+ String get visitInformation => 'معلومات الزيارة';
+
+ @override
+ String get travelingHours => 'ساعات السفر';
+
+ @override
+ String get workingHours => 'ساعات العمل';
+
+ @override
+ String get contactStatus => 'تخصص';
+
+ @override
+ String get image => 'صورة';
+
+ @override
+ String get pickImage => 'اختر صورة';
+
+ @override
+ String get requiredImage => 'الصورة مطلوبة';
+
+ @override
+ String get taskStatus => 'حالة الطلب';
+
+ @override
+ String get activationAlert =>
+ 'الحساب قيد المراجعة يرجى الانتظار حتى يتم تفعيله';
+
+ @override
+ String get attachImage => 'إرفاق صورة';
+
+ @override
+ String get callLastSituation => 'اخر موقف للطلب';
+
+ @override
+ String get customer => 'العميل';
+
+ @override
+ String get editServiceReport => 'تعديل التقرير الخدمة';
+
+ @override
+ String get invoiceCode => 'كود الفتورة';
+
+ @override
+ String get invoiceNumber => 'رقم الفتورة';
+
+ @override
+ String get newServiceReport => 'تقرير خدمة جديد';
+
+ @override
+ String get number => 'رقم';
+
+ @override
+ String get operatingHours => 'ساعات العمل';
+
+ @override
+ String get partName => 'اسم القطعة';
+
+ @override
+ String get quantity => 'الكمية';
+
+ @override
+ String get installedQty => 'الكمية المثبتة';
+
+ @override
+ String get returnQty => 'كمية العودة';
+
+ @override
+ String get oracleNo => 'رقم أوراكل';
+
+ @override
+ String get reasons => 'الاسباب';
+
+ @override
+ String get addSparePartActionHeading => 'هل تريد إنشاء طلب قطع غيار آخر؟';
+
+ @override
+ String get reason => 'السبب';
+
+ @override
+ String get reportStatus => 'حالة التقرير';
+
+ @override
+ String get reportType => 'نوع التقرير';
+
+ @override
+ String get callId => 'رقم الطلب';
+
+ @override
+ String get requiredWord => 'مطلوب';
+
+ @override
+ String get assetType => 'نوع الاصل';
+
+ @override
+ String get workPreformed => 'العمل المنجز';
+
+ @override
+ String get orderWorkNumber => 'رقم طلب العمل';
+
+ @override
+ String get assignedEmployee => 'الموظف المعين';
+
+ @override
+ String get assetSN => 'رقم تسلسلي للاصل ';
+
+ @override
+ String get assetName => 'اسم الاصل';
+
+ @override
+ String get assetNumber => 'رقم الاصل';
+
+ @override
+ String get assetDetail => 'تفاصيل الأصل';
+
+ @override
+ String get requestDetail => 'تفاصيل الطلب';
+
+ @override
+ String get site => 'الموقع';
+
+ @override
+ String get maintenanceSituation => 'موقع الصيانه';
+
+ @override
+ String get currentSituation => 'الموقع الحالي';
+
+ @override
+ String get alert => 'تنبيه';
+
+ @override
+ String get duplicateAlert => 'تنبيه التكرار';
+
+ @override
+ String get duplicateAlertMessage => 'هل أنت متأكد أنك تريد تكرار الطلب؟';
+
+ @override
+ String get duplicateRequest => 'تكرار الطلب';
+
+ @override
+ String get comment => 'تعليق';
+
+ @override
+ String get updateServiceRequest => 'تعديل طلب الخدمة';
+
+ @override
+ String get repairLocation => 'موقع الإصلاح';
+
+ @override
+ String get travelingExpense => 'مصاريف التنقل';
+
+ @override
+ String get startDate => 'وقت البدء';
+
+ @override
+ String get startTime => 'وقت البدء';
+
+ @override
+ String get endTime => 'وقت الانتهاء';
+
+ @override
+ String get no => 'لا';
+
+ @override
+ String get fillDetails => 'يرجى ملء التفاصيل أدناه';
+
+ @override
+ String get yes => 'نعم';
+
+ @override
+ String get requestedQuantity => 'الكمية المطلوبة';
+
+ @override
+ String get deliveredQuantity => 'الكمية المسلّمة';
+
+ @override
+ String get endDate => 'وقت الانتهاء';
+
+ @override
+ String get destinationSite => 'موقع الوجهة';
+
+ @override
+ String get building => 'المبنى';
+
+ @override
+ String get floor => 'الطابق';
+
+ @override
+ String get department => 'القسم';
+
+ @override
+ String get room => 'غرفه';
+
+ @override
+ String get actions => 'اجراءات';
+
+ @override
+ String get deviceFiles => 'ملفات الجهاز';
+
+ @override
+ String get pickFromFiles => 'اختر من الملفات';
+
+ @override
+ String get requiredFile => 'الملف مطلوب';
+
+ @override
+ String get pickFile => 'اختر ملف';
+
+ @override
+ String get login => 'تسجيل الدخول';
+
+ @override
+ String get enterCredsToLogin => 'أدخل بياناتك الخاصة لتسجيل الدخول';
+
+ @override
+ String get signInToYour => 'Sign in to your';
+
+ @override
+ String get account => 'الحساب';
+
+ @override
+ String get forgotPassword => 'نسيت كلمة السر؟';
+
+ @override
+ String get username => 'اسم المستخدم';
+
+ @override
+ String get requiredField => 'الحقل مطلوب';
+
+ @override
+ String get passwordLengthMessage =>
+ 'يجب أن تتكون كلمة السر من 6 خانات على الأقل';
+
+ @override
+ String get overview => 'نظرة عامة';
+
+ @override
+ String get request => 'طلب';
+
+ @override
+ String get assets => 'الأصول';
+
+ @override
+ String get contact => 'اتصال';
+
+ @override
+ String get welcome => 'مرحبا،';
+
+ @override
+ String get openWhatsapp => 'الإنتقال الى الواتس اب';
+
+ @override
+ String get timeAndDuration => 'الوقت والمدة';
+
+ @override
+ String get assetsCondition => 'حالة الأصول';
+
+ @override
+ String get attachmentsAcknowledge => 'إقرار & المرفقات';
+
+ @override
+ String get up_and_running => 'قيد التشغيل';
+
+ @override
+ String get partially_down => 'معطل جزئيًا';
+
+ @override
+ String get needAVisit => 'بحاجة إلى زيارة';
+
+ @override
+ String get fixedRemotely => 'تم الإصلاح عن بُعد';
+
+ @override
+ String get iHaveArrived => 'لقد وصلت';
+
+ @override
+ String get updateAssetDetails => 'تحديث تفاصيل الأصل';
+
+ @override
+ String get equipment_status => 'حالة المعدات';
+
+ @override
+ String get failureReason => 'سبب الفشل';
+
+ @override
+ String get visitDateAndTime => 'تاريخ ووقت الزيارة';
+
+ @override
+ String get markAsFixed => 'تحديد كإصلاح';
+
+ @override
+ String get fully_down => 'معطل تمامًا';
+
+ @override
+ String get solutions => 'الحلول';
+
+ @override
+ String get callUs => 'إتصل بنا';
+
+ @override
+ String get liveChat => 'محادثة حية';
+
+ @override
+ String get feedBack => 'تعليقات';
+
+ @override
+ String get gasRefillRequest => 'طلب إعادة تعبئة غاز';
+
+ @override
+ String get transferRequest => 'طلب نقل';
+
+ @override
+ String get serviceRequest => 'طلب خدمة';
+
+ @override
+ String get newGasRefillRequest => 'طلب إعادة تعبئة غاز جديد';
+
+ @override
+ String get newTransferRequest => 'طلب نقل جديد';
+
+ @override
+ String get submitRequest => 'تأكيد الطلب';
+
+ @override
+ String get select => 'إختر';
+
+ @override
+ String get gasType => 'نوع الغاز';
+
+ @override
+ String get cylinderType => 'نوع الأسطوانة';
+
+ @override
+ String get cylinderSize => 'حجم الأسطوانة';
+
+ @override
+ String get httpError => 'خطأ فشل الطلب';
+
+ @override
+ String get tryAgain => 'أعد المحاولة';
+
+ @override
+ String get onlyNumbers => 'يسمح بإدخال الأرقام فقط';
+
+ @override
+ String get youHaveToSelect => 'يجب عليك إختيار';
+
+ @override
+ String get youHaveToAddRequests => 'يجب إضافة طلبات';
+
+ @override
+ String get createdSuccessfully => 'إكتمل الطلب بنجاح';
+
+ @override
+ String get failedToCompleteRequest => 'فشل إتمام الطلب';
+
+ @override
+ String get assetNo => 'رقم الجهاز';
+
+ @override
+ String get manufacture => 'صناعة';
+
+ @override
+ String get serialNo => 'رقم التسلسلي';
+
+ @override
+ String get pickAsset => 'إختر جهاز';
+
+ @override
+ String get filter => 'تصفية';
+
+ @override
+ String get firstAction => 'الإجراء الأول';
+
+ @override
+ String get rejectionReason => 'سبب الرفض';
+
+ @override
+ String get workOrder => 'طلب عمل';
+
+ @override
+ String get cmDetails => 'تفاصيل الصيانة التصحيحية';
+
+ @override
+ String get assetInformation => 'معلومات الأصول';
+
+ @override
+ String get callDetails => 'تفاصيل الاتصال';
+
+ @override
+ String get assetStatus => 'حالة الأصول';
+
+ @override
+ String get workOrders => 'طلبات عمل';
+
+ @override
+ String get viewWorkOrder => 'عرض جميع طلبات العمل';
+
+ @override
+ String get createWorkOrder => 'إنشاء طلب عمل';
+
+ @override
+ String get serviceDetails => 'تفاصيل الخدمات';
+
+ @override
+ String get setVisitDate => 'تحديد تاريخ الزيارة';
+
+ @override
+ String get verifyArrival => 'التحقق من الوصول';
+
+ @override
+ String get selectWorkOrder => 'اختر أمر العمل';
+
+ @override
+ String get scanQr => 'مسح رمز QR';
+
+ @override
+ String get scanQrDetail => 'امسح رمز الاستجابة السريعة للجهاز';
+
+ @override
+ String get askRequester => 'اطلب من مقدم الطلب التحقق';
+
+ @override
+ String get askRequesterDetail =>
+ 'اطلب من مقدم الطلب التحقق من وصولك من خلال تطبيق Atoms.';
+
+ @override
+ String get askOtp => 'اطلب رمز OTP من مقدم الطلب';
+
+ @override
+ String get askOtpDetail => 'اطلب رمز OTP من مقدم الطلب للتحقق من وصولك';
+
+ @override
+ String get takeDevicePhoto => 'التقط صورة للجهاز';
+
+ @override
+ String get takeDevicePhotoDetail => 'التقط صورة الجهاز من الموقع';
+
+ @override
+ String get lastSituationStatus => 'حالة الوضع الأخير';
+
+ @override
+ String get priority => 'أولوية الطلب';
+
+ @override
+ String get equipmentStatus => 'حالة المعدات';
+
+ @override
+ String get requestSparePart => 'طلب قطعة غيار';
+
+ @override
+ String get callResponse => 'استجابة الاتصال';
+
+ @override
+ String get selectAction => 'اختر إجراء';
+
+ @override
+ String get requestSparePartForYourAsset => 'اطلب قطعة غيار لأصلك';
+
+ @override
+ String get addNewActivity => 'أضف نشاطًا جديدًا';
+
+ @override
+ String get addNewActivityToYourWorkOrder =>
+ 'أضف نشاطًا جديدًا إلى أمر العمل الخاص بك';
+
+ @override
+ String get markAsCompleted => 'وضع علامة كمكتمل';
+
+ @override
+ String get cmNumber => 'رقم الصيانة التصحيحية';
+
+ @override
+ String get jopStatus => 'حالة الوظيفة';
+
+ @override
+ String get callComments => 'تعليقات الطلب';
+
+ @override
+ String get comments => 'تعليقات';
+
+ @override
+ String get recordVoice => 'تسجيل صوت';
+
+ @override
+ String get gasRefillDetails => 'تفاصيل اعادة تعبئة غاز';
+
+ @override
+ String get updateRequest => 'تعديل الطلب';
+
+ @override
+ String get gasRefill => 'اعادة تعبئة غاز';
+
+ @override
+ String get assetDetails => 'تفاصيل الجهاز';
+
+ @override
+ String get receiverName => 'اسم المستلم';
+
+ @override
+ String get receiverDetails => 'تفاصيل المستقبل';
+
+ @override
+ String get requestedThrough => 'الطلب عبر';
+
+ @override
+ String get typeOfRequest => 'نوع الطلب';
+
+ @override
+ String get deviceTransfer => 'نقل جهاز ';
+
+ @override
+ String get deviceTransferRequest => 'طلب نقل جهاز ';
+
+ @override
+ String get deviceTransferDetails => 'تفاصيل نقل جهاز ';
+
+ @override
+ String get transferDetails => 'تفاصيل النقل';
+
+ @override
+ String get senderDetails => 'تفاصيل المرسل';
+
+ @override
+ String get searchBy => 'إبحث بـ';
+
+ @override
+ String get searchByDesc => 'إبحث بأي من المعايير التالية';
+
+ @override
+ String get location => 'الموقع';
+
+ @override
+ String get supplier => 'المزود';
+
+ @override
+ String get supplierEngineer => 'Supplier Engineer';
+
+ @override
+ String get md => 'تعريف النموذج';
+
+ @override
+ String get snNumber => 'الرقم التسلسلي';
+
+ @override
+ String get snNo => 'الرقم التسلسلي';
+
+ @override
+ String get oracleCode => 'رمز اوراكل';
+
+ @override
+ String get byDepartment => 'حسب القسم';
+
+ @override
+ String get bySite => 'حسب الموقع';
+
+ @override
+ String get applyFilter => 'تصفية';
+
+ @override
+ String get pmDateRange => 'النطاق الزمني للصيانة الوقائية';
+
+ @override
+ String get pickDate => 'إختر تاريخ';
+
+ @override
+ String get verify => 'تحقق';
+
+ @override
+ String get resend => 'إعادة الإرسال';
+
+ @override
+ String get resendIn => 'إعادة الإرسال خلال';
+
+ @override
+ String get havingTroubleReceivingOtp => 'تواجه صعوبة في استلام رمز التحقق؟';
+
+ @override
+ String get askOtpFromRequester => 'طلب رمز التحقق من مقدم الطلب';
+
+ @override
+ String get checkOutOtherMethods => 'اطلع على طرق أخرى.';
+
+ @override
+ String get otpSentToNumber => 'تم إرسال رمز التحقق إلى الرقم';
+
+ @override
+ String get requestDetails => 'تفاصيل الطلب';
+
+ @override
+ String get historyLogs => 'سجلات التاريخ';
+
+ @override
+ String get pickTime => 'اختر الوقت';
+
+ @override
+ String get readCompleteThread => 'اقرأ الموضوع بالكامل';
+
+ @override
+ String get pickADate => 'إختر تاريخ';
+
+ @override
+ String get firstActionStatus => 'حالة الإجراء الأول';
+
+ @override
+ String get loanAvailability => 'توافر القرض';
+
+ @override
+ String get save => 'حفظ';
+
+ @override
+ String get serviceType => 'نوع الخدمة';
+
+ @override
+ String get assistantEmployee => 'موظف مساعد';
+
+ @override
+ String get assignAssistant => 'تعيين مساعد';
+
+ @override
+ String get partNo => 'الجزء رقم';
+
+ @override
+ String get partNumber => 'الجزء رقم';
+
+ @override
+ String get engSign => 'توقيع المهندس';
+
+ @override
+ String get requesterName => 'اسم الطالب';
+
+ @override
+ String get updateWorkOrder => 'تعديل طلب العمل';
+
+ @override
+ String get createPreventiveMaintenanceRequest => 'إنشاء طلب صيانة وقائية';
+
+ @override
+ String get createNewRequest => 'إنشاء طلب جديد';
+
+ @override
+ String get calendar => 'التقويم';
+
+ @override
+ String get helpCenter => 'مركز المساعدة';
+
+ @override
+ String get rateUs => 'قيمنا';
+
+ @override
+ String get settings => ' الاعدادات';
+
+ @override
+ String get reportBg => 'ابلاغ عن خطا';
+
+ @override
+ String get whatsNew => 'ماهو الجديد';
+
+ @override
+ String get logout => 'خروج';
+
+ @override
+ String get arabic => 'عربي';
+
+ @override
+ String get lightTheme => 'وضع النهاري';
+
+ @override
+ String get myProfile => 'الملف الشخصي';
+
+ @override
+ String get viewDetails => 'عرض التفاصيل';
+
+ @override
+ String get requests => 'طلبات';
+
+ @override
+ String get highPriority => 'اولوية عالية';
+
+ @override
+ String get newRequests => ' طلبات\nجديدة';
+
+ @override
+ String get completed => 'مكتملة';
+
+ @override
+ String get overdue => 'Overdue';
+
+ @override
+ String get lowPriority => 'اولوية منخفضة';
+
+ @override
+ String get newR => 'New';
+
+ @override
+ String get inProgress => 'قيد التنفيذ';
+
+ @override
+ String get open => 'مفتوح';
+
+ @override
+ String get requestType => 'نوع الطلب';
+
+ @override
+ String get requestNo => 'رقم الطلب';
+
+ @override
+ String get assignedTo => 'تعيين الى';
+
+ @override
+ String get waitingForQuotation => 'في انتظار السؤال';
+
+ @override
+ String get gasRequest => 'طلب غاز';
+
+ @override
+ String get viewComments => 'عرض التعليقات';
+
+ @override
+ String get commentHere => 'علق هنا';
+
+ @override
+ String get nurseSignature => 'توقيع الممرض';
+
+ @override
+ String get ppmVisit => 'موعد زيارة الصيانة الوقائية';
+
+ @override
+ String get ppmRequest => 'طلب الصيانة الوقائية';
+
+ @override
+ String get timer => 'مؤقت';
+
+ @override
+ String get deviceStatus => 'حالة الجهاز';
+
+ @override
+ String get addAsset => 'اضافة جهاز';
+
+ @override
+ String get calibrationDate => 'موعد المعايرة';
+
+ @override
+ String get asset => 'جهاز';
+
+ @override
+ String get addItem => 'اضافة عنصر';
+
+ @override
+ String get item => 'عنصر';
+
+ @override
+ String get measuredValue => 'القيمة المقاسه';
+
+ @override
+ String get sureExit => ' هل انت متاكد من الخروج؟';
+
+ @override
+ String get daily => 'يومي';
+
+ @override
+ String get weekly => 'اسبوعي';
+
+ @override
+ String get monthly => 'شهري';
+
+ @override
+ String get confirmEngineerArrival => 'تأكيد وصول المهندس';
+
+ @override
+ String get confirmingEngineerArrivalAction =>
+ 'من خلال هذا الإجراء، أنت تؤكد وصول المهندس';
+
+ @override
+ String get myShift => 'ورديتي';
+
+ @override
+ String get myTeamRequest => 'طلب فريقي';
+
+ @override
+ String get sunToThurs => 'الاحد الى الخميس';
+
+ @override
+ String get requestGasRefill => 'طلب اعادة تعبئة غاز';
+
+ @override
+ String get trackGasRefill => 'تتبع طلبات اعادة تعبئة غاز';
+
+ @override
+ String get trackAssetTransfer => 'تتبع نقل اجهزة';
+
+ @override
+ String get total => 'مجموع';
+
+ @override
+ String get noDataFound => 'No Data Found';
+
+ @override
+ String get allRequests => 'كل الطلبات';
+
+ @override
+ String get allWorkOrder => 'جميع أوامر العمل';
+
+ @override
+ String get requestStatus => 'حالة الطلب';
+
+ @override
+ String get createSubWorkOrder => 'إنشاء أمر عمل فرعي';
+
+ @override
+ String get mrNumber => 'MR Number';
+
+ @override
+ String get vendorEng => 'المهندس المزود';
+
+ @override
+ String get vendorName => 'اسم المزود';
+
+ @override
+ String get reset => 'اعادة تعيين';
+
+ @override
+ String get solution => 'الحل';
+
+ @override
+ String get technicalComment => 'تعليق تقني';
+
+ @override
+ String get recentActivities => 'الأنشطة الحالية';
+
+ @override
+ String get activities => 'الأنشطة';
+
+ @override
+ String get provideQrCodeToEngineer =>
+ 'قدم رمز الاستجابة السريعة أدناه للمهندس للتحقق من وصوله';
+
+ @override
+ String get qrCode => 'رمز الاستجابة السريعة';
+
+ @override
+ String get createNewActivity => 'إنشاء نشاط جديد';
+
+ @override
+ String get selectActivityType => 'اختر نوع النشاط';
+
+ @override
+ String get sparePartRequest => 'طلب قطع غيار';
+
+ @override
+ String get sparePartRequestDetail =>
+ 'اطلب من مقدم الطلب التحقق من وصولك من خلال تطبيق Atoms.';
+
+ @override
+ String get maintenanceRequest => 'طلب صيانة';
+
+ @override
+ String get assetToBeRetired => 'الأصل الذي سيتم إخراجه من الخدمة';
+
+ @override
+ String get problemDesc => 'وصف المشكلة';
+
+ @override
+ String get source => 'المصدر';
+
+ @override
+ String get costCodeName => 'اسم رمز التكلفة';
+
+ @override
+ String get installationDate => 'تاريخ التثبيت';
+
+ @override
+ String get nextPmDate => 'تاريخ الصيانة الوقائية التالي';
+
+ @override
+ String get lastPmDate => 'موعد الزيارة الوقائية الأخيرة';
+
+ @override
+ String get assetScan => 'مسح الجهاز';
+
+ @override
+ String get pickManually => 'اختر يدويا';
+
+ @override
+ String get doYouWantToSetReminder => 'هل تريد تعيين تذكير؟';
+
+ @override
+ String get youCanSetTheReminderInAlarmToRemindYouBeforeVisit =>
+ 'يمكنك تعيين التذكير في المنبه لتذكيرك قبل الزيارة. الرجاء اختيار الوقت أدناه';
+
+ @override
+ String get setReminder => 'تعيين التذكير';
+
+ @override
+ String get searchAsset => 'ابحث عن جهاز';
+
+ @override
+ String get newPassword => 'كلمة المرور الجديدة';
+
+ @override
+ String get resetPassword => 'إعادة تعيين كلمة المرور';
+
+ @override
+ String get otpVerification => 'التحقق من OTP';
+
+ @override
+ String get pleaseEnterTheOtpSentTo => 'يرجى إدخال OTP المرسل إلى';
+
+ @override
+ String get pleaseEnterTheNewPassword => 'يرجى إدخال كلمة المرور الجديدة';
+
+ @override
+ String get markAttendance => 'تسجيل الحضور';
+
+ @override
+ String get selectMethodToMarkAttendance => 'اختر الطريقة لتسجيل الحضور';
+
+ @override
+ String get employeeIdIsRequired => 'رقم الموظف مطلوب';
+
+ @override
+ String get successful => 'Successful';
+
+ @override
+ String get youHaveSuccessfullyMarkedYourAttendance =>
+ 'لقد قمت بتسجيل حضورك بنجاح';
+
+ @override
+ String get swipeTypeName => 'اسم نوع السحب';
+
+ @override
+ String get userName => 'اسم المستخدم';
+
+ @override
+ String get siteName => 'اسم الموقع';
+
+ @override
+ String get pointName => 'اسم النقطة';
+
+ @override
+ String get checkIn => 'تسجيل الدخول';
+
+ @override
+ String get pmWo => 'أمر العمل الوقائي';
+
+ @override
+ String get recurrentWo => 'أمر العمل المتكرر';
+
+ @override
+ String get taskNo => 'رقم المهمة';
+
+ @override
+ String get assignEngineer => 'تعيين مهندس';
+
+ @override
+ String get scheduledDate => 'التاريخ المجدول';
+
+ @override
+ String get complete => 'اكتمل';
+
+ @override
+ String get createdDate => 'تاريخ الإنشاء';
+
+ @override
+ String get employeeId => 'رقم الموظف';
+
+ @override
+ String get extensionNo => 'رقم التمديد';
+
+ @override
+ String get fail => 'فشل';
+
+ @override
+ String get pass => 'نجاح';
+
+ @override
+ String get pmPlanNo => 'رقم خطة الصيانة الوقائية';
+
+ @override
+ String get executionTimeFrame => 'إطار زمني للتنفيذ';
+
+ @override
+ String get pmTestResult => 'نتيجة اختبار الصيانة الوقائية';
+
+ @override
+ String get actualVisit => 'الزيارة الفعلية';
+
+ @override
+ String get totalWorkingTime => 'إجمالي وقت العمل';
+
+ @override
+ String get typeOfPm => 'نوع الصيانة الوقائية';
+
+ @override
+ String get attachments => 'المرفقات';
+
+ @override
+ String get supplierName => 'اسم المورد';
+
+ @override
+ String get externalEngineerName => 'اسم المهندس الخارجي';
+
+ @override
+ String get telephone => 'الهاتف';
+
+ @override
+ String get task => 'مهمة';
+
+ @override
+ String get taskType => 'نوع المهمة';
+
+ @override
+ String get createTaskRequest => 'إنشاء طلب مهمة';
+
+ @override
+ String get taskRequest => 'طلب مهمة';
+
+ @override
+ String get completedActions => 'الإجراءات المكتملة';
+
+ @override
+ String get impactStatus => 'حالة التأثير';
+
+ @override
+ String get installationSite => 'موقع التركيب';
+
+ @override
+ String get installationBuilding => 'مبنى التركيب';
+
+ @override
+ String get installationFloor => 'طابق التركيب';
+
+ @override
+ String get installationDepartment => 'قسم التركيب';
+
+ @override
+ String get acknowledge => 'إقرار';
+
+ @override
+ String get transferAsset => 'نقل الأصل';
+
+ @override
+ String get createAssetTransferRequest => 'إنشاء طلب نقل أصل';
+
+ @override
+ String get arrivedDate => 'تاريخ الوصول';
+
+ @override
+ String get closedDate => 'تاريخ الإغلاق';
+
+ @override
+ String get transferType => 'نوع النقل';
+
+ @override
+ String get since => 'منذ';
+
+ @override
+ String get rejectionDetails => 'تفاصيل الرفض';
+
+ @override
+ String get part => 'جزء';
+
+ @override
+ String get creationDate => 'تاريخ الإنشاء';
+
+ @override
+ String get createdBy => 'تم الإنشاء بواسطة';
+
+ @override
+ String get trNumber => 'رقم طلب النقل';
+
+ @override
+ String get workOrderDetails => 'تفاصيل أمر العمل';
+
+ @override
+ String get woNumber => 'رقم أمر العمل';
+
+ @override
+ String get contactInfo => 'معلومات الاتصال';
+
+ @override
+ String get destinationBuilding => 'مبنى الوجهة';
+
+ @override
+ String get destinationFloor => 'طابق الوجهة';
+
+ @override
+ String get destinationDepartment => 'قسم الوجهة';
+}
diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart
new file mode 100644
index 00000000..aedaaea0
--- /dev/null
+++ b/lib/l10n/app_localizations_en.dart
@@ -0,0 +1,1712 @@
+// ignore: unused_import
+import 'package:intl/intl.dart' as intl;
+import 'app_localizations.dart';
+
+// ignore_for_file: type=lint
+
+/// The translations for English (`en`).
+class AppLocalizationsEn extends AppLocalizations {
+ AppLocalizationsEn([String locale = 'en']) : super(locale);
+
+ @override
+ String get serverErrorMessage => 'Currently, Service not available';
+
+ @override
+ String get failedRequestMessage => 'Failed to complete request';
+
+ @override
+ String get successfulRequestMessage => 'Request complete successfully';
+
+ @override
+ String get commentAdded => 'Comment Added';
+
+ @override
+ String get requestLockMessage => 'Wait until your request complete';
+
+ @override
+ String get cancel => 'Cancel';
+
+ @override
+ String get confirm => 'Confirm';
+
+ @override
+ String get notArrived => 'Not Arrived';
+
+ @override
+ String get arrived => 'Arrived';
+
+ @override
+ String get done => 'Done';
+
+ @override
+ String get exit => 'Exit';
+
+ @override
+ String get refreshQrCode => 'Refresh QR Code';
+
+ @override
+ String get exitAlert => 'Are you sure you want to exit?';
+
+ @override
+ String get assetRetiredPendingOpManagementApproval =>
+ 'Asset Retired. Pending OP Management Approval';
+
+ @override
+ String get assetRetirementRequestSubmittedSuccessfully =>
+ 'Asset retirement request submitted successfully';
+
+ @override
+ String get youMarkedThisIssueAsFixedWaitingForTheRequesterToConfirm =>
+ 'You marked this issue as fixed. Waiting for the requester to confirm';
+
+ @override
+ String get signOut => 'Sign Out';
+
+ @override
+ String get logoutAlert => 'Are you sure you want to Sign Out?';
+
+ @override
+ String get language => 'English';
+
+ @override
+ String get name => 'Name';
+
+ @override
+ String get email => 'Email';
+
+ @override
+ String get retirementType => 'Retirement Type';
+
+ @override
+ String get assetSituation => 'Asset Situation';
+
+ @override
+ String get phoneNumber => 'Phone Number';
+
+ @override
+ String get password => 'Password';
+
+ @override
+ String get confirmPassword => 'Confirm Password';
+
+ @override
+ String get skipForLater => 'Skip For Later';
+
+ @override
+ String get signIn => 'Sign In';
+
+ @override
+ String get letSignInToAccount => 'Let’s sign in to your account';
+
+ @override
+ String get signUp => 'Sign Up';
+
+ @override
+ String get accept => 'Accept';
+
+ @override
+ String get reject => 'Reject';
+
+ @override
+ String get forgetPassword => 'Forget Password';
+
+ @override
+ String get acceptTermsAndConditions => 'Accept Terms And Conditions';
+
+ @override
+ String get emailValidateMessage => 'Not valid email';
+
+ @override
+ String get nameValidateMessage => 'name is required';
+
+ @override
+ String get passwordValidateMessage => 'at least 6 characters or numbers';
+
+ @override
+ String get confirmPasswordValidateMessage =>
+ 'Password and confirm password not match';
+
+ @override
+ String get phoneNumberValidateMessage => 'Not valid phone number';
+
+ @override
+ String get termsAndConditionsValidateMessage =>
+ 'Accept terms and conditions is required';
+
+ @override
+ String get update => 'Update';
+
+ @override
+ String get step => 'Step';
+
+ @override
+ String get forgetPasswordWithMark => 'Forget Password?';
+
+ @override
+ String get showPassword => 'show password';
+
+ @override
+ String get wrongEmailOrPassword => 'Wrong email or password';
+
+ @override
+ String get emailExist => 'Email exist';
+
+ @override
+ String get phoneNumberExist => 'Phone number exist';
+
+ @override
+ String get next => 'Next';
+
+ @override
+ String get back => 'Back';
+
+ @override
+ String get search => 'Search';
+
+ @override
+ String get searchByName => 'Search by name';
+
+ @override
+ String get searchByAssetNumber => 'Search by asset number';
+
+ @override
+ String get address => 'Address';
+
+ @override
+ String get addressNotFound => 'Address not found';
+
+ @override
+ String get addressValidateMessage => 'Address validateMessage';
+
+ @override
+ String get dataNotFound => 'Data not found';
+
+ @override
+ String get description => 'Description';
+
+ @override
+ String get descriptionNotFound => 'Description not found';
+
+ @override
+ String get descriptionValidateMessage => 'Description can\'t be empty';
+
+ @override
+ String get edit => 'Edit';
+
+ @override
+ String get emailNotFound => 'Email not found';
+
+ @override
+ String get from => 'From';
+
+ @override
+ String get endDateTimeMustBeGreaterThanStartDate =>
+ 'End Date time must be greater than start date';
+
+ @override
+ String get signaturesAreRequired => 'Signatures are required';
+
+ @override
+ String get to => 'To';
+
+ @override
+ String get linkNotFound => 'Link not found';
+
+ @override
+ String get nameNotFound => 'Name not found';
+
+ @override
+ String get phoneNumberNotFound => 'Phone number not found';
+
+ @override
+ String get title => 'Title';
+
+ @override
+ String get titleNotFound => 'Title not found';
+
+ @override
+ String get titleValidateMessage => 'Title Can\'t be empty';
+
+ @override
+ String get urlNotFound => 'URL not found';
+
+ @override
+ String get date => 'Date';
+
+ @override
+ String get status => 'Status';
+
+ @override
+ String get code => 'Code';
+
+ @override
+ String get serialNumber => 'Serial Number';
+
+ @override
+ String get add => 'Add';
+
+ @override
+ String get brand => 'manufacture';
+
+ @override
+ String get clearSearch => 'Clear Search';
+
+ @override
+ String get closed => 'Closed';
+
+ @override
+ String get close => 'Close';
+
+ @override
+ String get scanOrPickAsset => 'Scan or Pick Asset';
+
+ @override
+ String get reScanOrPickAsset => 'Re-Scan or Pick Asset';
+
+ @override
+ String get camera => 'Camera';
+
+ @override
+ String get gallery => 'Gallery';
+
+ @override
+ String get files => 'Files';
+
+ @override
+ String get attachFiles => 'Attach Files';
+
+ @override
+ String get activityStatus => 'Activity Status';
+
+ @override
+ String get takeAction => 'Take Action';
+
+ @override
+ String get pleaseConfirmTheIssueHasBeenResolved =>
+ 'Please confirm the issue has been resolved';
+
+ @override
+ String get nurseAcknowledge =>
+ 'I acknowledge the completion of this work order';
+
+ @override
+ String get hours => 'Hours';
+
+ @override
+ String get internal => 'Internal';
+
+ @override
+ String get external => 'External';
+
+ @override
+ String get addInternalActivity => 'Add Internal Activity';
+
+ @override
+ String get addExternalActivity => 'Add External Activity';
+
+ @override
+ String get remotely => 'Remotely';
+
+ @override
+ String get workshop => 'Workshop';
+
+ @override
+ String get abroad => 'Abroad';
+
+ @override
+ String get create => 'Create';
+
+ @override
+ String get createServiceRequest => 'Create Service Request';
+
+ @override
+ String get delete => 'Delete';
+
+ @override
+ String get details => 'Details';
+
+ @override
+ String get device => 'Device';
+
+ @override
+ String get deviceArName => 'Asset Ar Name';
+
+ @override
+ String get sparePartDetails => 'Spare Part Details';
+
+ @override
+ String get attachQuotation => 'Attach Quotation';
+
+ @override
+ String get addSparePartActivity => 'Add Spare Part Activity';
+
+ @override
+ String get addActivity => 'Add Activity';
+
+ @override
+ String get updateSparePartActivity => 'Update Spare Part Activity';
+
+ @override
+ String get deviceName => 'Asset Name';
+
+ @override
+ String get deviceImages => 'Asset Images';
+
+ @override
+ String get deviceModel => 'Asset Model';
+
+ @override
+ String get doYouWantToCreateAnotherSparePartRequest =>
+ 'Do you want to create another spare part request?';
+
+ @override
+ String get sparePartActivitySuccess =>
+ 'Spare Part Request activity has been created successfully';
+
+ @override
+ String get deviceRequired => 'Asset Required';
+
+ @override
+ String get deviceSN => 'Asset Serial Number';
+
+ @override
+ String get engineerName => 'Engineer Name';
+
+ @override
+ String get engineerPhone => 'Engineer Phone';
+
+ @override
+ String get facebook => 'facebook';
+
+ @override
+ String get faultDescription => 'Fault Description';
+
+ @override
+ String get general => 'General';
+
+ @override
+ String get hospital => 'Site';
+
+ @override
+ String get hospitalRequired => 'Site Required';
+
+ @override
+ String get hotLine => 'Hot Line';
+
+ @override
+ String get jobSheetNumber => 'Job Sheet Number';
+
+ @override
+ String get linkedIn => 'linkedIn';
+
+ @override
+ String get maintenanceIssue => 'Maintenance Issue';
+
+ @override
+ String get maintenanceIssueRequired => 'maintenance Issue Required';
+
+ @override
+ String get maxImagesNumberIs5 => 'Maximum Images Number Is 5';
+
+ @override
+ String get model => 'Model';
+
+ @override
+ String get modelNo => 'Model No.';
+
+ @override
+ String get modelName => 'Model Name';
+
+ @override
+ String get nameExist => 'Name Exist';
+
+ @override
+ String get newServiceRequest => 'New Service Request';
+
+ @override
+ String get newWord => 'New';
+
+ @override
+ String get noDateFound => 'No Date Found';
+
+ @override
+ String get noDeviceFound => 'No Asset Found';
+
+ @override
+ String get noHospitalFound => 'No Site Found';
+
+ @override
+ String get noModelFound => 'No Model Found';
+
+ @override
+ String get noServiceRequestFound => 'No Service Request Found';
+
+ @override
+ String get noSnFound => 'No SN Found';
+
+ @override
+ String get notifications => 'Notifications';
+
+ @override
+ String get notificationsNotFound => 'Notifications Not Found';
+
+ @override
+ String get noUniteFound => 'No Unit Found';
+
+ @override
+ String get ourWebsite => 'Our Website';
+
+ @override
+ String get pickDevice => 'Pick Asset';
+
+ @override
+ String get pickHospital => 'Pick Site';
+
+ @override
+ String get pickUnite => 'Pick Unit';
+
+ @override
+ String get policy => 'Policy';
+
+ @override
+ String get fixed => 'Fixed';
+
+ @override
+ String get reason1 =>
+ 'The engineer didn\'t confirm visit date with 2 hours from the request time';
+
+ @override
+ String get reason2 =>
+ 'The engineer change the visit date without coordination with me';
+
+ @override
+ String get reason3 => 'the engineer didn\'t attend on date/time';
+
+ @override
+ String get reason4 => 'I can\'t reach engineer by phone or SMS';
+
+ @override
+ String get reason5 => 'There is delay ib bringing the spare parts';
+
+ @override
+ String get repaired => 'Repaired';
+
+ @override
+ String get repeated => 'Repeated';
+
+ @override
+ String get reportIssue => 'Report a Issue';
+
+ @override
+ String get requestInformation => 'request Information';
+
+ @override
+ String get searchBySn => 'Search By Sn';
+
+ @override
+ String get serviceRequestInformation => 'Service Request Information';
+
+ @override
+ String get serviceRequests => 'Service Requests';
+
+ @override
+ String get correctiveMaintenance => 'Corrective Maintenance';
+
+ @override
+ String get shareAntherIssue => 'share Another Issue';
+
+ @override
+ String get shareApp => 'Share App';
+
+ @override
+ String get sn => 'SN';
+
+ @override
+ String get submit => 'Submit';
+
+ @override
+ String get trackServiceRequest => 'Track Service Requests';
+
+ @override
+ String get twitter => 'Twitter';
+
+ @override
+ String get underRepair => 'Under Repair';
+
+ @override
+ String get unite => 'Unit';
+
+ @override
+ String get uniteRequired => 'Unit Required';
+
+ @override
+ String get visitDate => 'Visit Date';
+
+ @override
+ String get returnToService => 'Return to service';
+
+ @override
+ String get whatsApp => 'WhatsApp';
+
+ @override
+ String get workPerformed => 'Work Performed';
+
+ @override
+ String get actualDate => 'Actual Date';
+
+ @override
+ String get expectDate => 'Expect Date';
+
+ @override
+ String get images => 'Images';
+
+ @override
+ String get imagesRequired => 'Images Required';
+
+ @override
+ String get noSerialNumberFound => 'No Serial Number Found';
+
+ @override
+ String get notYet => 'Not Yet';
+
+ @override
+ String get noVisitsFound => 'No Visits Found';
+
+ @override
+ String get onHold => 'On Hold';
+
+ @override
+ String get pickFromCamera => 'Pick From Camera';
+
+ @override
+ String get pickFromGallery => 'Pick From Gallery';
+
+ @override
+ String get preventiveMaintenance => 'Preventive Maintenance';
+
+ @override
+ String get preventiveMaintenanceUpdatedSuccessfully =>
+ 'Preventive Maintenance Updated Successfully';
+
+ @override
+ String get regularVisits => 'Regular Visits';
+
+ @override
+ String get regularVisitsUpdatedSuccessfully =>
+ 'Regular Visits Updated Successfully';
+
+ @override
+ String get requiredStatus => 'Required Status';
+
+ @override
+ String get updatePreventiveMaintenance => 'Update Preventive Maintenance';
+
+ @override
+ String get updateRegularVisits => 'Update Regular Visits';
+
+ @override
+ String get updateVisitsGroup => 'Update Visits Group';
+
+ @override
+ String get updatingDots => 'Updating ...';
+
+ @override
+ String get expectedVisitDate => 'Next Visit Date';
+
+ @override
+ String get actualVisitDate => 'Actual Visit Date';
+
+ @override
+ String get visitInformation => 'Visit Information';
+
+ @override
+ String get travelingHours => 'Traveling Hours';
+
+ @override
+ String get workingHours => 'Working Hours';
+
+ @override
+ String get contactStatus => 'Assigned To';
+
+ @override
+ String get image => 'Image';
+
+ @override
+ String get pickImage => 'Pick Image';
+
+ @override
+ String get requiredImage => 'Image Required';
+
+ @override
+ String get taskStatus => 'Task Status';
+
+ @override
+ String get activationAlert =>
+ 'Account under reviewing please wait until be activated';
+
+ @override
+ String get attachImage => 'Attach Image';
+
+ @override
+ String get callLastSituation => 'Call\'s Last Situation';
+
+ @override
+ String get customer => 'Customer';
+
+ @override
+ String get editServiceReport => 'Edit Work Order';
+
+ @override
+ String get invoiceCode => 'Invoice Code';
+
+ @override
+ String get invoiceNumber => 'Invoice Number';
+
+ @override
+ String get newServiceReport => 'New Work Order';
+
+ @override
+ String get number => 'Number';
+
+ @override
+ String get operatingHours => 'Operating Hours';
+
+ @override
+ String get partName => 'Part Name';
+
+ @override
+ String get quantity => 'Quantity';
+
+ @override
+ String get installedQty => 'Installed Quantity';
+
+ @override
+ String get returnQty => 'Return Quantity';
+
+ @override
+ String get oracleNo => 'Oracle No.';
+
+ @override
+ String get reasons => 'Reasons';
+
+ @override
+ String get addSparePartActionHeading =>
+ 'Do you want to create another spare part request?';
+
+ @override
+ String get reason => 'Reason';
+
+ @override
+ String get reportStatus => 'Report Status';
+
+ @override
+ String get reportType => 'Report Type';
+
+ @override
+ String get callId => 'Call Id';
+
+ @override
+ String get requiredWord => 'required';
+
+ @override
+ String get assetType => 'Asset Type';
+
+ @override
+ String get workPreformed => 'Work Preformed';
+
+ @override
+ String get orderWorkNumber => 'Order Work Number';
+
+ @override
+ String get assignedEmployee => 'Assigned Employee';
+
+ @override
+ String get assetSN => 'Asset S.N';
+
+ @override
+ String get assetName => 'Asset Name';
+
+ @override
+ String get assetNumber => 'Asset Number';
+
+ @override
+ String get assetDetail => 'Asset Detail';
+
+ @override
+ String get requestDetail => 'Request Details';
+
+ @override
+ String get site => 'Site';
+
+ @override
+ String get maintenanceSituation => 'Maintenance Situation';
+
+ @override
+ String get currentSituation => 'Current Situation';
+
+ @override
+ String get alert => 'Alert';
+
+ @override
+ String get duplicateAlert => 'Duplicate Alert';
+
+ @override
+ String get duplicateAlertMessage =>
+ 'Are you sure you want to duplicate request?';
+
+ @override
+ String get duplicateRequest => 'Duplicate Request';
+
+ @override
+ String get comment => 'Comment';
+
+ @override
+ String get updateServiceRequest => 'Update Service Request';
+
+ @override
+ String get repairLocation => 'Repair Location';
+
+ @override
+ String get travelingExpense => 'Traveling Expense';
+
+ @override
+ String get startDate => 'Start Date';
+
+ @override
+ String get startTime => 'Start Time';
+
+ @override
+ String get endTime => 'End Time';
+
+ @override
+ String get no => 'No';
+
+ @override
+ String get fillDetails => 'Please fill the below details';
+
+ @override
+ String get yes => 'Yes';
+
+ @override
+ String get requestedQuantity => 'Requested Quantity';
+
+ @override
+ String get deliveredQuantity => 'Delivered Quantity';
+
+ @override
+ String get endDate => 'End Date';
+
+ @override
+ String get destinationSite => 'Destination Site';
+
+ @override
+ String get building => 'Building';
+
+ @override
+ String get floor => 'Floor';
+
+ @override
+ String get department => 'Department';
+
+ @override
+ String get room => 'Room';
+
+ @override
+ String get actions => 'Actions';
+
+ @override
+ String get deviceFiles => 'Asset Files';
+
+ @override
+ String get pickFromFiles => 'Pick From Files';
+
+ @override
+ String get requiredFile => 'File Required';
+
+ @override
+ String get pickFile => 'Pick File';
+
+ @override
+ String get login => 'Login';
+
+ @override
+ String get enterCredsToLogin => 'Enter your credential to login';
+
+ @override
+ String get signInToYour => 'Sign in to your';
+
+ @override
+ String get account => 'account';
+
+ @override
+ String get forgotPassword => 'Forgot Password?';
+
+ @override
+ String get username => 'Username';
+
+ @override
+ String get requiredField => 'Required Field';
+
+ @override
+ String get passwordLengthMessage => 'Password must has at least 6 characters';
+
+ @override
+ String get overview => 'Overview';
+
+ @override
+ String get request => 'Request';
+
+ @override
+ String get assets => 'Assets';
+
+ @override
+ String get contact => 'Contact';
+
+ @override
+ String get welcome => 'Welcome,';
+
+ @override
+ String get openWhatsapp => 'Open WhatsApp';
+
+ @override
+ String get timeAndDuration => 'Time and Duration';
+
+ @override
+ String get assetsCondition => 'Asset’s Condition';
+
+ @override
+ String get attachmentsAcknowledge => 'Attachments & Acknowledge';
+
+ @override
+ String get up_and_running => 'Up & Running';
+
+ @override
+ String get partially_down => 'Partially Down';
+
+ @override
+ String get needAVisit => 'Need a Visit';
+
+ @override
+ String get fixedRemotely => 'Fixed Remotely';
+
+ @override
+ String get iHaveArrived => 'I have arrived';
+
+ @override
+ String get updateAssetDetails => 'Update Asset Details';
+
+ @override
+ String get equipment_status => 'Equipment Status';
+
+ @override
+ String get failureReason => 'Failure Reason';
+
+ @override
+ String get visitDateAndTime => 'Visit Date & Time';
+
+ @override
+ String get markAsFixed => 'Mark as Fixed';
+
+ @override
+ String get fully_down => 'Fully Down';
+
+ @override
+ String get solutions => 'Solutions';
+
+ @override
+ String get callUs => 'Call Us';
+
+ @override
+ String get liveChat => 'Live Chat';
+
+ @override
+ String get feedBack => 'Feedback';
+
+ @override
+ String get gasRefillRequest => 'Gas Refill Request';
+
+ @override
+ String get transferRequest => 'Transfer Request';
+
+ @override
+ String get serviceRequest => 'Service Request';
+
+ @override
+ String get newGasRefillRequest => 'New Gas Refill Request';
+
+ @override
+ String get newTransferRequest => 'New Transfer Request';
+
+ @override
+ String get submitRequest => 'Submit Request';
+
+ @override
+ String get select => 'Select';
+
+ @override
+ String get gasType => 'Gas Type';
+
+ @override
+ String get cylinderType => 'Cylinder Type';
+
+ @override
+ String get cylinderSize => 'Cylinder Size';
+
+ @override
+ String get httpError => 'Error Request Failed';
+
+ @override
+ String get tryAgain => 'Try Again';
+
+ @override
+ String get onlyNumbers => 'Only Numbers Allowed';
+
+ @override
+ String get youHaveToSelect => 'You have to select';
+
+ @override
+ String get youHaveToAddRequests => 'You have to add requests';
+
+ @override
+ String get createdSuccessfully => 'Created successfully';
+
+ @override
+ String get failedToCompleteRequest => 'Failed to complete request';
+
+ @override
+ String get assetNo => 'Asset No';
+
+ @override
+ String get manufacture => 'Manufacture';
+
+ @override
+ String get serialNo => 'Serial No';
+
+ @override
+ String get pickAsset => 'Pick Asset';
+
+ @override
+ String get filter => 'Filter';
+
+ @override
+ String get firstAction => 'First Action';
+
+ @override
+ String get rejectionReason => 'Rejection Reason';
+
+ @override
+ String get workOrder => 'Work Order';
+
+ @override
+ String get cmDetails => 'CM Details';
+
+ @override
+ String get assetInformation => 'Asset Information';
+
+ @override
+ String get callDetails => 'Call Details';
+
+ @override
+ String get assetStatus => 'Asset Status';
+
+ @override
+ String get workOrders => 'Work Orders';
+
+ @override
+ String get viewWorkOrder => 'View All Work Order';
+
+ @override
+ String get createWorkOrder => 'Create Work Order';
+
+ @override
+ String get serviceDetails => 'Service Details';
+
+ @override
+ String get setVisitDate => 'Set Date Of Visit';
+
+ @override
+ String get verifyArrival => 'Verify Arrival';
+
+ @override
+ String get selectWorkOrder => 'Select Work Order';
+
+ @override
+ String get scanQr => 'Scan QR';
+
+ @override
+ String get scanQrDetail => 'Scan QR Code of the device';
+
+ @override
+ String get askRequester => 'Ask Requester to Verify';
+
+ @override
+ String get askRequesterDetail =>
+ 'Ask requester to verify your arrival through Atoms Application.';
+
+ @override
+ String get askOtp => 'Ask OTP From Requester';
+
+ @override
+ String get askOtpDetail => 'Ask OTP from requester to verify you arrival';
+
+ @override
+ String get takeDevicePhoto => 'Take Device Photo';
+
+ @override
+ String get takeDevicePhotoDetail =>
+ 'Take the photo of the device from location';
+
+ @override
+ String get lastSituationStatus => 'Last Situation Status';
+
+ @override
+ String get priority => 'Request Priority';
+
+ @override
+ String get equipmentStatus => 'Equipment Status';
+
+ @override
+ String get requestSparePart => 'Request Spare Part';
+
+ @override
+ String get callResponse => 'Call Response';
+
+ @override
+ String get selectAction => 'Select Action';
+
+ @override
+ String get requestSparePartForYourAsset =>
+ 'Request spare part for your asset';
+
+ @override
+ String get addNewActivity => 'Add New Activity';
+
+ @override
+ String get addNewActivityToYourWorkOrder =>
+ 'Add new activity to your work order';
+
+ @override
+ String get markAsCompleted => 'Mark As Completed';
+
+ @override
+ String get cmNumber => 'CM Number';
+
+ @override
+ String get jopStatus => 'Jop Status';
+
+ @override
+ String get callComments => 'Call Comments';
+
+ @override
+ String get comments => 'Comments';
+
+ @override
+ String get recordVoice => 'Record Voice';
+
+ @override
+ String get gasRefillDetails => 'Gas Refill Details';
+
+ @override
+ String get updateRequest => 'Update Request';
+
+ @override
+ String get gasRefill => 'Gas Refill';
+
+ @override
+ String get assetDetails => 'Asset Details';
+
+ @override
+ String get receiverName => 'Receiver Name';
+
+ @override
+ String get receiverDetails => 'Receiver Details';
+
+ @override
+ String get requestedThrough => 'Requested Through';
+
+ @override
+ String get typeOfRequest => 'Type of Request';
+
+ @override
+ String get deviceTransfer => 'Device Transfer';
+
+ @override
+ String get deviceTransferRequest => 'Device Transfer Requests';
+
+ @override
+ String get deviceTransferDetails => 'Device Transfer Details';
+
+ @override
+ String get transferDetails => 'Transfer Details';
+
+ @override
+ String get senderDetails => 'Sender Details';
+
+ @override
+ String get searchBy => 'Search by';
+
+ @override
+ String get searchByDesc => 'Search by any of the following criteria';
+
+ @override
+ String get location => 'Location';
+
+ @override
+ String get supplier => 'Supplier';
+
+ @override
+ String get supplierEngineer => 'Supplier Engineer';
+
+ @override
+ String get md => 'MD';
+
+ @override
+ String get snNumber => 'SN Number';
+
+ @override
+ String get snNo => 'SN No.';
+
+ @override
+ String get oracleCode => 'Oracle Code';
+
+ @override
+ String get byDepartment => 'By Department';
+
+ @override
+ String get bySite => 'By Site';
+
+ @override
+ String get applyFilter => 'Apply Filter';
+
+ @override
+ String get pmDateRange => 'PM Date Range';
+
+ @override
+ String get pickDate => 'Pick Date';
+
+ @override
+ String get verify => 'Verify';
+
+ @override
+ String get resend => 'Resend';
+
+ @override
+ String get resendIn => 'Resend In';
+
+ @override
+ String get havingTroubleReceivingOtp => 'Having trouble receiving OTP?';
+
+ @override
+ String get askOtpFromRequester => 'Ask OTP From Requester';
+
+ @override
+ String get checkOutOtherMethods => 'Check out other methods.';
+
+ @override
+ String get otpSentToNumber => 'An OTP sent to the number';
+
+ @override
+ String get requestDetails => 'Request Details';
+
+ @override
+ String get historyLogs => 'History Logs';
+
+ @override
+ String get pickTime => 'Pick Time';
+
+ @override
+ String get readCompleteThread => 'Read Complete thread';
+
+ @override
+ String get pickADate => 'Pick a date';
+
+ @override
+ String get firstActionStatus => 'First Action Status';
+
+ @override
+ String get loanAvailability => 'Loan Availability';
+
+ @override
+ String get save => 'Save';
+
+ @override
+ String get serviceType => 'Service Type';
+
+ @override
+ String get assistantEmployee => 'Assistant Employee';
+
+ @override
+ String get assignAssistant => 'Assign Assistant';
+
+ @override
+ String get partNo => 'Part No.';
+
+ @override
+ String get partNumber => 'Part Number';
+
+ @override
+ String get engSign => 'Engineer Signature';
+
+ @override
+ String get requesterName => 'Requester Name';
+
+ @override
+ String get updateWorkOrder => 'Update Work Order';
+
+ @override
+ String get createPreventiveMaintenanceRequest =>
+ 'Create Preventive Maintenance Request';
+
+ @override
+ String get createNewRequest => 'Create New Request';
+
+ @override
+ String get calendar => 'Calendar';
+
+ @override
+ String get helpCenter => 'Help Center';
+
+ @override
+ String get rateUs => 'Rate Us';
+
+ @override
+ String get settings => 'Settings';
+
+ @override
+ String get reportBg => 'Report a bug';
+
+ @override
+ String get whatsNew => 'What\'s New';
+
+ @override
+ String get logout => 'Logout';
+
+ @override
+ String get arabic => 'Arabic';
+
+ @override
+ String get lightTheme => 'Light Theme';
+
+ @override
+ String get myProfile => 'My Profile';
+
+ @override
+ String get viewDetails => 'View Details';
+
+ @override
+ String get requests => 'Requests';
+
+ @override
+ String get highPriority => 'High Priority';
+
+ @override
+ String get newRequests => 'New';
+
+ @override
+ String get completed => 'Completed';
+
+ @override
+ String get overdue => 'Overdue';
+
+ @override
+ String get lowPriority => 'Low Priority';
+
+ @override
+ String get newR => 'New';
+
+ @override
+ String get inProgress => 'In Progress';
+
+ @override
+ String get open => 'Open';
+
+ @override
+ String get requestType => 'Request Type';
+
+ @override
+ String get requestNo => 'Request No';
+
+ @override
+ String get assignedTo => 'Assigned To';
+
+ @override
+ String get waitingForQuotation => 'Waiting for quotation';
+
+ @override
+ String get gasRequest => 'Gas Request';
+
+ @override
+ String get viewComments => 'View Comments';
+
+ @override
+ String get commentHere => 'Comment Here';
+
+ @override
+ String get nurseSignature => 'Nurse Signature';
+
+ @override
+ String get ppmVisit => 'PPM Visit Status';
+
+ @override
+ String get ppmRequest => 'PPMs Request';
+
+ @override
+ String get timer => 'Timer';
+
+ @override
+ String get deviceStatus => 'Device Status';
+
+ @override
+ String get addAsset => 'Add Asset';
+
+ @override
+ String get calibrationDate => 'Calibration Date';
+
+ @override
+ String get asset => 'Asset';
+
+ @override
+ String get addItem => 'Add Item';
+
+ @override
+ String get item => 'Item';
+
+ @override
+ String get measuredValue => 'Measured Value';
+
+ @override
+ String get sureExit => 'Are you sure ypu want to Exit? ';
+
+ @override
+ String get daily => 'Daily';
+
+ @override
+ String get weekly => 'Weekly';
+
+ @override
+ String get monthly => 'Monthly';
+
+ @override
+ String get confirmEngineerArrival => 'Confirm Engineer Arrival';
+
+ @override
+ String get confirmingEngineerArrivalAction =>
+ 'With this action you are confirming engineer arrival';
+
+ @override
+ String get myShift => 'My Shift';
+
+ @override
+ String get myTeamRequest => 'My Team Request';
+
+ @override
+ String get sunToThurs => 'Sunday to Thursday';
+
+ @override
+ String get requestGasRefill => 'Request Gas Refill';
+
+ @override
+ String get trackGasRefill => 'Track Gas Refill';
+
+ @override
+ String get trackAssetTransfer => 'Track Asset Transfer';
+
+ @override
+ String get total => 'Total';
+
+ @override
+ String get noDataFound => 'No Data Found';
+
+ @override
+ String get allRequests => 'All Requests';
+
+ @override
+ String get allWorkOrder => 'All Work Orders';
+
+ @override
+ String get requestStatus => 'Request Status';
+
+ @override
+ String get createSubWorkOrder => 'Create Sub Work Order';
+
+ @override
+ String get mrNumber => 'MR Number';
+
+ @override
+ String get vendorEng => 'Vendor Engineer';
+
+ @override
+ String get vendorName => 'Vendor Name';
+
+ @override
+ String get reset => 'Reset';
+
+ @override
+ String get solution => 'Solution';
+
+ @override
+ String get technicalComment => 'Technical Comment';
+
+ @override
+ String get recentActivities => 'Recent Activities';
+
+ @override
+ String get activities => 'Activities';
+
+ @override
+ String get provideQrCodeToEngineer =>
+ 'Provide the below QR Code to Engineer to verify his arrival';
+
+ @override
+ String get qrCode => 'QR Code';
+
+ @override
+ String get createNewActivity => 'Create New Activity';
+
+ @override
+ String get selectActivityType => 'Select Activity Type';
+
+ @override
+ String get sparePartRequest => 'Spare Part Request';
+
+ @override
+ String get sparePartRequestDetail =>
+ 'Ask requester to verify your arrival through Atoms Application.';
+
+ @override
+ String get maintenanceRequest => 'Maintenance Request';
+
+ @override
+ String get assetToBeRetired => 'Asset to be retired';
+
+ @override
+ String get problemDesc => 'Problem Description';
+
+ @override
+ String get source => 'Source';
+
+ @override
+ String get costCodeName => 'Cost Code Name';
+
+ @override
+ String get installationDate => 'Installation Date';
+
+ @override
+ String get nextPmDate => 'Next PM Date';
+
+ @override
+ String get lastPmDate => 'Last PM Date';
+
+ @override
+ String get assetScan => 'Asset Scan';
+
+ @override
+ String get pickManually => 'Pick Manually';
+
+ @override
+ String get doYouWantToSetReminder => 'Do you want to set reminder?';
+
+ @override
+ String get youCanSetTheReminderInAlarmToRemindYouBeforeVisit =>
+ 'You can set the reminder in alarm to remind you before visit. Please select the time below';
+
+ @override
+ String get setReminder => 'Set Reminder';
+
+ @override
+ String get searchAsset => 'Search Asset';
+
+ @override
+ String get newPassword => 'New Password';
+
+ @override
+ String get resetPassword => 'Reset Password';
+
+ @override
+ String get otpVerification => 'OTP Verification';
+
+ @override
+ String get pleaseEnterTheOtpSentTo => 'Please enter the OTP sent to';
+
+ @override
+ String get pleaseEnterTheNewPassword => 'Please enter the new password';
+
+ @override
+ String get markAttendance => 'Mark Attendance';
+
+ @override
+ String get selectMethodToMarkAttendance =>
+ 'Select the method to mark the attendance';
+
+ @override
+ String get employeeIdIsRequired => 'Employee Id is required';
+
+ @override
+ String get successful => 'Successful';
+
+ @override
+ String get youHaveSuccessfullyMarkedYourAttendance =>
+ 'You have successfully marked your attendance';
+
+ @override
+ String get swipeTypeName => 'Swipe Type Name';
+
+ @override
+ String get userName => 'User Name';
+
+ @override
+ String get siteName => 'Site Name';
+
+ @override
+ String get pointName => 'Point Name';
+
+ @override
+ String get checkIn => 'Check in';
+
+ @override
+ String get pmWo => 'PM WO';
+
+ @override
+ String get recurrentWo => 'Recurrent WO';
+
+ @override
+ String get taskNo => 'Task No';
+
+ @override
+ String get assignEngineer => 'Assign Engineer';
+
+ @override
+ String get scheduledDate => 'Scheduled Date';
+
+ @override
+ String get complete => 'Complete';
+
+ @override
+ String get createdDate => 'Created Date';
+
+ @override
+ String get employeeId => 'Employee ID';
+
+ @override
+ String get extensionNo => 'Extension No';
+
+ @override
+ String get fail => 'FAIL';
+
+ @override
+ String get pass => 'PASS';
+
+ @override
+ String get pmPlanNo => 'PM Plan No';
+
+ @override
+ String get executionTimeFrame => 'Execution Time Frame';
+
+ @override
+ String get pmTestResult => 'PM Test Result';
+
+ @override
+ String get actualVisit => 'Actual Visit';
+
+ @override
+ String get totalWorkingTime => 'Total Working Time';
+
+ @override
+ String get typeOfPm => 'Type of PM';
+
+ @override
+ String get attachments => 'Attachments';
+
+ @override
+ String get supplierName => 'Supplier Name';
+
+ @override
+ String get externalEngineerName => 'External Engineer Name';
+
+ @override
+ String get telephone => 'Telephone';
+
+ @override
+ String get task => 'Task';
+
+ @override
+ String get taskType => 'Task Type';
+
+ @override
+ String get createTaskRequest => 'Create Task Request';
+
+ @override
+ String get taskRequest => 'Task Request';
+
+ @override
+ String get completedActions => 'Completed Actions';
+
+ @override
+ String get impactStatus => 'Impact Status';
+
+ @override
+ String get installationSite => 'Installation Site';
+
+ @override
+ String get installationBuilding => 'Installation Building';
+
+ @override
+ String get installationFloor => 'Installation Floor';
+
+ @override
+ String get installationDepartment => 'Installation Department';
+
+ @override
+ String get acknowledge => 'Acknowledge';
+
+ @override
+ String get transferAsset => 'Transfer Asset';
+
+ @override
+ String get createAssetTransferRequest => 'Create Asset Transfer Request';
+
+ @override
+ String get arrivedDate => 'Arrived Date';
+
+ @override
+ String get closedDate => 'Closed Date';
+
+ @override
+ String get transferType => 'Transfer Type';
+
+ @override
+ String get since => 'Since';
+
+ @override
+ String get rejectionDetails => 'Rejection Details';
+
+ @override
+ String get part => 'Part';
+
+ @override
+ String get creationDate => 'Creation Date';
+
+ @override
+ String get createdBy => 'Created BY';
+
+ @override
+ String get trNumber => 'TR Number';
+
+ @override
+ String get workOrderDetails => 'Work Order Details';
+
+ @override
+ String get woNumber => 'WO Number';
+
+ @override
+ String get contactInfo => 'Contact Info';
+
+ @override
+ String get destinationBuilding => 'Destination Building';
+
+ @override
+ String get destinationFloor => 'Destination Floor';
+
+ @override
+ String get destinationDepartment => 'Destination Department';
+}
diff --git a/lib/main.dart b/lib/main.dart
index 2aae2db0..16f152fe 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -4,9 +4,8 @@ import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
-import 'package:flutter_gen/gen_l10n/app_localizations.dart';
-import 'package:flutter_timezone/flutter_timezone.dart';
import 'package:localization/localization.dart';
+import 'package:flutter_timezone/flutter_timezone.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/all_requests_provider.dart';
import 'package:test_sa/controllers/providers/api/comments_provider.dart';
@@ -121,6 +120,7 @@ import 'controllers/providers/api/gas_refill_comments.dart';
import 'controllers/providers/api/user_provider.dart';
import 'controllers/providers/settings/setting_provider.dart';
import 'dashboard_latest/dashboard_provider.dart';
+import 'l10n/app_localizations.dart';
import 'modules/demo_module/demo_document_lookup_provider.dart';
import 'modules/incident_module/create_incident_request_page.dart';
import 'modules/incident_module/incident_lookup_provider.dart';
diff --git a/lib/new_views/swipe_module/dialoge/nfc_reader_sheet.dart b/lib/new_views/swipe_module/dialoge/nfc_reader_sheet.dart
index 3ee2e5d7..7eecd8e2 100644
--- a/lib/new_views/swipe_module/dialoge/nfc_reader_sheet.dart
+++ b/lib/new_views/swipe_module/dialoge/nfc_reader_sheet.dart
@@ -3,13 +3,12 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:nfc_manager/nfc_manager.dart';
-import 'package:nfc_manager/platform_tags.dart';
import 'package:test_sa/dashboard_latest/dashboard_view.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/views/app_style/sizing.dart';
-void showNfcReader(BuildContext context, {Function(String nfcId)? onNcfScan}) {
+void showNfcReader(BuildContext context, {Function(String?)? onNcfScan}) {
showModalBottomSheet(
context: context,
enableDrag: false,
@@ -27,9 +26,9 @@ void showNfcReader(BuildContext context, {Function(String nfcId)? onNcfScan}) {
}
class NfcLayout extends StatefulWidget {
- Function(String nfcId)? onNcfScan;
+ final Function(String? nfcId)? onNcfScan;
- NfcLayout({this.onNcfScan});
+ const NfcLayout({super.key, required this.onNcfScan});
@override
_NfcLayoutState createState() => _NfcLayoutState();
@@ -44,14 +43,35 @@ class _NfcLayoutState extends State {
void initState() {
super.initState();
- NfcManager.instance.startSession(onDiscovered: (NfcTag tag) async {
- var f;
- if (Platform.isAndroid) {
- f = MifareUltralight(tag: tag, identifier: tag.data["nfca"]["identifier"], type: 2, maxTransceiveLength: 252, timeout: 22);
- } else {
- f = MifareUltralight(tag: tag, identifier: tag.data["mifare"]["identifier"], type: 2, maxTransceiveLength: 252, timeout: 22);
+ NfcManager.instance.startSession(
+ onDiscovered: (NfcTag tag) async {
+ String? identifier;
+
+ try {
+ final dynamic tagDynamic = tag;
+ final Map tagData = Map.from(tagDynamic.data as Map);
+
+ if (Platform.isAndroid) {
+ if (tagData.containsKey('nfca')) {
+ final nfcaData = tagData['nfca'] as Map;
+ if (nfcaData.containsKey('identifier')) {
+ final List idBytes = List.from(nfcaData['identifier'] as List);
+ identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+ }
+ }
+ } else {
+ if (tagData.containsKey('mifare')) {
+ final mifareData = tagData['mifare'] as Map;
+ if (mifareData.containsKey('identifier')) {
+ final List idBytes = List.from(mifareData['identifier'] as List);
+ identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+ }
+ }
+ }
+ } catch (e) {
+ print('Error reading NFC tag: $e');
}
- String identifier = f.identifier.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+
nfcId = identifier;
setState(() {
@@ -62,15 +82,11 @@ class _NfcLayoutState extends State {
Future.delayed(const Duration(seconds: 1), () {
NfcManager.instance.stopSession();
Navigator.pop(context);
- // if (Platform.isAndroid) {
- // Navigator.pop(context);
- // } else {
- // Navigator.pop(context);
- // Navigator.pop(context);
- // }
widget.onNcfScan!(nfcId!);
});
- }).catchError((err) {
+ },
+ pollingOptions: {NfcPollingOption.iso14443},
+ ).catchError((err) {
print(err);
});
}
diff --git a/lib/new_views/swipe_module/utils/swipe_general_utils.dart b/lib/new_views/swipe_module/utils/swipe_general_utils.dart
index 4d6b6bf4..cadd8ea0 100644
--- a/lib/new_views/swipe_module/utils/swipe_general_utils.dart
+++ b/lib/new_views/swipe_module/utils/swipe_general_utils.dart
@@ -10,7 +10,6 @@ import 'package:google_api_availability/google_api_availability.dart';
import 'package:huawei_location/huawei_location.dart';
import 'package:intl/intl.dart';
import 'package:nfc_manager/nfc_manager.dart';
-import 'package:nfc_manager/platform_tags.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
@@ -303,7 +302,7 @@ class SwipeGeneralUtils {
await _processNfcAttendance(nfcId, latitude, longitude, context);
});
} else {
- showNfcReader(context, onNcfScan: (String nfcId) async {
+ showNfcReader(context, onNcfScan: (String? nfcId) async {
await _processNfcAttendance(nfcId ?? '', latitude, longitude, context);
});
}
@@ -451,17 +450,40 @@ class SwipeGeneralUtils {
}
void readNFc({Function(String)? onRead}) {
- NfcManager.instance.startSession(onDiscovered: (NfcTag tag) async {
- MifareUltralight f;
- if (Platform.isAndroid) {
- f = MifareUltralight(tag: tag, identifier: tag.data["nfca"]["identifier"], type: 2, maxTransceiveLength: 252, timeout: 22);
- } else {
- f = MifareUltralight(tag: tag, identifier: tag.data["mifare"]["identifier"], type: 2, maxTransceiveLength: 252, timeout: 22);
+ NfcManager.instance.startSession(
+ onDiscovered: (NfcTag tag) async {
+ String identifier = '';
+
+ try {
+ final dynamic tagDynamic = tag;
+ final Map tagData = Map.from(tagDynamic.data as Map);
+
+ if (Platform.isAndroid) {
+ if (tagData.containsKey('nfca')) {
+ final nfcaData = tagData['nfca'] as Map;
+ if (nfcaData.containsKey('identifier')) {
+ final List idBytes = List.from(nfcaData['identifier'] as List);
+ identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+ }
+ }
+ } else {
+ if (tagData.containsKey('mifare')) {
+ final mifareData = tagData['mifare'] as Map;
+ if (mifareData.containsKey('identifier')) {
+ final List idBytes = List.from(mifareData['identifier'] as List);
+ identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+ }
+ }
+ }
+ } catch (e) {
+ print('Error reading NFC: $e');
}
- String identifier = f.identifier.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+
NfcManager.instance.stopSession();
onRead!(identifier);
- }).catchError((err) {
+ },
+ pollingOptions: {NfcPollingOption.iso14443},
+ ).catchError((err) {
print(err);
});
}
diff --git a/lib/nfc/nfc_reader_sheet.dart b/lib/nfc/nfc_reader_sheet.dart
index b4e2f7a4..151b1ebb 100644
--- a/lib/nfc/nfc_reader_sheet.dart
+++ b/lib/nfc/nfc_reader_sheet.dart
@@ -3,7 +3,6 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:nfc_manager/nfc_manager.dart';
-import 'package:nfc_manager/platform_tags.dart';
void showNfcReader(BuildContext context, {required Function(String? nfcId) onNcfScan}) {
showModalBottomSheet(
@@ -23,9 +22,9 @@ void showNfcReader(BuildContext context, {required Function(String? nfcId) onNcf
}
class NfcLayout extends StatefulWidget {
- Function(String? nfcId) onNcfScan;
+ final Function(String? nfcId) onNcfScan;
- NfcLayout({required this.onNcfScan});
+ const NfcLayout({super.key, required this.onNcfScan});
@override
_NfcLayoutState createState() => _NfcLayoutState();
@@ -40,33 +39,79 @@ class _NfcLayoutState extends State {
void initState() {
super.initState();
- NfcManager.instance.startSession(onDiscovered: (NfcTag tag) async {
- var f;
- if (Platform.isAndroid) {
- f = MifareUltralight(tag: tag, identifier: tag.data["nfca"]["identifier"], type: 2, maxTransceiveLength: 252, timeout: 22);
- } else {
- f = MifareUltralight(tag: tag, identifier: tag.data["mifare"]["identifier"], type: 2, maxTransceiveLength: 252, timeout: 22);
- }
- String identifier = f.identifier.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
- nfcId = identifier;
-
- setState(() {
- _reading = true;
- mainWidget = doneNfc();
- });
-
- Future.delayed(const Duration(seconds: 1), () {
- NfcManager.instance.stopSession();
- Navigator.pop(context);
- // if (Platform.isAndroid) {
- // Navigator.pop(context);
- // } else {
- // Navigator.pop(context);
- // Navigator.pop(context);
- // }
- widget.onNcfScan(nfcId);
- });
- }).catchError((err) {
+ NfcManager.instance.startSession(
+ onDiscovered: (NfcTag tag) async {
+ String? identifier;
+
+ // Access tag identifier from the tag data
+ // In nfc_manager 4.1.1, access data via dynamic cast to bypass protected member
+ try {
+ final dynamic tagDynamic = tag;
+ final Map tagData = Map.from(tagDynamic.data as Map);
+
+ if (Platform.isAndroid) {
+ // For Android, try NfcA technology first
+ if (tagData.containsKey('nfca')) {
+ final nfcaData = tagData['nfca'] as Map;
+ if (nfcaData.containsKey('identifier')) {
+ final List idBytes = List.from(nfcaData['identifier'] as List);
+ identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+ }
+ }
+ // Fallback to other technologies if NfcA is not available
+ if (identifier == null && tagData.containsKey('nfcb')) {
+ final nfcbData = tagData['nfcb'] as Map;
+ if (nfcbData.containsKey('identifier')) {
+ final List idBytes = List.from(nfcbData['identifier'] as List);
+ identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+ }
+ }
+ } else {
+ // For iOS, try MiFare technology
+ if (tagData.containsKey('mifare')) {
+ final mifareData = tagData['mifare'] as Map;
+ if (mifareData.containsKey('identifier')) {
+ final List idBytes = List.from(mifareData['identifier'] as List);
+ identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+ }
+ }
+ // Fallback to iso15693 for iOS
+ if (identifier == null && tagData.containsKey('iso15693')) {
+ final iso15693Data = tagData['iso15693'] as Map;
+ if (iso15693Data.containsKey('identifier')) {
+ final List idBytes = List.from(iso15693Data['identifier'] as List);
+ identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+ }
+ }
+ }
+
+ // Universal fallback: try Ndef if available
+ if (identifier == null && tagData.containsKey('ndef')) {
+ final ndefData = tagData['ndef'] as Map;
+ if (ndefData.containsKey('identifier')) {
+ final List idBytes = List.from(ndefData['identifier'] as List);
+ identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
+ }
+ }
+ } catch (e) {
+ print('Error reading NFC tag: $e');
+ }
+
+ nfcId = identifier;
+
+ setState(() {
+ _reading = true;
+ mainWidget = doneNfc();
+ });
+
+ Future.delayed(const Duration(seconds: 1), () {
+ NfcManager.instance.stopSession();
+ Navigator.pop(context);
+ widget.onNcfScan(nfcId);
+ });
+ },
+ pollingOptions: {NfcPollingOption.iso14443},
+ ).catchError((err) {
print(err);
});
}
@@ -96,7 +141,6 @@ class _NfcLayoutState extends State {
SizedBox(
height: 30,
),
-
Image.asset(
"assets/images/nfc_dummy.png",
height: MediaQuery.of(context).size.width / 3,
@@ -159,7 +203,7 @@ class _NfcLayoutState extends State {
),
Image.asset(
// "assets/icons/nfc/ic_done.png",
- "assets/images/done_dummy.jpeg",
+ "assets/images/done_dummy.jpeg",
height: MediaQuery.of(context).size.width / 3,
width: double.infinity,
),
diff --git a/lib/views/widgets/sound/TextSpeechRecordWidget.dart b/lib/views/widgets/sound/TextSpeechRecordWidget.dart
index 44c80b96..74ce8e09 100644
--- a/lib/views/widgets/sound/TextSpeechRecordWidget.dart
+++ b/lib/views/widgets/sound/TextSpeechRecordWidget.dart
@@ -40,9 +40,7 @@ class _RecordSoundState extends State {
bool _recorderIsOpened = false;
bool _recording = false;
- final bool _played = false;
String? _record;
- Artboard? _rive;
Timer? _timer;
late TextEditingController _timeController;
late TextEditingController _commentController;
@@ -78,31 +76,6 @@ class _RecordSoundState extends State {
node.unfocus();
_recorderIsOpened = true;
_settingProvider = Provider.of(context,listen: false);
- // RecordMp3.instance.start(recordFilePath, (type) {
- // // record fail callback
- // });
- // _myRecorder.openRecorder().then((value) {
- // _recorderIsOpened = true;
- // setState(() {});
- // });
-
- // Load the animation file from the bundle, note that you could also
- // download this. The RiveFile just expects a list of bytes.
- rootBundle.load('assets/rives/recording.riv').then(
- (data) async {
- // Load the RiveFile from the binary data.
- final file = RiveFile.import(data);
- // The artboard is the root of the animation and gets drawn in the
- // Rive widget.
- final artboard = file.mainArtboard;
- // Add a controller to play back a known animation on the main/default
- // artboard.We store a reference to it so we can toggle playback.
- artboard.addController(SimpleAnimation('recording'));
- _rive = artboard;
-
- setState(() {});
- },
- );
}
@override
@@ -131,7 +104,7 @@ class _RecordSoundState extends State {
String duration = Duration(seconds: timer.tick).toString();
duration = duration.substring(duration.indexOf(":") + 1, duration.indexOf("."));
- String recordTime = ((timer.tick ?? 0) / 60).toStringAsFixed(2).replaceFirst(".", ":");
+ String recordTime = (timer.tick / 60).toStringAsFixed(2).replaceFirst(".", ":");
// print("recordTime:$recordTime");
if (recordTime.length == 4 || recordTime.length == 7) {
recordTime = "0$recordTime";
@@ -139,7 +112,6 @@ class _RecordSoundState extends State {
_timeController.text = duration;
});
});
- _rive?.addController(SimpleAnimation('recording'));
if (!_recorderIsOpened) {
// await _myRecorder.openRecorder();
_recorderIsOpened = true;
@@ -198,21 +170,14 @@ class _RecordSoundState extends State {
_cancelRecording() async {
if (!_recording) return;
RecordMp3.instance.stop();
- // String path = await _myRecorder.stopRecorder();
- // _myRecorder.deleteRecord(fileName: path);
- _rive?.addController(SimpleAnimation('delete'));
-
- // rebuild();
_recording = false;
- await Future.delayed(const Duration(seconds: 1));
+ await Future.delayed(const Duration(milliseconds: 300));
if (!_recording) setState(() {});
- // _message.memoryAudio.;
}
@override
Widget build(BuildContext context) {
if (node.hasFocus && widget.enabled) node.unfocus();
- _settingProvider ??= Provider.of(context);
return Column(
mainAxisSize: MainAxisSize.min,
children: [
diff --git a/lib/views/widgets/sound/record_sound.dart b/lib/views/widgets/sound/record_sound.dart
index 56a23c13..4033cb86 100644
--- a/lib/views/widgets/sound/record_sound.dart
+++ b/lib/views/widgets/sound/record_sound.dart
@@ -7,7 +7,6 @@ import 'package:fluttertoast/fluttertoast.dart';
import 'package:path_provider/path_provider.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:record_mp3_plus/record_mp3_plus.dart';
-import 'package:rive/rive.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
@@ -33,9 +32,7 @@ class _RecordSoundState extends State {
bool _recorderIsOpened = false;
bool _recording = false;
- final bool _played = false;
String? _record;
- late Artboard _rive;
Timer? _timer;
late TextEditingController _timeController;
@@ -52,31 +49,6 @@ class _RecordSoundState extends State {
_timeController = TextEditingController();
node.unfocus();
_recorderIsOpened = true;
- // RecordMp3.instance.start(recordFilePath, (type) {
- // // record fail callback
- // });
- // _myRecorder.openRecorder().then((value) {
- // _recorderIsOpened = true;
- // setState(() {});
- // });
-
- // Load the animation file from the bundle, note that you could also
- // download this. The RiveFile just expects a list of bytes.
- rootBundle.load('assets/rives/recording.riv').then(
- (data) async {
- // Load the RiveFile from the binary data.
- final file = RiveFile.import(data);
- // The artboard is the root of the animation and gets drawn in the
- // Rive widget.
- final artboard = file.mainArtboard;
- // Add a controller to play back a known animation on the main/default
- // artboard.We store a reference to it so we can toggle playback.
- artboard.addController(SimpleAnimation('recording'));
- _rive = artboard;
-
- setState(() {});
- },
- );
}
@override
@@ -113,7 +85,6 @@ class _RecordSoundState extends State {
_timeController.text = duration;
});
});
- _rive.addController(SimpleAnimation('recording'));
if (!_recorderIsOpened) {
// await _myRecorder.openRecorder();
_recorderIsOpened = true;
@@ -150,15 +121,9 @@ class _RecordSoundState extends State {
_cancelRecording() async {
if (!_recording) return;
RecordMp3.instance.stop();
- // String path = await _myRecorder.stopRecorder();
- // _myRecorder.deleteRecord(fileName: path);
- _rive.addController(SimpleAnimation('delete'));
-
- // rebuild();
_recording = false;
- await Future.delayed(const Duration(seconds: 1));
+ await Future.delayed(const Duration(milliseconds: 300));
if (!_recording) setState(() {});
- // _message.memoryAudio.;
}
@override
diff --git a/pubspec.lock b/pubspec.lock
index f09bc410..50ce5e15 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -5,50 +5,50 @@ packages:
dependency: transitive
description:
name: _flutterfire_internals
- sha256: "5534e701a2c505fed1f0799e652dd6ae23bd4d2c4cf797220e5ced5764a7c1c2"
+ sha256: ff0a84a2734d9e1089f8aedd5c0af0061b82fb94e95260d943404e0ef2134b11
url: "https://pub.dev"
source: hosted
- version: "1.3.44"
+ version: "1.3.59"
another_flushbar:
dependency: "direct main"
description:
name: another_flushbar
- sha256: "19bf9520230ec40b300aaf9dd2a8fefcb277b25ecd1c4838f530566965befc2a"
+ sha256: "2b99671c010a7d5770acf5cb24c9f508b919c3a7948b6af9646e773e7da7b757"
url: "https://pub.dev"
source: hosted
- version: "1.12.30"
+ version: "1.12.32"
archive:
dependency: transitive
description:
name: archive
- sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d
+ sha256: a96e8b390886ee8abb49b7bd3ac8df6f451c621619f52a26e815fdcf568959ff
url: "https://pub.dev"
source: hosted
- version: "3.6.1"
+ version: "4.0.9"
args:
dependency: transitive
description:
name: args
- sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a"
+ sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
url: "https://pub.dev"
source: hosted
- version: "2.5.0"
+ version: "2.7.0"
async:
dependency: transitive
description:
name: async
- sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
+ sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
url: "https://pub.dev"
source: hosted
- version: "2.11.0"
+ version: "2.13.0"
audio_session:
dependency: transitive
description:
name: audio_session
- sha256: b2a26ba8b7efa1790d6460e82971fde3e398cfbe2295df9dea22f3499d2c12a7
+ sha256: "2b7fff16a552486d078bfc09a8cde19f426dc6d6329262b684182597bec5b1ac"
url: "https://pub.dev"
source: hosted
- version: "0.1.23"
+ version: "0.1.25"
audio_waveforms:
dependency: "direct main"
description:
@@ -61,58 +61,58 @@ packages:
dependency: "direct main"
description:
name: audioplayers
- sha256: c346ba5a39dc208f1bab55fc239855f573d69b0e832402114bf0b793622adc4d
+ sha256: a72dd459d1a48f61a6fb9c0134dba26597c9236af40639ff0eb70eb4e0baab70
url: "https://pub.dev"
source: hosted
- version: "6.1.0"
+ version: "6.6.0"
audioplayers_android:
dependency: transitive
description:
name: audioplayers_android
- sha256: de576b890befe27175c2f511ba8b742bec83765fa97c3ce4282bba46212f58e4
+ sha256: "60a6728277228413a85755bd3ffd6fab98f6555608923813ce383b190a360605"
url: "https://pub.dev"
source: hosted
- version: "5.0.0"
+ version: "5.2.1"
audioplayers_darwin:
dependency: transitive
description:
name: audioplayers_darwin
- sha256: e507887f3ff18d8e5a10a668d7bedc28206b12e10b98347797257c6ae1019c3b
+ sha256: c994b3bb3a921e4904ac40e013fbc94488e824fd7c1de6326f549943b0b44a91
url: "https://pub.dev"
source: hosted
- version: "6.0.0"
+ version: "6.4.0"
audioplayers_linux:
dependency: transitive
description:
name: audioplayers_linux
- sha256: "3d3d244c90436115417f170426ce768856d8fe4dfc5ed66a049d2890acfa82f9"
+ sha256: f75bce1ce864170ef5e6a2c6a61cd3339e1a17ce11e99a25bae4474ea491d001
url: "https://pub.dev"
source: hosted
- version: "4.0.0"
+ version: "4.2.1"
audioplayers_platform_interface:
dependency: transitive
description:
name: audioplayers_platform_interface
- sha256: "6834dd48dfb7bc6c2404998ebdd161f79cd3774a7e6779e1348d54a3bfdcfaa5"
+ sha256: "0e2f6a919ab56d0fec272e801abc07b26ae7f31980f912f24af4748763e5a656"
url: "https://pub.dev"
source: hosted
- version: "7.0.0"
+ version: "7.1.1"
audioplayers_web:
dependency: transitive
description:
name: audioplayers_web
- sha256: "3609bdf0e05e66a3d9750ee40b1e37f2a622c4edb796cc600b53a90a30a2ace4"
+ sha256: faa8fa6587f996a6f604433b53af44c57a1407d4fe8dff5766cf63d6875e8de9
url: "https://pub.dev"
source: hosted
- version: "5.0.1"
+ version: "5.2.0"
audioplayers_windows:
dependency: transitive
description:
name: audioplayers_windows
- sha256: "8605762dddba992138d476f6a0c3afd9df30ac5b96039929063eceed416795c2"
+ sha256: bafff2b38b6f6d331887558ba6e0a01c9c208d9dbb3ad0005234db065122a734
url: "https://pub.dev"
source: hosted
- version: "4.0.0"
+ version: "4.3.0"
badges:
dependency: "direct main"
description:
@@ -125,10 +125,10 @@ packages:
dependency: transitive
description:
name: boolean_selector
- sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
+ sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
url: "https://pub.dev"
source: hosted
- version: "2.1.1"
+ version: "2.1.2"
cached_network_image:
dependency: "direct main"
description:
@@ -157,74 +157,82 @@ packages:
dependency: "direct main"
description:
name: carousel_slider
- sha256: "7b006ec356205054af5beaef62e2221160ea36b90fb70a35e4deacd49d0349ae"
+ sha256: febf4b0163e0242adc13d7a863b04965351f59e7dfea56675c7c2caa7bcd7476
url: "https://pub.dev"
source: hosted
- version: "5.0.0"
+ version: "5.1.2"
characters:
dependency: transitive
description:
name: characters
- sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
+ sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b
url: "https://pub.dev"
source: hosted
- version: "1.3.0"
+ version: "1.4.1"
checked_yaml:
dependency: transitive
description:
name: checked_yaml
- sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff
+ sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f"
url: "https://pub.dev"
source: hosted
- version: "2.0.3"
+ version: "2.0.4"
cli_util:
dependency: transitive
description:
name: cli_util
- sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19
+ sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c
url: "https://pub.dev"
source: hosted
- version: "0.4.1"
+ version: "0.4.2"
clipboard:
dependency: "direct main"
description:
name: clipboard
- sha256: "1920c0337f8808be4166c5f1b236301ff381ef69633b0757c502d97f1f740102"
+ sha256: c0ba5e7214035b824549473fa134870bc544fff0d7b89170d4756c0ac2c0239d
url: "https://pub.dev"
source: hosted
- version: "2.0.2"
+ version: "3.0.14"
clock:
dependency: transitive
description:
name: clock
- sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
+ sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.dev"
source: hosted
- version: "1.1.1"
+ version: "1.1.2"
+ code_assets:
+ dependency: transitive
+ description:
+ name: code_assets
+ sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.0"
collection:
dependency: transitive
description:
name: collection
- sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
+ sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.dev"
source: hosted
- version: "1.18.0"
+ version: "1.19.1"
cross_file:
dependency: transitive
description:
name: cross_file
- sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670"
+ sha256: "28bb3ae56f117b5aec029d702a90f57d285cd975c3c5c281eaca38dbc47c5937"
url: "https://pub.dev"
source: hosted
- version: "0.3.4+2"
+ version: "0.3.5+2"
crypto:
dependency: transitive
description:
name: crypto
- sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27
+ sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
url: "https://pub.dev"
source: hosted
- version: "3.0.5"
+ version: "3.0.7"
cupertino_icons:
dependency: "direct main"
description:
@@ -237,18 +245,18 @@ packages:
dependency: "direct main"
description:
name: date_picker_timeline
- sha256: c05e6540fa3055c9036e6f99e758972e14be0e1010d5a6e7a1261d4a6f3292df
+ sha256: b99308cd224ca42900aa3ba2a75213c8deff6edee35fc18905a7834e8b0d7e70
url: "https://pub.dev"
source: hosted
- version: "1.2.6"
+ version: "1.2.7"
dbus:
dependency: transitive
description:
name: dbus
- sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac"
+ sha256: d0c98dcd4f5169878b6cf8f6e0a52403a9dff371a3e2f019697accbf6f44a270
url: "https://pub.dev"
source: hosted
- version: "0.7.10"
+ version: "0.7.12"
device_calendar:
dependency: "direct main"
description:
@@ -269,137 +277,138 @@ packages:
dependency: "direct main"
description:
name: ellipsized_text
- sha256: d4d372c2baf8d4adfb2ca3728c1e5955d1683e75fae774b311d557ad13317105
+ sha256: "62d130a2531af8167de2b00ca0a46633fb0030df5eb794b4143cf53dcc1e8de6"
url: "https://pub.dev"
source: hosted
- version: "1.2.0"
+ version: "2.0.0"
fake_async:
dependency: transitive
description:
name: fake_async
- sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
+ sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
url: "https://pub.dev"
source: hosted
- version: "1.3.1"
+ version: "1.3.3"
ffi:
dependency: transitive
description:
name: ffi
- sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6"
+ sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45"
url: "https://pub.dev"
source: hosted
- version: "2.1.3"
+ version: "2.2.0"
file:
dependency: transitive
description:
name: file
- sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
+ sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
url: "https://pub.dev"
source: hosted
- version: "7.0.0"
+ version: "7.0.1"
file_picker:
dependency: "direct main"
description:
name: file_picker
- sha256: "167bb619cdddaa10ef2907609feb8a79c16dfa479d3afaf960f8e223f754bf12"
+ sha256: ab13ae8ef5580a411c458d6207b6774a6c237d77ac37011b13994879f68a8810
url: "https://pub.dev"
source: hosted
- version: "8.1.2"
+ version: "8.3.7"
file_selector_linux:
dependency: transitive
description:
name: file_selector_linux
- sha256: "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492"
+ sha256: "2567f398e06ac72dcf2e98a0c95df2a9edd03c2c2e0cacd4780f20cdf56263a0"
url: "https://pub.dev"
source: hosted
- version: "0.9.2+1"
+ version: "0.9.4"
file_selector_macos:
dependency: transitive
description:
name: file_selector_macos
- sha256: cb284e267f8e2a45a904b5c094d2ba51d0aabfc20b1538ab786d9ef7dc2bf75c
+ sha256: "5e0bbe9c312416f1787a68259ea1505b52f258c587f12920422671807c4d618a"
url: "https://pub.dev"
source: hosted
- version: "0.9.4+1"
+ version: "0.9.5"
file_selector_platform_interface:
dependency: transitive
description:
name: file_selector_platform_interface
- sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b
+ sha256: "35e0bd61ebcdb91a3505813b055b09b79dfdc7d0aee9c09a7ba59ae4bb13dc85"
url: "https://pub.dev"
source: hosted
- version: "2.6.2"
+ version: "2.7.0"
file_selector_windows:
dependency: transitive
description:
name: file_selector_windows
- sha256: "8f5d2f6590d51ecd9179ba39c64f722edc15226cc93dcc8698466ad36a4a85a4"
+ sha256: "62197474ae75893a62df75939c777763d39c2bc5f73ce5b88497208bc269abfd"
url: "https://pub.dev"
source: hosted
- version: "0.9.3+3"
+ version: "0.9.3+5"
firebase_core:
dependency: "direct main"
description:
name: firebase_core
- sha256: "51dfe2fbf3a984787a2e7b8592f2f05c986bfedd6fdacea3f9e0a7beb334de96"
+ sha256: "7be63a3f841fc9663342f7f3a011a42aef6a61066943c90b1c434d79d5c995c5"
url: "https://pub.dev"
source: hosted
- version: "3.6.0"
+ version: "3.15.2"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
- sha256: e30da58198a6d4b49d5bce4e852f985c32cb10db329ebef9473db2b9f09ce810
+ sha256: cccb4f572325dc14904c02fcc7db6323ad62ba02536833dddb5c02cac7341c64
url: "https://pub.dev"
source: hosted
- version: "5.3.0"
+ version: "6.0.2"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
- sha256: f967a7138f5d2ffb1ce15950e2a382924239eaa521150a8f144af34e68b3b3e5
+ sha256: "0ed0dc292e8f9ac50992e2394e9d336a0275b6ae400d64163fdf0a8a8b556c37"
url: "https://pub.dev"
source: hosted
- version: "2.18.1"
+ version: "2.24.1"
firebase_messaging:
dependency: "direct main"
description:
name: firebase_messaging
- sha256: eb6e28a3a35deda61fe8634967c84215efc19133ba58d8e0fc6c9a2af2cba05e
+ sha256: "60be38574f8b5658e2f22b7e311ff2064bea835c248424a383783464e8e02fcc"
url: "https://pub.dev"
source: hosted
- version: "15.1.3"
+ version: "15.2.10"
firebase_messaging_platform_interface:
dependency: transitive
description:
name: firebase_messaging_platform_interface
- sha256: b316c4ee10d93d32c033644207afc282d9b2b4372f3cf9c6022f3558b3873d2d
+ sha256: "685e1771b3d1f9c8502771ccc9f91485b376ffe16d553533f335b9183ea99754"
url: "https://pub.dev"
source: hosted
- version: "4.5.46"
+ version: "4.6.10"
firebase_messaging_web:
dependency: transitive
description:
name: firebase_messaging_web
- sha256: d7f0147a1a9fe4313168e20154a01fd5cf332898de1527d3930ff77b8c7f5387
+ sha256: "0d1be17bc89ed3ff5001789c92df678b2e963a51b6fa2bdb467532cc9dbed390"
url: "https://pub.dev"
source: hosted
- version: "3.9.2"
+ version: "3.10.10"
fixnum:
dependency: transitive
description:
name: fixnum
- sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1"
+ sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
url: "https://pub.dev"
source: hosted
- version: "1.1.0"
+ version: "1.1.1"
flare_flutter:
dependency: "direct main"
description:
- name: flare_flutter
- sha256: "99d63c60f00fac81249ce6410ee015d7b125c63d8278a30da81edf3317a1f6a0"
- url: "https://pub.dev"
- source: hosted
+ path: flare_flutter
+ ref: remove_hashValues
+ resolved-ref: d915c89bf01f1a9d5c97d9f5b2f964eb21ddf1e9
+ url: "https://github.com/mbfakourii/Flare-Flutter.git"
+ source: git
version: "3.0.2"
flutter:
dependency: "direct main"
@@ -482,10 +491,10 @@ packages:
dependency: "direct main"
description:
name: flutter_launcher_icons
- sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea"
+ sha256: "10f13781741a2e3972126fae08393d3c4e01fa4cd7473326b94b72cf594195e7"
url: "https://pub.dev"
source: hosted
- version: "0.13.1"
+ version: "0.14.4"
flutter_lints:
dependency: "direct overridden"
description:
@@ -498,10 +507,10 @@ packages:
dependency: "direct main"
description:
name: flutter_local_notifications
- sha256: "49eeef364fddb71515bc78d5a8c51435a68bccd6e4d68e25a942c5e47761ae71"
+ sha256: "674173fd3c9eda9d4c8528da2ce0ea69f161577495a9cc835a2a4ecd7eadeb35"
url: "https://pub.dev"
source: hosted
- version: "17.2.3"
+ version: "17.2.4"
flutter_local_notifications_linux:
dependency: transitive
description:
@@ -527,42 +536,42 @@ packages:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
- sha256: "9ee02950848f61c4129af3d6ec84a1cfc0e47931abc746b03e7a3bc3e8ff6eda"
+ sha256: ee8068e0e1cd16c4a82714119918efdeed33b3ba7772c54b5d094ab53f9b7fd1
url: "https://pub.dev"
source: hosted
- version: "2.0.22"
+ version: "2.0.33"
flutter_sound:
dependency: "direct main"
description:
name: flutter_sound
- sha256: "1f40b26b92907a433afe877c927cd48f5a2e4d0f7188e5d39eb5756008aa51ab"
+ sha256: "77f0252a2f08449d621f68b8fd617c3b391e7f862eaa94bb32f53cc2dc3bbe85"
url: "https://pub.dev"
source: hosted
- version: "9.6.0"
+ version: "9.30.0"
flutter_sound_platform_interface:
dependency: transitive
description:
name: flutter_sound_platform_interface
- sha256: "2e218521d8187b9a4c65063ad9c79bfe88119531ff68047a2eaa6b027cb276bb"
+ sha256: "5ffc858fd96c6fa277e3bb25eecc100849d75a8792b1f9674d1ba817aea9f861"
url: "https://pub.dev"
source: hosted
- version: "9.6.0"
+ version: "9.30.0"
flutter_sound_web:
dependency: transitive
description:
name: flutter_sound_web
- sha256: "5013a15e4e69a4bdc8badd729130eef43c3305e30ba8e6933f863436ce969932"
+ sha256: "3af46f45f44768c01c83ba260855c956d0963673664947926d942aa6fbf6f6fb"
url: "https://pub.dev"
source: hosted
- version: "9.6.0"
+ version: "9.30.0"
flutter_svg:
dependency: "direct main"
description:
name: flutter_svg
- sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2"
+ sha256: "87fbd7c534435b6c5d9d98b01e1fd527812b82e68ddd8bd35fc45ed0fa8f0a95"
url: "https://pub.dev"
source: hosted
- version: "2.0.10+1"
+ version: "2.2.3"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -593,18 +602,18 @@ packages:
dependency: "direct main"
description:
name: fluttertoast
- sha256: "95f349437aeebe524ef7d6c9bde3e6b4772717cf46a0eb6a3ceaddc740b297cc"
+ sha256: "144ddd74d49c865eba47abe31cbc746c7b311c82d6c32e571fd73c4264b740e2"
url: "https://pub.dev"
source: hosted
- version: "8.2.8"
+ version: "9.0.0"
font_awesome_flutter:
dependency: "direct main"
description:
name: font_awesome_flutter
- sha256: "275ff26905134bcb59417cf60ad979136f1f8257f2f449914b2c3e05bbb4cd6f"
+ sha256: b9011df3a1fa02993630b8fb83526368cf2206a711259830325bab2f1d2a4eb0
url: "https://pub.dev"
source: hosted
- version: "10.7.0"
+ version: "10.12.0"
geolocator:
dependency: "direct main"
description:
@@ -617,26 +626,26 @@ packages:
dependency: transitive
description:
name: geolocator_android
- sha256: "7aefc530db47d90d0580b552df3242440a10fe60814496a979aa67aa98b1fd47"
+ sha256: fcb1760a50d7500deca37c9a666785c047139b5f9ee15aa5469fae7dbbe3170d
url: "https://pub.dev"
source: hosted
- version: "4.6.1"
+ version: "4.6.2"
geolocator_apple:
dependency: transitive
description:
name: geolocator_apple
- sha256: "6154ea2682563f69fc0125762ed7e91e7ed85d0b9776595653be33918e064807"
+ sha256: dbdd8789d5aaf14cf69f74d4925ad1336b4433a6efdf2fce91e8955dc921bf22
url: "https://pub.dev"
source: hosted
- version: "2.3.8+1"
+ version: "2.3.13"
geolocator_platform_interface:
dependency: transitive
description:
name: geolocator_platform_interface
- sha256: "386ce3d9cce47838355000070b1d0b13efb5bc430f8ecda7e9238c8409ace012"
+ sha256: "30cb64f0b9adcc0fb36f628b4ebf4f731a2961a0ebd849f4b56200205056fe67"
url: "https://pub.dev"
source: hosted
- version: "4.2.4"
+ version: "4.2.6"
geolocator_web:
dependency: transitive
description:
@@ -657,26 +666,34 @@ packages:
dependency: transitive
description:
name: get
- sha256: e4e7335ede17452b391ed3b2ede016545706c01a02292a6c97619705e7d2a85e
+ sha256: "5ed34a7925b85336e15d472cc4cfe7d9ebf4ab8e8b9f688585bf6b50f4c3d79a"
url: "https://pub.dev"
source: hosted
- version: "4.6.6"
+ version: "4.7.3"
+ glob:
+ dependency: transitive
+ description:
+ name: glob
+ sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.3"
google_api_availability:
dependency: "direct main"
description:
name: google_api_availability
- sha256: "3e9548cfd991d983d11425a2436d5bd957d048c279cc9e145ffe3f36fd847385"
+ sha256: "2ffdc91e1e0cf4e7974fef6c2988a24cefa81f03526ff04b694df6dc0fcbca03"
url: "https://pub.dev"
source: hosted
- version: "5.0.0"
+ version: "5.0.1"
google_api_availability_android:
dependency: transitive
description:
name: google_api_availability_android
- sha256: d95429ae78083585c312de2c6578085e7d53d100a94656d691bce0bb0ce435be
+ sha256: "4794147f43a8f3eee6b514d3ae30dbe6f7b9048cae8cd2a74cb4055cd28d74a8"
url: "https://pub.dev"
source: hosted
- version: "1.0.1"
+ version: "1.1.1"
google_api_availability_platform_interface:
dependency: transitive
description:
@@ -693,206 +710,206 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.3.2"
+ hooks:
+ dependency: transitive
+ description:
+ name: hooks
+ sha256: "7a08a0d684cb3b8fb604b78455d5d352f502b68079f7b80b831c62220ab0a4f6"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.1"
http:
dependency: "direct main"
description:
name: http
- sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010
+ sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
url: "https://pub.dev"
source: hosted
- version: "1.2.2"
+ version: "1.6.0"
http_parser:
dependency: transitive
description:
name: http_parser
- sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
+ sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
url: "https://pub.dev"
source: hosted
- version: "4.0.2"
+ version: "4.1.2"
huawei_location:
dependency: "direct main"
description:
name: huawei_location
- sha256: "3100d6b2b11df56481b8deade71baa84970e0bae0ade6ec56407be2b036af355"
+ sha256: dd939b0add3e228865cb7da230d7723551e55677d7d59de7dbfd466229847b9f
url: "https://pub.dev"
source: hosted
- version: "6.14.2+301"
+ version: "6.16.0+300"
huawei_push:
dependency: "direct main"
description:
name: huawei_push
- sha256: d9bdbc62d5b6a07fe2bff92790682c77ffcc8b56bafba8c12700d2b4b0e30a70
+ sha256: "63388ea0af5564453da9ac3abf354744173b598fa3a23f09f1c5724e8fa930c9"
url: "https://pub.dev"
source: hosted
- version: "6.13.0+300"
+ version: "6.14.0+300"
image:
dependency: transitive
description:
name: image
- sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8"
+ sha256: f9881ff4998044947ec38d098bc7c8316ae1186fa786eddffdb867b9bc94dfce
url: "https://pub.dev"
source: hosted
- version: "4.2.0"
+ version: "4.8.0"
image_cropper:
dependency: "direct main"
description:
name: image_cropper
- sha256: fe37d9a129411486e0d93089b61bd326d05b89e78ad4981de54b560725bf5bd5
+ sha256: "266760ed426d7121f0ada02c672bfe5c1b5c714e908328716aee756f045709dc"
url: "https://pub.dev"
source: hosted
- version: "8.0.2"
+ version: "8.1.0"
image_cropper_for_web:
dependency: transitive
description:
name: image_cropper_for_web
- sha256: "34256c8fb7fcb233251787c876bb37271744459b593a948a2db73caa323034d0"
+ sha256: fd81ebe36f636576094377aab32673c4e5d1609b32dec16fad98d2b71f1250a9
url: "https://pub.dev"
source: hosted
- version: "6.0.2"
+ version: "6.1.0"
image_cropper_platform_interface:
dependency: transitive
description:
name: image_cropper_platform_interface
- sha256: e8e9d2ca36360387aee39295ce49029362ae4df3071f23e8e71f2b81e40b7531
+ sha256: "2d8db8f4b638e448fa89a1e77cd8f053b4547472bd3ae073169e86626d03afef"
url: "https://pub.dev"
source: hosted
- version: "7.0.0"
+ version: "7.2.0"
image_picker:
dependency: "direct main"
description:
name: image_picker
- sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a"
+ sha256: "784210112be18ea55f69d7076e2c656a4e24949fa9e76429fe53af0c0f4fa320"
url: "https://pub.dev"
source: hosted
- version: "1.1.2"
+ version: "1.2.1"
image_picker_android:
dependency: transitive
description:
name: image_picker_android
- sha256: c0a6763d50b354793d0192afd0a12560b823147d3ded7c6b77daf658fa05cc85
+ sha256: eda9b91b7e266d9041084a42d605a74937d996b87083395c5e47835916a86156
url: "https://pub.dev"
source: hosted
- version: "0.8.12+13"
+ version: "0.8.13+14"
image_picker_for_web:
dependency: transitive
description:
name: image_picker_for_web
- sha256: "65d94623e15372c5c51bebbcb820848d7bcb323836e12dfdba60b5d3a8b39e50"
+ sha256: "66257a3191ab360d23a55c8241c91a6e329d31e94efa7be9cf7a212e65850214"
url: "https://pub.dev"
source: hosted
- version: "3.0.5"
+ version: "3.1.1"
image_picker_ios:
dependency: transitive
description:
name: image_picker_ios
- sha256: "6703696ad49f5c3c8356d576d7ace84d1faf459afb07accbb0fae780753ff447"
+ sha256: b9c4a438a9ff4f60808c9cf0039b93a42bb6c2211ef6ebb647394b2b3fa84588
url: "https://pub.dev"
source: hosted
- version: "0.8.12"
+ version: "0.8.13+6"
image_picker_linux:
dependency: transitive
description:
name: image_picker_linux
- sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa"
+ sha256: "1f81c5f2046b9ab724f85523e4af65be1d47b038160a8c8deed909762c308ed4"
url: "https://pub.dev"
source: hosted
- version: "0.2.1+1"
+ version: "0.2.2"
image_picker_macos:
dependency: transitive
description:
name: image_picker_macos
- sha256: "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62"
+ sha256: "86f0f15a309de7e1a552c12df9ce5b59fe927e71385329355aec4776c6a8ec91"
url: "https://pub.dev"
source: hosted
- version: "0.2.1+1"
+ version: "0.2.2+1"
image_picker_platform_interface:
dependency: transitive
description:
name: image_picker_platform_interface
- sha256: "9ec26d410ff46f483c5519c29c02ef0e02e13a543f882b152d4bfd2f06802f80"
+ sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c"
url: "https://pub.dev"
source: hosted
- version: "2.10.0"
+ version: "2.11.1"
image_picker_windows:
dependency: transitive
description:
name: image_picker_windows
- sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb"
+ sha256: d248c86554a72b5495a31c56f060cf73a41c7ff541689327b1a7dbccc33adfae
url: "https://pub.dev"
source: hosted
- version: "0.2.1+1"
+ version: "0.2.2"
intl:
dependency: "direct main"
description:
name: intl
- sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
- url: "https://pub.dev"
- source: hosted
- version: "0.19.0"
- js:
- dependency: transitive
- description:
- name: js
- sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
+ sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
url: "https://pub.dev"
source: hosted
- version: "0.6.7"
+ version: "0.20.2"
json_annotation:
dependency: transitive
description:
name: json_annotation
- sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
+ sha256: cb09e7dac6210041fad964ed7fbee004f14258b4eca4040f72d1234062ace4c8
url: "https://pub.dev"
source: hosted
- version: "4.9.0"
+ version: "4.11.0"
just_audio:
dependency: "direct main"
description:
name: just_audio
- sha256: a49e7120b95600bd357f37a2bb04cd1e88252f7cdea8f3368803779b925b1049
+ sha256: f978d5b4ccea08f267dae0232ec5405c1b05d3f3cd63f82097ea46c015d5c09e
url: "https://pub.dev"
source: hosted
- version: "0.9.42"
+ version: "0.9.46"
just_audio_platform_interface:
dependency: transitive
description:
name: just_audio_platform_interface
- sha256: "0243828cce503c8366cc2090cefb2b3c871aa8ed2f520670d76fd47aa1ab2790"
+ sha256: "2532c8d6702528824445921c5ff10548b518b13f808c2e34c2fd54793b999a6a"
url: "https://pub.dev"
source: hosted
- version: "4.3.0"
+ version: "4.6.0"
just_audio_web:
dependency: transitive
description:
name: just_audio_web
- sha256: "9a98035b8b24b40749507687520ec5ab404e291d2b0937823ff45d92cb18d448"
+ sha256: "6ba8a2a7e87d57d32f0f7b42856ade3d6a9fbe0f1a11fabae0a4f00bb73f0663"
url: "https://pub.dev"
source: hosted
- version: "0.4.13"
+ version: "0.4.16"
leak_tracker:
dependency: transitive
description:
name: leak_tracker
- sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
+ sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
url: "https://pub.dev"
source: hosted
- version: "10.0.5"
+ version: "11.0.2"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
- sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
+ sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev"
source: hosted
- version: "3.0.5"
+ version: "3.0.10"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
- sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
+ sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev"
source: hosted
- version: "3.0.1"
+ version: "3.0.2"
lints:
dependency: transitive
description:
@@ -913,26 +930,26 @@ packages:
dependency: transitive
description:
name: local_auth_android
- sha256: e9a3c321e94359a552b1bdd0f98f79885f2b3e27234d270f9bef5cd82b29340c
+ sha256: a0bdfcc0607050a26ef5b31d6b4b254581c3d3ce3c1816ab4d4f4a9173e84467
url: "https://pub.dev"
source: hosted
- version: "1.0.44"
+ version: "1.0.56"
local_auth_darwin:
dependency: "direct main"
description:
name: local_auth_darwin
- sha256: "7ba5738c874ca2b910d72385d00d2bebad9d4e807612936cf5e32bc01a048c71"
+ sha256: "699873970067a40ef2f2c09b4c72eb1cfef64224ef041b3df9fdc5c4c1f91f49"
url: "https://pub.dev"
source: hosted
- version: "1.4.0"
+ version: "1.6.1"
local_auth_platform_interface:
dependency: transitive
description:
name: local_auth_platform_interface
- sha256: "1b842ff177a7068442eae093b64abe3592f816afd2a533c0ebcdbe40f9d2075a"
+ sha256: f98b8e388588583d3f781f6806e4f4c9f9e189d898d27f0c249b93a1973dd122
url: "https://pub.dev"
source: hosted
- version: "1.0.10"
+ version: "1.1.0"
local_auth_windows:
dependency: transitive
description:
@@ -953,10 +970,10 @@ packages:
dependency: transitive
description:
name: logger
- sha256: "697d067c60c20999686a0add96cf6aba723b3aa1f83ecf806a8097231529ec32"
+ sha256: a7967e31b703831a893bbc3c3dd11db08126fe5f369b5c648a36f821979f5be3
url: "https://pub.dev"
source: hosted
- version: "2.4.0"
+ version: "2.6.2"
logging:
dependency: transitive
description:
@@ -969,26 +986,26 @@ packages:
dependency: "direct main"
description:
name: lottie
- sha256: "6a24ade5d3d918c306bb1c21a6b9a04aab0489d51a2582522eea820b4093b62b"
+ sha256: "8ae0be46dbd9e19641791dc12ee480d34e1fd3f84c749adc05f3ad9342b71b95"
url: "https://pub.dev"
source: hosted
- version: "3.1.2"
+ version: "3.3.2"
matcher:
dependency: transitive
description:
name: matcher
- sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
+ sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6"
url: "https://pub.dev"
source: hosted
- version: "0.12.16+1"
+ version: "0.12.18"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
- sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
+ sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b"
url: "https://pub.dev"
source: hosted
- version: "0.11.1"
+ version: "0.13.0"
message_pack_dart:
dependency: transitive
description:
@@ -1001,18 +1018,34 @@ packages:
dependency: transitive
description:
name: meta
- sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
+ sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
url: "https://pub.dev"
source: hosted
- version: "1.15.0"
+ version: "1.17.0"
mime:
dependency: transitive
description:
name: mime
- sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a"
+ sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
url: "https://pub.dev"
source: hosted
- version: "1.0.6"
+ version: "2.0.0"
+ native_toolchain_c:
+ dependency: transitive
+ description:
+ name: native_toolchain_c
+ sha256: "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.17.4"
+ ndef_record:
+ dependency: transitive
+ description:
+ name: ndef_record
+ sha256: "210ffb12284961cab9e44b99462143316d9a20cd992581170706069ef77d74a6"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.4.2"
nested:
dependency: transitive
description:
@@ -1025,10 +1058,18 @@ packages:
dependency: "direct main"
description:
name: nfc_manager
- sha256: f5be75e90f8f2bff3ee49fbd7ef65bdd4a86ee679c2412e71ab2846a8cff8c59
+ sha256: "24c78b0e5702da53e7f8794d073624c0bee7cd99924f257cbd11f5d1c5866879"
url: "https://pub.dev"
source: hosted
- version: "3.5.0"
+ version: "4.1.1"
+ objective_c:
+ dependency: transitive
+ description:
+ name: objective_c
+ sha256: "100a1c87616ab6ed41ec263b083c0ef3261ee6cd1dc3b0f35f8ddfa4f996fe52"
+ url: "https://pub.dev"
+ source: hosted
+ version: "9.3.0"
octo_image:
dependency: transitive
description:
@@ -1041,90 +1082,90 @@ packages:
dependency: "direct main"
description:
name: open_file
- sha256: a070625d8684aa35a35d6701b91d684592f1ea03f5a737ee0d39332526d09421
+ sha256: b22decdae85b459eac24aeece48f33845c6f16d278a9c63d75c5355345ca236b
url: "https://pub.dev"
source: hosted
- version: "3.5.7"
+ version: "3.5.11"
open_file_android:
dependency: transitive
description:
name: open_file_android
- sha256: eaa52421c5e10ba42eb3958d2632be0fc8b4f7e53556296064339d363caa2233
+ sha256: "58141fcaece2f453a9684509a7275f231ac0e3d6ceb9a5e6de310a7dff9084aa"
url: "https://pub.dev"
source: hosted
- version: "1.0.3"
+ version: "1.0.6"
open_file_ios:
dependency: transitive
description:
name: open_file_ios
- sha256: "8d9c03495cf14ca70bdbf191894b822ba3b2629cc0046ee311cbbe504db66c44"
+ sha256: a5acd07ba1f304f807a97acbcc489457e1ad0aadff43c467987dd9eef814098f
url: "https://pub.dev"
source: hosted
- version: "1.0.2"
+ version: "1.0.4"
open_file_linux:
dependency: transitive
description:
name: open_file_linux
- sha256: cd2088722048b9c40f8615c6d83005fe0726e0e447e9cdfb40c2b65477291f7d
+ sha256: d189f799eecbb139c97f8bc7d303f9e720954fa4e0fa1b0b7294767e5f2d7550
url: "https://pub.dev"
source: hosted
- version: "0.0.4"
+ version: "0.0.5"
open_file_mac:
dependency: transitive
description:
name: open_file_mac
- sha256: "9d809f528cccc6dc9390caf50893eae9a6944e0f3b8a2558c7ad19e91c9244a1"
+ sha256: cd293f6750de6438ab2390513c99128ade8c974825d4d8128886d1cda8c64d01
url: "https://pub.dev"
source: hosted
- version: "1.0.1"
+ version: "1.0.4"
open_file_platform_interface:
dependency: transitive
description:
name: open_file_platform_interface
- sha256: "14c50efb1a9667cb96e4fa68d601e6ad348fe337b02789834029b37ae3631498"
+ sha256: "101b424ca359632699a7e1213e83d025722ab668b9fd1412338221bf9b0e5757"
url: "https://pub.dev"
source: hosted
- version: "1.0.2"
+ version: "1.0.3"
open_file_web:
dependency: transitive
description:
name: open_file_web
- sha256: cfc9d6091a844e305a3698c45f47f5cd88aabb143665dcfb0f5fd6f7524d357e
+ sha256: e3dbc9584856283dcb30aef5720558b90f88036360bd078e494ab80a80130c4f
url: "https://pub.dev"
source: hosted
- version: "0.0.3"
+ version: "0.0.4"
open_file_windows:
dependency: transitive
description:
name: open_file_windows
- sha256: "2f4318d2d3958ec8d63b6dd4430c15b1fcb2fe7a2113e83c734584501a5c6d81"
+ sha256: d26c31ddf935a94a1a3aa43a23f4fff8a5ff4eea395fe7a8cb819cf55431c875
url: "https://pub.dev"
source: hosted
- version: "0.0.2"
+ version: "0.0.3"
package_info_plus:
dependency: "direct main"
description:
name: package_info_plus
- sha256: "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191"
+ sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968"
url: "https://pub.dev"
source: hosted
- version: "8.3.0"
+ version: "8.3.1"
package_info_plus_platform_interface:
dependency: transitive
description:
name: package_info_plus_platform_interface
- sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c"
+ sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086"
url: "https://pub.dev"
source: hosted
- version: "3.2.0"
+ version: "3.2.1"
path:
dependency: transitive
description:
name: path
- sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
+ sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.dev"
source: hosted
- version: "1.9.0"
+ version: "1.9.1"
path_drawing:
dependency: transitive
description:
@@ -1137,34 +1178,34 @@ packages:
dependency: transitive
description:
name: path_parsing
- sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf
+ sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca"
url: "https://pub.dev"
source: hosted
- version: "1.0.1"
+ version: "1.1.0"
path_provider:
dependency: "direct main"
description:
name: path_provider
- sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378
+ sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
url: "https://pub.dev"
source: hosted
- version: "2.1.4"
+ version: "2.1.5"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
- sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7"
+ sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e
url: "https://pub.dev"
source: hosted
- version: "2.2.10"
+ version: "2.2.22"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
- sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16
+ sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699"
url: "https://pub.dev"
source: hosted
- version: "2.4.0"
+ version: "2.6.0"
path_provider_linux:
dependency: transitive
description:
@@ -1201,42 +1242,42 @@ packages:
dependency: "direct main"
description:
name: permission_handler
- sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb"
+ sha256: "59adad729136f01ea9e35a48f5d1395e25cba6cea552249ddbe9cf950f5d7849"
url: "https://pub.dev"
source: hosted
- version: "11.3.1"
+ version: "11.4.0"
permission_handler_android:
dependency: transitive
description:
name: permission_handler_android
- sha256: "76e4ab092c1b240d31177bb64d2b0bea43f43d0e23541ec866151b9f7b2490fa"
+ sha256: d3971dcdd76182a0c198c096b5db2f0884b0d4196723d21a866fc4cdea057ebc
url: "https://pub.dev"
source: hosted
- version: "12.0.12"
+ version: "12.1.0"
permission_handler_apple:
dependency: transitive
description:
name: permission_handler_apple
- sha256: e6f6d73b12438ef13e648c4ae56bd106ec60d17e90a59c4545db6781229082a0
+ sha256: f000131e755c54cf4d84a5d8bd6e4149e262cc31c5a8b1d698de1ac85fa41023
url: "https://pub.dev"
source: hosted
- version: "9.4.5"
+ version: "9.4.7"
permission_handler_html:
dependency: transitive
description:
name: permission_handler_html
- sha256: af26edbbb1f2674af65a8f4b56e1a6f526156bc273d0e65dd8075fab51c78851
+ sha256: "38f000e83355abb3392140f6bc3030660cfaef189e1f87824facb76300b4ff24"
url: "https://pub.dev"
source: hosted
- version: "0.1.3+2"
+ version: "0.1.3+5"
permission_handler_platform_interface:
dependency: transitive
description:
name: permission_handler_platform_interface
- sha256: e9c8eadee926c4532d0305dff94b85bf961f16759c3af791486613152af4b4f9
+ sha256: eb99b295153abce5d683cac8c02e22faab63e50679b937fa1bf67d58bb282878
url: "https://pub.dev"
source: hosted
- version: "4.2.3"
+ version: "4.3.0"
permission_handler_windows:
dependency: transitive
description:
@@ -1249,10 +1290,10 @@ packages:
dependency: transitive
description:
name: petitparser
- sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
+ sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675"
url: "https://pub.dev"
source: hosted
- version: "6.0.2"
+ version: "7.0.2"
pie_chart:
dependency: "direct main"
description:
@@ -1265,18 +1306,18 @@ packages:
dependency: "direct main"
description:
name: pinput
- sha256: "7bf9aa7d0eeb3da9f7d49d2087c7bc7d36cd277d2e94cc31c6da52e1ebb048d0"
+ sha256: "4c3f1b84768b47a56a1abdaca551bd7cef4ac673b882209039ecdf803a5d6e68"
url: "https://pub.dev"
source: hosted
- version: "5.0.0"
+ version: "6.0.2"
platform:
dependency: transitive
description:
name: platform
- sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65"
+ sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
url: "https://pub.dev"
source: hosted
- version: "3.1.5"
+ version: "3.1.6"
plugin_platform_interface:
dependency: transitive
description:
@@ -1297,10 +1338,10 @@ packages:
dependency: transitive
description:
name: pointer_interceptor_ios
- sha256: a6906772b3205b42c44614fcea28f818b1e5fdad73a4ca742a7bd49818d9c917
+ sha256: "03c5fa5896080963ab4917eeffda8d28c90f22863a496fb5ba13bc10943e40e4"
url: "https://pub.dev"
source: hosted
- version: "0.10.1"
+ version: "0.10.1+1"
pointer_interceptor_platform_interface:
dependency: transitive
description:
@@ -1313,10 +1354,10 @@ packages:
dependency: transitive
description:
name: pointer_interceptor_web
- sha256: "7a7087782110f8c1827170660b09f8aa893e0e9a61431dbbe2ac3fc482e8c044"
+ sha256: "460b600e71de6fcea2b3d5f662c92293c049c4319e27f0829310e5a953b3ee2a"
url: "https://pub.dev"
source: hosted
- version: "0.10.2+1"
+ version: "0.10.3"
pool:
dependency: transitive
description:
@@ -1325,54 +1366,62 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.5.2"
+ posix:
+ dependency: transitive
+ description:
+ name: posix
+ sha256: "185ef7606574f789b40f289c233efa52e96dead518aed988e040a10737febb07"
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.5.0"
provider:
dependency: "direct main"
description:
name: provider
- sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c
+ sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272"
url: "https://pub.dev"
source: hosted
- version: "6.1.2"
- qr_code_scanner_plus:
- dependency: "direct main"
+ version: "6.1.5+1"
+ pub_semver:
+ dependency: transitive
description:
- name: qr_code_scanner_plus
- sha256: a0f1ac8e13299b3db2646635f252fe2ec67222b848b24ed34d11052faf080bfa
+ name: pub_semver
+ sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
url: "https://pub.dev"
source: hosted
- version: "2.0.12"
- recase:
- dependency: transitive
+ version: "2.2.0"
+ qr_code_scanner_plus:
+ dependency: "direct main"
description:
- name: recase
- sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213
+ name: qr_code_scanner_plus
+ sha256: dae0596b2763c2fd0294f5cfddb1d3a21577ae4dc7fc1449eb5aafc957872f61
url: "https://pub.dev"
source: hosted
- version: "4.1.0"
+ version: "2.1.1"
record_mp3_plus:
dependency: "direct main"
description:
name: record_mp3_plus
- sha256: "654e2eb4ef028c1eaf73b981e9e2abd3756c61b0ee88dc6bc60416c474fbce5d"
+ sha256: e098bec0c4ef89b9a12d43d09ebb91d1328dc60e710c2040b6ab40a3fa5f8cd3
url: "https://pub.dev"
source: hosted
- version: "1.3.0"
+ version: "1.4.1"
rive:
dependency: "direct main"
description:
name: rive
- sha256: cd45b071b288e4bef05f25423e1001a9b3218b81745deae18c9b4d2a2952cc56
+ sha256: "2d7f0b0dd6c8368c3e5a47d0a38ee68306896920aa665b5bf59e7c589a6d35a2"
url: "https://pub.dev"
source: hosted
- version: "0.13.14"
- rive_common:
+ version: "0.14.4"
+ rive_native:
dependency: transitive
description:
- name: rive_common
- sha256: c7bf0781b1621629361579c300ac2f8aa1a238227a242202a596e82becc244d7
+ name: rive_native
+ sha256: fad6aac822340fa14a2cbcdc8cd064da4b4c74d22a5f6c827a59538d67f200e4
url: "https://pub.dev"
source: hosted
- version: "0.4.11"
+ version: "0.1.4"
rxdart:
dependency: transitive
description:
@@ -1385,10 +1434,10 @@ packages:
dependency: "direct main"
description:
name: safe_device
- sha256: f4930fe80ef28d047d3e600a318d1549732a8910d2b4342e7fd785aea2b1453e
+ sha256: cf49ba0ad6f705d5d043bfd5dfbe87b386b63a6abca5ddf7d01938f87f683f78
url: "https://pub.dev"
source: hosted
- version: "1.2.1"
+ version: "1.3.8"
share_plus:
dependency: "direct main"
description:
@@ -1409,26 +1458,26 @@ packages:
dependency: "direct main"
description:
name: shared_preferences
- sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051"
+ sha256: "2939ae520c9024cb197fc20dee269cd8cdbf564c8b5746374ec6cacdc5169e64"
url: "https://pub.dev"
source: hosted
- version: "2.3.2"
+ version: "2.5.4"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
- sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e"
+ sha256: "8374d6200ab33ac99031a852eba4c8eb2170c4bf20778b3e2c9eccb45384fb41"
url: "https://pub.dev"
source: hosted
- version: "2.3.2"
+ version: "2.4.21"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
- sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f
+ sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f"
url: "https://pub.dev"
source: hosted
- version: "2.5.2"
+ version: "2.5.6"
shared_preferences_linux:
dependency: transitive
description:
@@ -1449,10 +1498,10 @@ packages:
dependency: transitive
description:
name: shared_preferences_web
- sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e
+ sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019
url: "https://pub.dev"
source: hosted
- version: "2.4.2"
+ version: "2.4.3"
shared_preferences_windows:
dependency: transitive
description:
@@ -1465,10 +1514,10 @@ packages:
dependency: transitive
description:
name: shelf
- sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4
+ sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12
url: "https://pub.dev"
source: hosted
- version: "1.4.1"
+ version: "1.4.2"
shimmer:
dependency: "direct main"
description:
@@ -1505,23 +1554,23 @@ packages:
dependency: transitive
description: flutter
source: sdk
- version: "0.0.99"
+ version: "0.0.0"
source_span:
dependency: transitive
description:
name: source_span
- sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
+ sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab"
url: "https://pub.dev"
source: hosted
- version: "1.10.0"
+ version: "1.10.2"
speech_to_text:
dependency: "direct main"
description:
name: speech_to_text
- sha256: "6cf8f284997490ebef1d68f8707bef57dcf083f43c0f915cc285428520bfe6be"
+ sha256: c07557664974afa061f221d0d4186935bea4220728ea9446702825e8b988db04
url: "https://pub.dev"
source: hosted
- version: "7.0.0"
+ version: "7.3.0"
speech_to_text_platform_interface:
dependency: transitive
description:
@@ -1530,6 +1579,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.3.0"
+ speech_to_text_windows:
+ dependency: transitive
+ description:
+ name: speech_to_text_windows
+ sha256: "2c9846d18253c7bbe059a276297ef9f27e8a2745dead32192525beb208195072"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.0+beta.8"
sprintf:
dependency: transitive
description:
@@ -1542,18 +1599,42 @@ packages:
dependency: transitive
description:
name: sqflite
- sha256: ff5a2436ef8ebdfda748fbfe957f9981524cb5ff11e7bafa8c42771840e8a788
+ sha256: e2297b1da52f127bc7a3da11439985d9b536f75070f3325e62ada69a5c585d03
url: "https://pub.dev"
source: hosted
- version: "2.3.3+2"
+ version: "2.4.2"
+ sqflite_android:
+ dependency: "direct overridden"
+ description:
+ name: sqflite_android
+ sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.4.1"
sqflite_common:
dependency: transitive
description:
name: sqflite_common
- sha256: "2d8e607db72e9cb7748c9c6e739e2c9618320a5517de693d5a24609c4671b1a4"
+ sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6"
url: "https://pub.dev"
source: hosted
- version: "2.5.4+4"
+ version: "2.5.6"
+ sqflite_darwin:
+ dependency: transitive
+ description:
+ name: sqflite_darwin
+ sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.4.2"
+ sqflite_platform_interface:
+ dependency: transitive
+ description:
+ name: sqflite_platform_interface
+ sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.4.0"
sse:
dependency: transitive
description:
@@ -1574,58 +1655,58 @@ packages:
dependency: transitive
description:
name: stack_trace
- sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
+ sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.dev"
source: hosted
- version: "1.11.1"
+ version: "1.12.1"
stream_channel:
dependency: transitive
description:
name: stream_channel
- sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
+ sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.dev"
source: hosted
- version: "2.1.2"
+ version: "2.1.4"
string_scanner:
dependency: transitive
description:
name: string_scanner
- sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
+ sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
url: "https://pub.dev"
source: hosted
- version: "1.2.0"
+ version: "1.4.1"
synchronized:
dependency: transitive
description:
name: synchronized
- sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225"
+ sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0
url: "https://pub.dev"
source: hosted
- version: "3.3.0+3"
+ version: "3.4.0"
table_calendar:
dependency: "direct main"
description:
name: table_calendar
- sha256: "4ca32b2fc919452c9974abd4c6ea611a63e33b9e4f0b8c38dba3ac1f4a6549d1"
+ sha256: "0c0c6219878b363a2d5f40c7afb159d845f253d061dc3c822aa0d5fe0f721982"
url: "https://pub.dev"
source: hosted
- version: "3.1.2"
+ version: "3.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
- sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
+ sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
url: "https://pub.dev"
source: hosted
- version: "1.2.1"
+ version: "1.2.2"
test_api:
dependency: transitive
description:
name: test_api
- sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
+ sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636"
url: "https://pub.dev"
source: hosted
- version: "0.7.2"
+ version: "0.7.9"
timezone:
dependency: transitive
description:
@@ -1662,58 +1743,50 @@ packages:
dependency: transitive
description:
name: typed_data
- sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
- url: "https://pub.dev"
- source: hosted
- version: "1.3.2"
- universal_platform:
- dependency: transitive
- description:
- name: universal_platform
- sha256: "64e16458a0ea9b99260ceb5467a214c1f298d647c659af1bff6d3bf82536b1ec"
+ sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
url: "https://pub.dev"
source: hosted
- version: "1.1.0"
+ version: "1.4.0"
url_launcher:
dependency: "direct main"
description:
name: url_launcher
- sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3"
+ sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8
url: "https://pub.dev"
source: hosted
- version: "6.3.0"
+ version: "6.3.2"
url_launcher_android:
dependency: transitive
description:
name: url_launcher_android
- sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab
+ sha256: "767344bf3063897b5cf0db830e94f904528e6dd50a6dfaf839f0abf509009611"
url: "https://pub.dev"
source: hosted
- version: "6.3.10"
+ version: "6.3.28"
url_launcher_ios:
dependency: transitive
description:
name: url_launcher_ios
- sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e
+ sha256: "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0"
url: "https://pub.dev"
source: hosted
- version: "6.3.1"
+ version: "6.4.1"
url_launcher_linux:
dependency: transitive
description:
name: url_launcher_linux
- sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af
+ sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a
url: "https://pub.dev"
source: hosted
- version: "3.2.0"
+ version: "3.2.2"
url_launcher_macos:
dependency: transitive
description:
name: url_launcher_macos
- sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672"
+ sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18"
url: "https://pub.dev"
source: hosted
- version: "3.2.1"
+ version: "3.2.5"
url_launcher_platform_interface:
dependency: transitive
description:
@@ -1726,74 +1799,74 @@ packages:
dependency: transitive
description:
name: url_launcher_web
- sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e"
+ sha256: d0412fcf4c6b31ecfdb7762359b7206ffba3bbffd396c6d9f9c4616ece476c1f
url: "https://pub.dev"
source: hosted
- version: "2.3.3"
+ version: "2.4.2"
url_launcher_windows:
dependency: transitive
description:
name: url_launcher_windows
- sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185"
+ sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f"
url: "https://pub.dev"
source: hosted
- version: "3.1.2"
+ version: "3.1.5"
uuid:
dependency: transitive
description:
name: uuid
- sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
+ sha256: "1fef9e8e11e2991bb773070d4656b7bd5d850967a2456cfc83cf47925ba79489"
url: "https://pub.dev"
source: hosted
- version: "4.5.1"
+ version: "4.5.3"
vector_graphics:
dependency: transitive
description:
name: vector_graphics
- sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3"
+ sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6
url: "https://pub.dev"
source: hosted
- version: "1.1.11+1"
+ version: "1.1.19"
vector_graphics_codec:
dependency: transitive
description:
name: vector_graphics_codec
- sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da
+ sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146"
url: "https://pub.dev"
source: hosted
- version: "1.1.11+1"
+ version: "1.1.13"
vector_graphics_compiler:
dependency: transitive
description:
name: vector_graphics_compiler
- sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81"
+ sha256: "5a88dd14c0954a5398af544651c7fb51b457a2a556949bfb25369b210ef73a74"
url: "https://pub.dev"
source: hosted
- version: "1.1.11+1"
+ version: "1.2.0"
vector_math:
dependency: transitive
description:
name: vector_math
- sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
+ sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
url: "https://pub.dev"
source: hosted
- version: "2.1.4"
+ version: "2.2.0"
vm_service:
dependency: transitive
description:
name: vm_service
- sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
+ sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60"
url: "https://pub.dev"
source: hosted
- version: "14.2.5"
+ version: "15.0.2"
web:
dependency: transitive
description:
name: web
- sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb
+ sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
url: "https://pub.dev"
source: hosted
- version: "1.1.0"
+ version: "1.1.1"
web_socket:
dependency: transitive
description:
@@ -1814,42 +1887,42 @@ packages:
dependency: "direct main"
description:
name: wifi_iot
- sha256: "4a3301f71663a908bb50ffe6d9dc9e8b8383fab48368accf978409bde96e9aca"
+ sha256: "0861aed0c0afd6031b4337811d31cdd181c594a8a2c73e94826ea21d2cb4707b"
url: "https://pub.dev"
source: hosted
- version: "0.3.19+1"
+ version: "0.3.19+2"
win32:
dependency: "direct overridden"
description:
name: win32
- sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a"
+ sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e
url: "https://pub.dev"
source: hosted
- version: "5.5.4"
+ version: "5.15.0"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
- sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d
+ sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
url: "https://pub.dev"
source: hosted
- version: "1.0.4"
+ version: "1.1.0"
xml:
dependency: transitive
description:
name: xml
- sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
+ sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025"
url: "https://pub.dev"
source: hosted
- version: "6.5.0"
+ version: "6.6.1"
yaml:
dependency: transitive
description:
name: yaml
- sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"
+ sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
url: "https://pub.dev"
source: hosted
- version: "3.1.2"
+ version: "3.1.3"
sdks:
- dart: ">=3.5.0 <4.0.0"
- flutter: ">=3.24.0"
+ dart: ">=3.11.0 <4.0.0"
+ flutter: ">=3.38.4"
diff --git a/pubspec.yaml b/pubspec.yaml
index a3814153..6b5a77a0 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -37,46 +37,52 @@ dependencies:
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.5
- font_awesome_flutter: ^10.2.1
- http: ^1.2.2
- provider: ^6.0.3
- shared_preferences: ^2.0.15
- fluttertoast: ^8.0.9
- image_picker: ^1.1.2
- url_launcher: ^6.1.6
- flutter_launcher_icons: ^0.13.1
- package_info_plus: ^8.3.0
+ font_awesome_flutter: ^10.12.0
+ http: ^1.6.0
+ provider: ^6.1.5+1
+ shared_preferences: ^2.5.4
+ fluttertoast: ^9.0.0
+ image_picker: ^1.2.1
+ url_launcher: ^6.3.2
+ flutter_launcher_icons: ^0.14.4
+ package_info_plus: ^8.3.1
share_plus: ^10.1.4
- flutter_local_notifications: ^17.2.2
- cached_network_image: ^3.2.2
- carousel_slider: ^5.0.0
- intl: ^0.19.0
+ flutter_local_notifications: ^17.2.4
+ cached_network_image: ^3.4.1
+ carousel_slider: ^5.1.2
+ intl: ^0.20.2
flutter_typeahead: ^5.2.0
- speech_to_text: ^7.0.0
- firebase_core: ^3.4.1
- firebase_messaging: ^15.1.1
- qr_code_scanner_plus: ^2.0.12
- flutter_sound: ^9.3.1
- permission_handler: ^11.3.1
- rive: ^0.13.13
- another_flushbar:
- pinput:
- audioplayers: ^6.1.0
- flare_flutter: ^3.0.2
- signature: ^5.3.0
- flutter_svg: ^2.0.10+1
- file_picker: ^8.1.2
- record_mp3_plus: any
- path_provider: ^2.1.0
- open_file: ^3.3.2
+ speech_to_text: ^7.3.0
+ firebase_core: ^3.15.2
+ firebase_messaging: ^15.2.10
+ qr_code_scanner_plus: ^2.1.1
+ flutter_sound: ^9.30.0
+ permission_handler: ^11.4.0
+ rive: ^0.14.4
+ another_flushbar: ^1.12.32
+ pinput: ^6.0.2
+ audioplayers: ^6.6.0
+
+ flare_flutter:
+ git:
+ url: https://github.com/mbfakourii/Flare-Flutter.git
+ path: flare_flutter
+ ref: remove_hashValues
+
+ signature: ^5.5.0
+ flutter_svg: ^2.2.3
+ file_picker: ^8.3.7
+ record_mp3_plus: ^1.4.1
+ path_provider: ^2.1.5
+ open_file: ^3.5.11
localization: ^2.1.0
dotted_border: ^2.1.0
- lottie: ^3.1.2
+ lottie: ^3.3.2
shimmer: ^3.0.0
date_picker_timeline: ^1.2.6
flutter_advanced_switch: ^3.0.1
table_calendar: ^3.0.8
- image_cropper: ^8.0.2
+ image_cropper: ^8.1.0
flutter_timezone: ^3.0.1
device_calendar: ^4.3.3
pie_chart: ^5.4.0
@@ -85,32 +91,28 @@ dependencies:
# buttons_tabbar: ^1.1.2
flutter_custom_month_picker: ^0.1.3
local_auth: ^2.3.0
- google_api_availability: ^5.0.0
- huawei_push: ^6.13.0+300
- huawei_location: ^6.14.2+301
+ google_api_availability: ^5.0.1
+ huawei_push: ^6.14.0+300
+ huawei_location: ^6.16.0+300
geolocator: ^9.0.2
- nfc_manager: ^3.2.0
- wifi_iot: ^0.3.19+1
- just_audio: ^0.9.30
- safe_device: ^1.2.1
+ nfc_manager: ^4.1.1
+ wifi_iot: ^0.3.19+2
+ just_audio: ^0.9.46
+ safe_device: ^1.3.8
toggle_switch: ^2.3.0
- clipboard: ^2.0.2
+ clipboard: ^3.0.14
tree_view_flutter: ^1.0.2
audio_waveforms: ^1.3.0
signalr_netcore: ^1.4.4
- ellipsized_text: ^1.2.0
+ ellipsized_text: ^2.0.0
- local_auth_darwin: any
+ local_auth_darwin: ^1.4.0
dev_dependencies:
flutter_test:
sdk: flutter
dependency_overrides:
+ sqflite_android: 2.4.1
win32: ^5.5.4
- # The "flutter_lints" package below contains a set of recommended lints to
- # encourage good coding practices. The lint set provided by the package is
- # activated in the `analysis_options.yaml` file located at the root of your
- # package. See that file for information about deactivating specific lint
- # rules and activating additional ones.
flutter_lints: ^2.0.0
flutter_icons: