diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json
new file mode 100644
index 0000000..f15bca7
--- /dev/null
+++ b/.dart_tool/package_config.json
@@ -0,0 +1,1156 @@
+{
+ "configVersion": 2,
+ "packages": [
+ {
+ "name": "_fe_analyzer_shared",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/_fe_analyzer_shared-67.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "analyzer",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-6.4.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "animated_toggle_switch",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/animated_toggle_switch-0.8.7",
+ "packageUri": "lib/",
+ "languageVersion": "2.17"
+ },
+ {
+ "name": "ansicolor",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/ansicolor-2.0.3",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "archive",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/archive-3.6.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "args",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/args-2.7.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.3"
+ },
+ {
+ "name": "asn1lib",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/asn1lib-1.6.5",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "async",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/async-2.13.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "auto_size_text",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/auto_size_text-3.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "back_button_interceptor",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/back_button_interceptor-7.0.3",
+ "packageUri": "lib/",
+ "languageVersion": "3.2"
+ },
+ {
+ "name": "boolean_selector",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/boolean_selector-2.1.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.1"
+ },
+ {
+ "name": "build",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/build-2.4.1",
+ "packageUri": "lib/",
+ "languageVersion": "2.19"
+ },
+ {
+ "name": "build_config",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/build_config-1.2.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.7"
+ },
+ {
+ "name": "buttons_tabbar",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/buttons_tabbar-1.3.8",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "calendar_date_picker2",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/calendar_date_picker2-1.0.2",
+ "packageUri": "lib/",
+ "languageVersion": "2.16"
+ },
+ {
+ "name": "camera",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/camera-0.10.6",
+ "packageUri": "lib/",
+ "languageVersion": "3.2"
+ },
+ {
+ "name": "camera_android",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/camera_android-0.10.10+14",
+ "packageUri": "lib/",
+ "languageVersion": "3.9"
+ },
+ {
+ "name": "camera_avfoundation",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/camera_avfoundation-0.9.23+2",
+ "packageUri": "lib/",
+ "languageVersion": "3.9"
+ },
+ {
+ "name": "camera_platform_interface",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/camera_platform_interface-2.12.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.7"
+ },
+ {
+ "name": "camera_web",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/camera_web-0.3.5+3",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "characters",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/characters-1.4.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "checked_yaml",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/checked_yaml-2.0.4",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "chunked_stream",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/chunked_stream-1.4.2",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "circular_buffer",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/circular_buffer-0.12.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.13"
+ },
+ {
+ "name": "clock",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/clock-1.1.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "code_assets",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/code_assets-1.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.9"
+ },
+ {
+ "name": "collection",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/collection-1.19.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "connectivity_plus",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/connectivity_plus-6.1.5",
+ "packageUri": "lib/",
+ "languageVersion": "3.2"
+ },
+ {
+ "name": "connectivity_plus_platform_interface",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/connectivity_plus_platform_interface-2.0.1",
+ "packageUri": "lib/",
+ "languageVersion": "2.18"
+ },
+ {
+ "name": "convert",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/convert-3.1.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "country_code_picker",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/country_code_picker-3.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "cross_file",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/cross_file-0.3.5+2",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "crypto",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/crypto-3.0.7",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "csv",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/csv-6.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "cupertino_icons",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/cupertino_icons-1.0.8",
+ "packageUri": "lib/",
+ "languageVersion": "3.1"
+ },
+ {
+ "name": "dart_console",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/dart_console-4.1.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "dart_style",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/dart_style-2.3.6",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "dbus",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/dbus-0.7.12",
+ "packageUri": "lib/",
+ "languageVersion": "2.17"
+ },
+ {
+ "name": "dcli",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/dcli-6.1.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.3"
+ },
+ {
+ "name": "dcli_common",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/dcli_common-6.1.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "dcli_core",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/dcli_core-6.1.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "dcli_terminal",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/dcli_terminal-6.1.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "device_info_plus",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/device_info_plus-10.1.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.3"
+ },
+ {
+ "name": "device_info_plus_platform_interface",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/device_info_plus_platform_interface-7.0.3",
+ "packageUri": "lib/",
+ "languageVersion": "3.7"
+ },
+ {
+ "name": "dio",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/dio-4.0.6",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "dropdown_button2",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/dropdown_button2-2.3.9",
+ "packageUri": "lib/",
+ "languageVersion": "2.17"
+ },
+ {
+ "name": "encrypt",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/encrypt-5.0.3",
+ "packageUri": "lib/",
+ "languageVersion": "2.18"
+ },
+ {
+ "name": "equatable",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/equatable-2.0.8",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "fake_async",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/fake_async-1.3.3",
+ "packageUri": "lib/",
+ "languageVersion": "3.3"
+ },
+ {
+ "name": "ffi",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/ffi-2.2.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.7"
+ },
+ {
+ "name": "file",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/file-7.0.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "fixnum",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/fixnum-1.1.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.1"
+ },
+ {
+ "name": "flutter",
+ "rootUri": "file:///C:/flutter/packages/flutter",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "flutter_camera_overlay_new",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_camera_overlay_new-0.0.1",
+ "packageUri": "lib/",
+ "languageVersion": "2.19"
+ },
+ {
+ "name": "flutter_contacts",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_contacts-1.1.9+2",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "flutter_custom_clippers",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_custom_clippers-2.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "flutter_dotenv",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_dotenv-5.2.1",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "flutter_form_builder",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_form_builder-9.2.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "flutter_keyboard_visibility",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "flutter_keyboard_visibility_linux",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_keyboard_visibility_linux-1.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "flutter_keyboard_visibility_macos",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_keyboard_visibility_macos-1.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "flutter_keyboard_visibility_platform_interface",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_keyboard_visibility_platform_interface-2.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "flutter_keyboard_visibility_web",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_keyboard_visibility_web-2.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "flutter_keyboard_visibility_windows",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_keyboard_visibility_windows-1.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "flutter_lints",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_lints-6.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "flutter_plugin_android_lifecycle",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.33",
+ "packageUri": "lib/",
+ "languageVersion": "3.9"
+ },
+ {
+ "name": "flutter_rounded_date_picker",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_rounded_date_picker-3.0.4",
+ "packageUri": "lib/",
+ "languageVersion": "2.17"
+ },
+ {
+ "name": "flutter_svg",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_svg-2.2.3",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "flutter_test",
+ "rootUri": "file:///C:/flutter/packages/flutter_test",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "flutter_timer_countdown",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_timer_countdown-1.0.7",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "flutter_web_plugins",
+ "rootUri": "file:///C:/flutter/packages/flutter_web_plugins",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "flutter_zoom_drawer",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_zoom_drawer-3.1.2",
+ "packageUri": "lib/",
+ "languageVersion": "2.17"
+ },
+ {
+ "name": "fluttertoast",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/fluttertoast-8.2.14",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "functional_data",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/functional_data-1.2.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.19"
+ },
+ {
+ "name": "get",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/get-4.6.6",
+ "packageUri": "lib/",
+ "languageVersion": "2.15"
+ },
+ {
+ "name": "get_cli",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/get_cli-1.9.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "getwidget",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/getwidget-4.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "glob",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/glob-2.1.3",
+ "packageUri": "lib/",
+ "languageVersion": "3.3"
+ },
+ {
+ "name": "globbing",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/globbing-1.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "google_fonts",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/google_fonts-7.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.9"
+ },
+ {
+ "name": "hive",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/hive-2.2.3",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "hive_flutter",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/hive_flutter-1.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "hooks",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/hooks-1.0.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.9"
+ },
+ {
+ "name": "http",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/http-1.6.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "http_parser",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/http_parser-4.1.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "image",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/image-4.3.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.15"
+ },
+ {
+ "name": "ini",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/ini-2.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "intl",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/intl-0.19.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "introduction_slider",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/introduction_slider-2.0.1",
+ "packageUri": "lib/",
+ "languageVersion": "2.16"
+ },
+ {
+ "name": "js",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/js-0.7.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.7"
+ },
+ {
+ "name": "json2yaml",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/json2yaml-3.0.1",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "json_annotation",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/json_annotation-4.8.1",
+ "packageUri": "lib/",
+ "languageVersion": "2.19"
+ },
+ {
+ "name": "json_serializable",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.7.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "leak_tracker",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/leak_tracker-11.0.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.2"
+ },
+ {
+ "name": "leak_tracker_flutter_testing",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.10",
+ "packageUri": "lib/",
+ "languageVersion": "3.2"
+ },
+ {
+ "name": "leak_tracker_testing",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/leak_tracker_testing-3.0.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.2"
+ },
+ {
+ "name": "lints",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/lints-6.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "lists",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/lists-1.0.1",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "loader_overlay",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/loader_overlay-4.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "local_auth",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/local_auth-2.2.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.2"
+ },
+ {
+ "name": "local_auth_android",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/local_auth_android-1.0.56",
+ "packageUri": "lib/",
+ "languageVersion": "3.9"
+ },
+ {
+ "name": "local_auth_darwin",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/local_auth_darwin-1.6.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.9"
+ },
+ {
+ "name": "local_auth_platform_interface",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/local_auth_platform_interface-1.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.7"
+ },
+ {
+ "name": "local_auth_windows",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/local_auth_windows-1.0.11",
+ "packageUri": "lib/",
+ "languageVersion": "3.2"
+ },
+ {
+ "name": "logging",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/logging-1.3.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "matcher",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/matcher-0.12.17",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "material_color_utilities",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/material_color_utilities-0.11.1",
+ "packageUri": "lib/",
+ "languageVersion": "2.17"
+ },
+ {
+ "name": "meta",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/meta-1.17.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.5"
+ },
+ {
+ "name": "mime",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/mime-2.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.2"
+ },
+ {
+ "name": "mobile_scanner",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/mobile_scanner-6.0.11",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "native_synchronization_temp",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/native_synchronization_temp-0.7.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "native_toolchain_c",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/native_toolchain_c-0.17.4",
+ "packageUri": "lib/",
+ "languageVersion": "3.9"
+ },
+ {
+ "name": "nm",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/nm-0.5.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "objective_c",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/objective_c-9.3.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.10"
+ },
+ {
+ "name": "package_config",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/package_config-2.2.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "path",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/path-1.9.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "path_parsing",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/path_parsing-1.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.3"
+ },
+ {
+ "name": "path_provider",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider-2.1.3",
+ "packageUri": "lib/",
+ "languageVersion": "3.1"
+ },
+ {
+ "name": "path_provider_android",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_android-2.2.22",
+ "packageUri": "lib/",
+ "languageVersion": "3.9"
+ },
+ {
+ "name": "path_provider_foundation",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_foundation-2.6.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.10"
+ },
+ {
+ "name": "path_provider_linux",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_linux-2.2.1",
+ "packageUri": "lib/",
+ "languageVersion": "2.19"
+ },
+ {
+ "name": "path_provider_platform_interface",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_platform_interface-2.1.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "path_provider_windows",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_windows-2.3.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.2"
+ },
+ {
+ "name": "permission_handler",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/permission_handler-11.3.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.15"
+ },
+ {
+ "name": "permission_handler_android",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/permission_handler_android-12.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.5"
+ },
+ {
+ "name": "permission_handler_apple",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/permission_handler_apple-9.4.7",
+ "packageUri": "lib/",
+ "languageVersion": "2.18"
+ },
+ {
+ "name": "permission_handler_html",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/permission_handler_html-0.1.3+5",
+ "packageUri": "lib/",
+ "languageVersion": "3.3"
+ },
+ {
+ "name": "permission_handler_platform_interface",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/permission_handler_platform_interface-4.3.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.5"
+ },
+ {
+ "name": "permission_handler_windows",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/permission_handler_windows-0.2.1",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "petitparser",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/petitparser-7.0.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "pin_code_fields",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/pin_code_fields-8.0.1",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "platform",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/platform-3.1.6",
+ "packageUri": "lib/",
+ "languageVersion": "3.2"
+ },
+ {
+ "name": "plugin_platform_interface",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/plugin_platform_interface-2.1.8",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "pointycastle",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/pointycastle-3.9.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.2"
+ },
+ {
+ "name": "posix",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/posix-6.0.3",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "process_run",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/process_run-1.3.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.10"
+ },
+ {
+ "name": "pub_semver",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/pub_semver-2.2.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "pubspec_lock",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/pubspec_lock-3.0.2",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "pubspec_manager",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/pubspec_manager-1.0.3",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "pubspec_parse",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/pubspec_parse-1.4.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.2"
+ },
+ {
+ "name": "qr",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/qr-3.0.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "qr_flutter",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/qr_flutter-4.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.19"
+ },
+ {
+ "name": "quickalert",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/quickalert-1.0.2",
+ "packageUri": "lib/",
+ "languageVersion": "2.17"
+ },
+ {
+ "name": "recase",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/recase-4.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "responsive_framework",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/responsive_framework-1.4.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "root_checker_plus",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/root_checker_plus-0.0.7",
+ "packageUri": "lib/",
+ "languageVersion": "2.17"
+ },
+ {
+ "name": "scope",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/scope-5.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "screenshot",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/screenshot-3.0.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "settings_yaml",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/settings_yaml-8.3.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "share_plus",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/share_plus-12.0.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "share_plus_platform_interface",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/share_plus_platform_interface-6.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.18"
+ },
+ {
+ "name": "simple_speed_dial",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/simple_speed_dial-0.1.7",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "sky_engine",
+ "rootUri": "file:///C:/flutter/bin/cache/pkg/sky_engine",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "source_gen",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/source_gen-1.5.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "source_helper",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/source_helper-1.3.5",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "source_span",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/source_span-1.10.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.1"
+ },
+ {
+ "name": "stack_trace",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/stack_trace-1.12.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "stream_channel",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/stream_channel-2.1.4",
+ "packageUri": "lib/",
+ "languageVersion": "3.3"
+ },
+ {
+ "name": "stream_transform",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/stream_transform-2.1.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.1"
+ },
+ {
+ "name": "string_scanner",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/string_scanner-1.4.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.1"
+ },
+ {
+ "name": "string_validator",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/string_validator-1.0.2",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "strings",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/strings-3.1.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "stylish_bottom_bar",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/stylish_bottom_bar-1.0.3",
+ "packageUri": "lib/",
+ "languageVersion": "2.18"
+ },
+ {
+ "name": "sum_types",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/sum_types-0.3.5",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "synchronized",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/synchronized-3.4.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "system_info2",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/system_info2-4.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "2.19"
+ },
+ {
+ "name": "term_glyph",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/term_glyph-1.2.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.1"
+ },
+ {
+ "name": "test_api",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/test_api-0.7.7",
+ "packageUri": "lib/",
+ "languageVersion": "3.5"
+ },
+ {
+ "name": "timer_count_down",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/timer_count_down-2.2.2",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "typed_data",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/typed_data-1.4.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.5"
+ },
+ {
+ "name": "unicode",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/unicode-0.3.1",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "url_launcher_linux",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/url_launcher_linux-3.2.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "url_launcher_platform_interface",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/url_launcher_platform_interface-2.3.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.1"
+ },
+ {
+ "name": "url_launcher_web",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/url_launcher_web-2.4.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.10"
+ },
+ {
+ "name": "url_launcher_windows",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/url_launcher_windows-3.1.5",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "uuid",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/uuid-4.5.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "validators2",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/validators2-5.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.0"
+ },
+ {
+ "name": "vector_graphics",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics-1.1.19",
+ "packageUri": "lib/",
+ "languageVersion": "3.6"
+ },
+ {
+ "name": "vector_graphics_codec",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_codec-1.1.13",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "vector_graphics_compiler",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_compiler-1.1.20",
+ "packageUri": "lib/",
+ "languageVersion": "3.9"
+ },
+ {
+ "name": "vector_math",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/vector_math-2.2.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.1"
+ },
+ {
+ "name": "version",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/version-3.0.2",
+ "packageUri": "lib/",
+ "languageVersion": "2.12"
+ },
+ {
+ "name": "vm_service",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/vm_service-15.0.2",
+ "packageUri": "lib/",
+ "languageVersion": "3.5"
+ },
+ {
+ "name": "watcher",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/watcher-1.2.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "web",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/web-1.1.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "win32",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/win32-5.15.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "win32_registry",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/win32_registry-1.1.5",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "xdg_directories",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/xdg_directories-1.1.0",
+ "packageUri": "lib/",
+ "languageVersion": "3.3"
+ },
+ {
+ "name": "xml",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/xml-6.6.1",
+ "packageUri": "lib/",
+ "languageVersion": "3.8"
+ },
+ {
+ "name": "yaml",
+ "rootUri": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache/hosted/pub.dev/yaml-3.1.3",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
+ },
+ {
+ "name": "uco_mobile_poc",
+ "rootUri": "../",
+ "packageUri": "lib/",
+ "languageVersion": "3.10"
+ }
+ ],
+ "generator": "pub",
+ "generatorVersion": "3.10.7",
+ "flutterRoot": "file:///C:/flutter",
+ "flutterVersion": "3.38.7",
+ "pubCache": "file:///C:/Users/samanwaqar/AppData/Local/Pub/Cache"
+}
diff --git a/.dart_tool/package_graph.json b/.dart_tool/package_graph.json
new file mode 100644
index 0000000..81c4321
--- /dev/null
+++ b/.dart_tool/package_graph.json
@@ -0,0 +1,1724 @@
+{
+ "roots": [
+ "uco_mobile_poc"
+ ],
+ "packages": [
+ {
+ "name": "uco_mobile_poc",
+ "version": "1.0.0+1",
+ "dependencies": [
+ "animated_toggle_switch",
+ "auto_size_text",
+ "buttons_tabbar",
+ "calendar_date_picker2",
+ "camera",
+ "connectivity_plus",
+ "country_code_picker",
+ "cupertino_icons",
+ "device_info_plus",
+ "dio",
+ "dropdown_button2",
+ "encrypt",
+ "flutter",
+ "flutter_camera_overlay_new",
+ "flutter_contacts",
+ "flutter_custom_clippers",
+ "flutter_dotenv",
+ "flutter_form_builder",
+ "flutter_keyboard_visibility",
+ "flutter_rounded_date_picker",
+ "flutter_svg",
+ "flutter_timer_countdown",
+ "flutter_zoom_drawer",
+ "fluttertoast",
+ "get",
+ "get_cli",
+ "getwidget",
+ "google_fonts",
+ "hive_flutter",
+ "image",
+ "introduction_slider",
+ "json_serializable",
+ "loader_overlay",
+ "local_auth",
+ "mobile_scanner",
+ "path_provider",
+ "permission_handler",
+ "pin_code_fields",
+ "pointycastle",
+ "qr_flutter",
+ "quickalert",
+ "responsive_framework",
+ "root_checker_plus",
+ "screenshot",
+ "share_plus",
+ "simple_speed_dial",
+ "string_validator",
+ "stylish_bottom_bar",
+ "timer_count_down"
+ ],
+ "devDependencies": [
+ "flutter_lints",
+ "flutter_test"
+ ]
+ },
+ {
+ "name": "flutter_lints",
+ "version": "6.0.0",
+ "dependencies": [
+ "lints"
+ ]
+ },
+ {
+ "name": "flutter_test",
+ "version": "0.0.0",
+ "dependencies": [
+ "clock",
+ "collection",
+ "fake_async",
+ "flutter",
+ "leak_tracker_flutter_testing",
+ "matcher",
+ "meta",
+ "path",
+ "stack_trace",
+ "stream_channel",
+ "test_api",
+ "vector_math"
+ ]
+ },
+ {
+ "name": "flutter_dotenv",
+ "version": "5.2.1",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "pointycastle",
+ "version": "3.9.1",
+ "dependencies": [
+ "collection",
+ "convert",
+ "js"
+ ]
+ },
+ {
+ "name": "encrypt",
+ "version": "5.0.3",
+ "dependencies": [
+ "args",
+ "asn1lib",
+ "clock",
+ "collection",
+ "crypto",
+ "pointycastle"
+ ]
+ },
+ {
+ "name": "root_checker_plus",
+ "version": "0.0.7",
+ "dependencies": [
+ "flutter",
+ "plugin_platform_interface"
+ ]
+ },
+ {
+ "name": "device_info_plus",
+ "version": "10.1.2",
+ "dependencies": [
+ "device_info_plus_platform_interface",
+ "ffi",
+ "file",
+ "flutter",
+ "flutter_web_plugins",
+ "meta",
+ "web",
+ "win32",
+ "win32_registry"
+ ]
+ },
+ {
+ "name": "get_cli",
+ "version": "1.9.1",
+ "dependencies": [
+ "ansicolor",
+ "collection",
+ "dart_style",
+ "dcli",
+ "http",
+ "intl",
+ "meta",
+ "path",
+ "process_run",
+ "pub_semver",
+ "pubspec_parse",
+ "recase",
+ "version",
+ "yaml"
+ ]
+ },
+ {
+ "name": "connectivity_plus",
+ "version": "6.1.5",
+ "dependencies": [
+ "collection",
+ "connectivity_plus_platform_interface",
+ "flutter",
+ "flutter_web_plugins",
+ "meta",
+ "nm",
+ "web"
+ ]
+ },
+ {
+ "name": "image",
+ "version": "4.3.0",
+ "dependencies": [
+ "archive",
+ "meta",
+ "xml"
+ ]
+ },
+ {
+ "name": "auto_size_text",
+ "version": "3.0.0",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "animated_toggle_switch",
+ "version": "0.8.7",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "flutter_keyboard_visibility",
+ "version": "6.0.0",
+ "dependencies": [
+ "flutter",
+ "flutter_keyboard_visibility_linux",
+ "flutter_keyboard_visibility_macos",
+ "flutter_keyboard_visibility_platform_interface",
+ "flutter_keyboard_visibility_web",
+ "flutter_keyboard_visibility_windows",
+ "meta"
+ ]
+ },
+ {
+ "name": "screenshot",
+ "version": "3.0.0",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "mobile_scanner",
+ "version": "6.0.11",
+ "dependencies": [
+ "flutter",
+ "flutter_web_plugins",
+ "plugin_platform_interface",
+ "web"
+ ]
+ },
+ {
+ "name": "qr_flutter",
+ "version": "4.1.0",
+ "dependencies": [
+ "flutter",
+ "qr"
+ ]
+ },
+ {
+ "name": "path_provider",
+ "version": "2.1.3",
+ "dependencies": [
+ "flutter",
+ "path_provider_android",
+ "path_provider_foundation",
+ "path_provider_linux",
+ "path_provider_platform_interface",
+ "path_provider_windows"
+ ]
+ },
+ {
+ "name": "buttons_tabbar",
+ "version": "1.3.8",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "json_serializable",
+ "version": "6.7.1",
+ "dependencies": [
+ "analyzer",
+ "async",
+ "build",
+ "build_config",
+ "collection",
+ "json_annotation",
+ "meta",
+ "path",
+ "pub_semver",
+ "pubspec_parse",
+ "source_gen",
+ "source_helper"
+ ]
+ },
+ {
+ "name": "calendar_date_picker2",
+ "version": "1.0.2",
+ "dependencies": [
+ "flutter",
+ "intl"
+ ]
+ },
+ {
+ "name": "flutter_rounded_date_picker",
+ "version": "3.0.4",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "getwidget",
+ "version": "4.0.0",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "loader_overlay",
+ "version": "4.0.0",
+ "dependencies": [
+ "back_button_interceptor",
+ "flutter"
+ ]
+ },
+ {
+ "name": "country_code_picker",
+ "version": "3.0.0",
+ "dependencies": [
+ "collection",
+ "flutter"
+ ]
+ },
+ {
+ "name": "string_validator",
+ "version": "1.0.2",
+ "dependencies": []
+ },
+ {
+ "name": "share_plus",
+ "version": "12.0.1",
+ "dependencies": [
+ "cross_file",
+ "ffi",
+ "file",
+ "flutter",
+ "flutter_web_plugins",
+ "meta",
+ "mime",
+ "share_plus_platform_interface",
+ "url_launcher_linux",
+ "url_launcher_platform_interface",
+ "url_launcher_web",
+ "url_launcher_windows",
+ "web",
+ "win32"
+ ]
+ },
+ {
+ "name": "dio",
+ "version": "4.0.6",
+ "dependencies": [
+ "http_parser",
+ "path"
+ ]
+ },
+ {
+ "name": "local_auth",
+ "version": "2.2.0",
+ "dependencies": [
+ "flutter",
+ "local_auth_android",
+ "local_auth_darwin",
+ "local_auth_platform_interface",
+ "local_auth_windows"
+ ]
+ },
+ {
+ "name": "responsive_framework",
+ "version": "1.4.0",
+ "dependencies": [
+ "collection",
+ "flutter"
+ ]
+ },
+ {
+ "name": "flutter_svg",
+ "version": "2.2.3",
+ "dependencies": [
+ "flutter",
+ "http",
+ "vector_graphics",
+ "vector_graphics_codec",
+ "vector_graphics_compiler"
+ ]
+ },
+ {
+ "name": "flutter_camera_overlay_new",
+ "version": "0.0.1",
+ "dependencies": [
+ "camera",
+ "flutter",
+ "plugin_platform_interface"
+ ]
+ },
+ {
+ "name": "camera",
+ "version": "0.10.6",
+ "dependencies": [
+ "camera_android",
+ "camera_avfoundation",
+ "camera_platform_interface",
+ "camera_web",
+ "flutter",
+ "flutter_plugin_android_lifecycle"
+ ]
+ },
+ {
+ "name": "flutter_form_builder",
+ "version": "9.2.1",
+ "dependencies": [
+ "flutter",
+ "intl"
+ ]
+ },
+ {
+ "name": "permission_handler",
+ "version": "11.3.0",
+ "dependencies": [
+ "flutter",
+ "meta",
+ "permission_handler_android",
+ "permission_handler_apple",
+ "permission_handler_html",
+ "permission_handler_platform_interface",
+ "permission_handler_windows"
+ ]
+ },
+ {
+ "name": "flutter_contacts",
+ "version": "1.1.9+2",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "dropdown_button2",
+ "version": "2.3.9",
+ "dependencies": [
+ "flutter",
+ "meta"
+ ]
+ },
+ {
+ "name": "stylish_bottom_bar",
+ "version": "1.0.3",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "simple_speed_dial",
+ "version": "0.1.7",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "quickalert",
+ "version": "1.0.2",
+ "dependencies": [
+ "flutter",
+ "vector_math"
+ ]
+ },
+ {
+ "name": "flutter_zoom_drawer",
+ "version": "3.1.2",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "flutter_timer_countdown",
+ "version": "1.0.7",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "timer_count_down",
+ "version": "2.2.2",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "pin_code_fields",
+ "version": "8.0.1",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "fluttertoast",
+ "version": "8.2.14",
+ "dependencies": [
+ "flutter",
+ "flutter_web_plugins",
+ "web"
+ ]
+ },
+ {
+ "name": "flutter_custom_clippers",
+ "version": "2.1.0",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "introduction_slider",
+ "version": "2.0.1",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "hive_flutter",
+ "version": "1.1.0",
+ "dependencies": [
+ "flutter",
+ "hive",
+ "path",
+ "path_provider"
+ ]
+ },
+ {
+ "name": "google_fonts",
+ "version": "7.0.0",
+ "dependencies": [
+ "crypto",
+ "flutter",
+ "http",
+ "path_provider"
+ ]
+ },
+ {
+ "name": "get",
+ "version": "4.6.6",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "cupertino_icons",
+ "version": "1.0.8",
+ "dependencies": []
+ },
+ {
+ "name": "flutter",
+ "version": "0.0.0",
+ "dependencies": [
+ "characters",
+ "collection",
+ "material_color_utilities",
+ "meta",
+ "sky_engine",
+ "vector_math"
+ ]
+ },
+ {
+ "name": "lints",
+ "version": "6.1.0",
+ "dependencies": []
+ },
+ {
+ "name": "stream_channel",
+ "version": "2.1.4",
+ "dependencies": [
+ "async"
+ ]
+ },
+ {
+ "name": "meta",
+ "version": "1.17.0",
+ "dependencies": []
+ },
+ {
+ "name": "collection",
+ "version": "1.19.1",
+ "dependencies": []
+ },
+ {
+ "name": "leak_tracker_flutter_testing",
+ "version": "3.0.10",
+ "dependencies": [
+ "flutter",
+ "leak_tracker",
+ "leak_tracker_testing",
+ "matcher",
+ "meta"
+ ]
+ },
+ {
+ "name": "vector_math",
+ "version": "2.2.0",
+ "dependencies": []
+ },
+ {
+ "name": "stack_trace",
+ "version": "1.12.1",
+ "dependencies": [
+ "path"
+ ]
+ },
+ {
+ "name": "clock",
+ "version": "1.1.2",
+ "dependencies": []
+ },
+ {
+ "name": "fake_async",
+ "version": "1.3.3",
+ "dependencies": [
+ "clock",
+ "collection"
+ ]
+ },
+ {
+ "name": "path",
+ "version": "1.9.1",
+ "dependencies": []
+ },
+ {
+ "name": "matcher",
+ "version": "0.12.17",
+ "dependencies": [
+ "async",
+ "meta",
+ "stack_trace",
+ "term_glyph",
+ "test_api"
+ ]
+ },
+ {
+ "name": "test_api",
+ "version": "0.7.7",
+ "dependencies": [
+ "async",
+ "boolean_selector",
+ "collection",
+ "meta",
+ "source_span",
+ "stack_trace",
+ "stream_channel",
+ "string_scanner",
+ "term_glyph"
+ ]
+ },
+ {
+ "name": "js",
+ "version": "0.7.2",
+ "dependencies": []
+ },
+ {
+ "name": "convert",
+ "version": "3.1.2",
+ "dependencies": [
+ "typed_data"
+ ]
+ },
+ {
+ "name": "crypto",
+ "version": "3.0.7",
+ "dependencies": [
+ "typed_data"
+ ]
+ },
+ {
+ "name": "asn1lib",
+ "version": "1.6.5",
+ "dependencies": []
+ },
+ {
+ "name": "args",
+ "version": "2.7.0",
+ "dependencies": []
+ },
+ {
+ "name": "plugin_platform_interface",
+ "version": "2.1.8",
+ "dependencies": [
+ "meta"
+ ]
+ },
+ {
+ "name": "win32_registry",
+ "version": "1.1.5",
+ "dependencies": [
+ "ffi",
+ "win32"
+ ]
+ },
+ {
+ "name": "win32",
+ "version": "5.15.0",
+ "dependencies": [
+ "ffi"
+ ]
+ },
+ {
+ "name": "web",
+ "version": "1.1.1",
+ "dependencies": []
+ },
+ {
+ "name": "flutter_web_plugins",
+ "version": "0.0.0",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "file",
+ "version": "7.0.1",
+ "dependencies": [
+ "meta",
+ "path"
+ ]
+ },
+ {
+ "name": "ffi",
+ "version": "2.2.0",
+ "dependencies": []
+ },
+ {
+ "name": "device_info_plus_platform_interface",
+ "version": "7.0.3",
+ "dependencies": [
+ "flutter",
+ "meta",
+ "plugin_platform_interface"
+ ]
+ },
+ {
+ "name": "yaml",
+ "version": "3.1.3",
+ "dependencies": [
+ "collection",
+ "source_span",
+ "string_scanner"
+ ]
+ },
+ {
+ "name": "version",
+ "version": "3.0.2",
+ "dependencies": []
+ },
+ {
+ "name": "recase",
+ "version": "4.1.0",
+ "dependencies": []
+ },
+ {
+ "name": "pub_semver",
+ "version": "2.2.0",
+ "dependencies": [
+ "collection"
+ ]
+ },
+ {
+ "name": "pubspec_parse",
+ "version": "1.4.0",
+ "dependencies": [
+ "checked_yaml",
+ "collection",
+ "json_annotation",
+ "pub_semver",
+ "yaml"
+ ]
+ },
+ {
+ "name": "process_run",
+ "version": "1.3.0",
+ "dependencies": [
+ "args",
+ "collection",
+ "meta",
+ "path",
+ "pub_semver",
+ "string_scanner",
+ "synchronized",
+ "yaml"
+ ]
+ },
+ {
+ "name": "intl",
+ "version": "0.19.0",
+ "dependencies": [
+ "clock",
+ "meta",
+ "path"
+ ]
+ },
+ {
+ "name": "http",
+ "version": "1.6.0",
+ "dependencies": [
+ "async",
+ "http_parser",
+ "meta",
+ "web"
+ ]
+ },
+ {
+ "name": "dcli",
+ "version": "6.1.2",
+ "dependencies": [
+ "archive",
+ "args",
+ "async",
+ "chunked_stream",
+ "collection",
+ "convert",
+ "crypto",
+ "csv",
+ "dart_console",
+ "dcli_common",
+ "dcli_core",
+ "dcli_terminal",
+ "equatable",
+ "ffi",
+ "file",
+ "glob",
+ "ini",
+ "logging",
+ "meta",
+ "mime",
+ "native_synchronization_temp",
+ "path",
+ "posix",
+ "pub_semver",
+ "pubspec_lock",
+ "pubspec_manager",
+ "scope",
+ "settings_yaml",
+ "stack_trace",
+ "system_info2",
+ "uuid",
+ "validators2",
+ "win32",
+ "yaml"
+ ]
+ },
+ {
+ "name": "dart_style",
+ "version": "2.3.6",
+ "dependencies": [
+ "analyzer",
+ "args",
+ "collection",
+ "path",
+ "pub_semver",
+ "source_span"
+ ]
+ },
+ {
+ "name": "ansicolor",
+ "version": "2.0.3",
+ "dependencies": []
+ },
+ {
+ "name": "nm",
+ "version": "0.5.0",
+ "dependencies": [
+ "dbus"
+ ]
+ },
+ {
+ "name": "connectivity_plus_platform_interface",
+ "version": "2.0.1",
+ "dependencies": [
+ "flutter",
+ "meta",
+ "plugin_platform_interface"
+ ]
+ },
+ {
+ "name": "xml",
+ "version": "6.6.1",
+ "dependencies": [
+ "collection",
+ "meta",
+ "petitparser"
+ ]
+ },
+ {
+ "name": "archive",
+ "version": "3.6.1",
+ "dependencies": [
+ "crypto",
+ "path"
+ ]
+ },
+ {
+ "name": "flutter_keyboard_visibility_windows",
+ "version": "1.0.0",
+ "dependencies": [
+ "flutter",
+ "flutter_keyboard_visibility_platform_interface"
+ ]
+ },
+ {
+ "name": "flutter_keyboard_visibility_web",
+ "version": "2.0.0",
+ "dependencies": [
+ "flutter",
+ "flutter_keyboard_visibility_platform_interface",
+ "flutter_web_plugins"
+ ]
+ },
+ {
+ "name": "flutter_keyboard_visibility_macos",
+ "version": "1.0.0",
+ "dependencies": [
+ "flutter",
+ "flutter_keyboard_visibility_platform_interface"
+ ]
+ },
+ {
+ "name": "flutter_keyboard_visibility_linux",
+ "version": "1.0.0",
+ "dependencies": [
+ "flutter",
+ "flutter_keyboard_visibility_platform_interface"
+ ]
+ },
+ {
+ "name": "flutter_keyboard_visibility_platform_interface",
+ "version": "2.0.0",
+ "dependencies": [
+ "flutter",
+ "meta",
+ "plugin_platform_interface"
+ ]
+ },
+ {
+ "name": "qr",
+ "version": "3.0.2",
+ "dependencies": [
+ "meta"
+ ]
+ },
+ {
+ "name": "path_provider_windows",
+ "version": "2.3.0",
+ "dependencies": [
+ "ffi",
+ "flutter",
+ "path",
+ "path_provider_platform_interface"
+ ]
+ },
+ {
+ "name": "path_provider_platform_interface",
+ "version": "2.1.2",
+ "dependencies": [
+ "flutter",
+ "platform",
+ "plugin_platform_interface"
+ ]
+ },
+ {
+ "name": "path_provider_linux",
+ "version": "2.2.1",
+ "dependencies": [
+ "ffi",
+ "flutter",
+ "path",
+ "path_provider_platform_interface",
+ "xdg_directories"
+ ]
+ },
+ {
+ "name": "path_provider_foundation",
+ "version": "2.6.0",
+ "dependencies": [
+ "ffi",
+ "flutter",
+ "objective_c",
+ "path_provider_platform_interface"
+ ]
+ },
+ {
+ "name": "path_provider_android",
+ "version": "2.2.22",
+ "dependencies": [
+ "flutter",
+ "path_provider_platform_interface"
+ ]
+ },
+ {
+ "name": "source_helper",
+ "version": "1.3.5",
+ "dependencies": [
+ "analyzer",
+ "collection",
+ "source_gen"
+ ]
+ },
+ {
+ "name": "source_gen",
+ "version": "1.5.0",
+ "dependencies": [
+ "analyzer",
+ "async",
+ "build",
+ "dart_style",
+ "glob",
+ "path",
+ "source_span",
+ "yaml"
+ ]
+ },
+ {
+ "name": "json_annotation",
+ "version": "4.8.1",
+ "dependencies": [
+ "meta"
+ ]
+ },
+ {
+ "name": "build_config",
+ "version": "1.2.0",
+ "dependencies": [
+ "checked_yaml",
+ "json_annotation",
+ "path",
+ "pubspec_parse"
+ ]
+ },
+ {
+ "name": "build",
+ "version": "2.4.1",
+ "dependencies": [
+ "analyzer",
+ "async",
+ "convert",
+ "crypto",
+ "glob",
+ "logging",
+ "meta",
+ "package_config",
+ "path"
+ ]
+ },
+ {
+ "name": "async",
+ "version": "2.13.0",
+ "dependencies": [
+ "collection",
+ "meta"
+ ]
+ },
+ {
+ "name": "analyzer",
+ "version": "6.4.1",
+ "dependencies": [
+ "_fe_analyzer_shared",
+ "collection",
+ "convert",
+ "crypto",
+ "glob",
+ "meta",
+ "package_config",
+ "path",
+ "pub_semver",
+ "source_span",
+ "watcher",
+ "yaml"
+ ]
+ },
+ {
+ "name": "back_button_interceptor",
+ "version": "7.0.3",
+ "dependencies": [
+ "collection",
+ "flutter"
+ ]
+ },
+ {
+ "name": "url_launcher_platform_interface",
+ "version": "2.3.2",
+ "dependencies": [
+ "flutter",
+ "plugin_platform_interface"
+ ]
+ },
+ {
+ "name": "url_launcher_linux",
+ "version": "3.2.2",
+ "dependencies": [
+ "flutter",
+ "url_launcher_platform_interface"
+ ]
+ },
+ {
+ "name": "url_launcher_windows",
+ "version": "3.1.5",
+ "dependencies": [
+ "flutter",
+ "url_launcher_platform_interface"
+ ]
+ },
+ {
+ "name": "url_launcher_web",
+ "version": "2.4.2",
+ "dependencies": [
+ "flutter",
+ "flutter_web_plugins",
+ "url_launcher_platform_interface",
+ "web"
+ ]
+ },
+ {
+ "name": "share_plus_platform_interface",
+ "version": "6.1.0",
+ "dependencies": [
+ "cross_file",
+ "flutter",
+ "meta",
+ "mime",
+ "path_provider",
+ "plugin_platform_interface",
+ "uuid"
+ ]
+ },
+ {
+ "name": "mime",
+ "version": "2.0.0",
+ "dependencies": []
+ },
+ {
+ "name": "cross_file",
+ "version": "0.3.5+2",
+ "dependencies": [
+ "meta",
+ "web"
+ ]
+ },
+ {
+ "name": "http_parser",
+ "version": "4.1.2",
+ "dependencies": [
+ "collection",
+ "source_span",
+ "string_scanner",
+ "typed_data"
+ ]
+ },
+ {
+ "name": "local_auth_windows",
+ "version": "1.0.11",
+ "dependencies": [
+ "flutter",
+ "local_auth_platform_interface"
+ ]
+ },
+ {
+ "name": "local_auth_platform_interface",
+ "version": "1.1.0",
+ "dependencies": [
+ "flutter",
+ "plugin_platform_interface"
+ ]
+ },
+ {
+ "name": "local_auth_darwin",
+ "version": "1.6.1",
+ "dependencies": [
+ "flutter",
+ "intl",
+ "local_auth_platform_interface"
+ ]
+ },
+ {
+ "name": "local_auth_android",
+ "version": "1.0.56",
+ "dependencies": [
+ "flutter",
+ "flutter_plugin_android_lifecycle",
+ "intl",
+ "local_auth_platform_interface"
+ ]
+ },
+ {
+ "name": "vector_graphics_compiler",
+ "version": "1.1.20",
+ "dependencies": [
+ "args",
+ "meta",
+ "path",
+ "path_parsing",
+ "vector_graphics_codec",
+ "xml"
+ ]
+ },
+ {
+ "name": "vector_graphics_codec",
+ "version": "1.1.13",
+ "dependencies": []
+ },
+ {
+ "name": "vector_graphics",
+ "version": "1.1.19",
+ "dependencies": [
+ "flutter",
+ "http",
+ "vector_graphics_codec"
+ ]
+ },
+ {
+ "name": "flutter_plugin_android_lifecycle",
+ "version": "2.0.33",
+ "dependencies": [
+ "flutter"
+ ]
+ },
+ {
+ "name": "camera_web",
+ "version": "0.3.5+3",
+ "dependencies": [
+ "camera_platform_interface",
+ "flutter",
+ "flutter_web_plugins",
+ "stream_transform",
+ "web"
+ ]
+ },
+ {
+ "name": "camera_platform_interface",
+ "version": "2.12.0",
+ "dependencies": [
+ "cross_file",
+ "flutter",
+ "plugin_platform_interface",
+ "stream_transform"
+ ]
+ },
+ {
+ "name": "camera_avfoundation",
+ "version": "0.9.23+2",
+ "dependencies": [
+ "camera_platform_interface",
+ "flutter",
+ "stream_transform"
+ ]
+ },
+ {
+ "name": "camera_android",
+ "version": "0.10.10+14",
+ "dependencies": [
+ "camera_platform_interface",
+ "flutter",
+ "flutter_plugin_android_lifecycle",
+ "stream_transform"
+ ]
+ },
+ {
+ "name": "permission_handler_platform_interface",
+ "version": "4.3.0",
+ "dependencies": [
+ "flutter",
+ "meta",
+ "plugin_platform_interface"
+ ]
+ },
+ {
+ "name": "permission_handler_windows",
+ "version": "0.2.1",
+ "dependencies": [
+ "flutter",
+ "permission_handler_platform_interface"
+ ]
+ },
+ {
+ "name": "permission_handler_html",
+ "version": "0.1.3+5",
+ "dependencies": [
+ "flutter",
+ "flutter_web_plugins",
+ "permission_handler_platform_interface",
+ "web"
+ ]
+ },
+ {
+ "name": "permission_handler_apple",
+ "version": "9.4.7",
+ "dependencies": [
+ "flutter",
+ "permission_handler_platform_interface"
+ ]
+ },
+ {
+ "name": "permission_handler_android",
+ "version": "12.1.0",
+ "dependencies": [
+ "flutter",
+ "permission_handler_platform_interface"
+ ]
+ },
+ {
+ "name": "hive",
+ "version": "2.2.3",
+ "dependencies": [
+ "crypto",
+ "meta"
+ ]
+ },
+ {
+ "name": "sky_engine",
+ "version": "0.0.0",
+ "dependencies": []
+ },
+ {
+ "name": "material_color_utilities",
+ "version": "0.11.1",
+ "dependencies": [
+ "collection"
+ ]
+ },
+ {
+ "name": "characters",
+ "version": "1.4.0",
+ "dependencies": []
+ },
+ {
+ "name": "leak_tracker_testing",
+ "version": "3.0.2",
+ "dependencies": [
+ "leak_tracker",
+ "matcher",
+ "meta"
+ ]
+ },
+ {
+ "name": "leak_tracker",
+ "version": "11.0.2",
+ "dependencies": [
+ "clock",
+ "collection",
+ "meta",
+ "path",
+ "vm_service"
+ ]
+ },
+ {
+ "name": "term_glyph",
+ "version": "1.2.2",
+ "dependencies": []
+ },
+ {
+ "name": "string_scanner",
+ "version": "1.4.1",
+ "dependencies": [
+ "source_span"
+ ]
+ },
+ {
+ "name": "source_span",
+ "version": "1.10.2",
+ "dependencies": [
+ "collection",
+ "path",
+ "term_glyph"
+ ]
+ },
+ {
+ "name": "boolean_selector",
+ "version": "2.1.2",
+ "dependencies": [
+ "source_span",
+ "string_scanner"
+ ]
+ },
+ {
+ "name": "typed_data",
+ "version": "1.4.0",
+ "dependencies": [
+ "collection"
+ ]
+ },
+ {
+ "name": "checked_yaml",
+ "version": "2.0.4",
+ "dependencies": [
+ "json_annotation",
+ "source_span",
+ "yaml"
+ ]
+ },
+ {
+ "name": "synchronized",
+ "version": "3.4.0",
+ "dependencies": []
+ },
+ {
+ "name": "validators2",
+ "version": "5.1.0",
+ "dependencies": []
+ },
+ {
+ "name": "uuid",
+ "version": "4.5.2",
+ "dependencies": [
+ "crypto",
+ "fixnum",
+ "meta"
+ ]
+ },
+ {
+ "name": "system_info2",
+ "version": "4.1.0",
+ "dependencies": [
+ "globbing",
+ "path"
+ ]
+ },
+ {
+ "name": "settings_yaml",
+ "version": "8.3.1",
+ "dependencies": [
+ "collection",
+ "meta",
+ "path",
+ "uuid",
+ "yaml"
+ ]
+ },
+ {
+ "name": "scope",
+ "version": "5.1.0",
+ "dependencies": [
+ "meta"
+ ]
+ },
+ {
+ "name": "pubspec_manager",
+ "version": "1.0.3",
+ "dependencies": [
+ "meta",
+ "path",
+ "pub_semver",
+ "strings"
+ ]
+ },
+ {
+ "name": "pubspec_lock",
+ "version": "3.0.2",
+ "dependencies": [
+ "functional_data",
+ "json2yaml",
+ "meta",
+ "sum_types",
+ "yaml"
+ ]
+ },
+ {
+ "name": "posix",
+ "version": "6.0.3",
+ "dependencies": [
+ "ffi",
+ "meta",
+ "path"
+ ]
+ },
+ {
+ "name": "native_synchronization_temp",
+ "version": "0.7.1",
+ "dependencies": [
+ "ffi"
+ ]
+ },
+ {
+ "name": "logging",
+ "version": "1.3.0",
+ "dependencies": []
+ },
+ {
+ "name": "ini",
+ "version": "2.1.0",
+ "dependencies": []
+ },
+ {
+ "name": "glob",
+ "version": "2.1.3",
+ "dependencies": [
+ "async",
+ "collection",
+ "file",
+ "path",
+ "string_scanner"
+ ]
+ },
+ {
+ "name": "equatable",
+ "version": "2.0.8",
+ "dependencies": [
+ "collection",
+ "meta"
+ ]
+ },
+ {
+ "name": "dcli_terminal",
+ "version": "6.1.2",
+ "dependencies": [
+ "dart_console"
+ ]
+ },
+ {
+ "name": "dcli_core",
+ "version": "6.1.2",
+ "dependencies": [
+ "async",
+ "circular_buffer",
+ "collection",
+ "crypto",
+ "dcli_common",
+ "ffi",
+ "logging",
+ "meta",
+ "path",
+ "scope",
+ "stack_trace",
+ "uuid"
+ ]
+ },
+ {
+ "name": "dcli_common",
+ "version": "6.1.2",
+ "dependencies": [
+ "meta",
+ "path",
+ "scope"
+ ]
+ },
+ {
+ "name": "dart_console",
+ "version": "4.1.2",
+ "dependencies": [
+ "characters",
+ "ffi",
+ "intl",
+ "win32"
+ ]
+ },
+ {
+ "name": "csv",
+ "version": "6.0.0",
+ "dependencies": []
+ },
+ {
+ "name": "chunked_stream",
+ "version": "1.4.2",
+ "dependencies": [
+ "meta"
+ ]
+ },
+ {
+ "name": "dbus",
+ "version": "0.7.12",
+ "dependencies": [
+ "args",
+ "ffi",
+ "meta",
+ "xml"
+ ]
+ },
+ {
+ "name": "petitparser",
+ "version": "7.0.2",
+ "dependencies": [
+ "collection",
+ "meta"
+ ]
+ },
+ {
+ "name": "platform",
+ "version": "3.1.6",
+ "dependencies": []
+ },
+ {
+ "name": "xdg_directories",
+ "version": "1.1.0",
+ "dependencies": [
+ "meta",
+ "path"
+ ]
+ },
+ {
+ "name": "objective_c",
+ "version": "9.3.0",
+ "dependencies": [
+ "code_assets",
+ "collection",
+ "ffi",
+ "hooks",
+ "logging",
+ "native_toolchain_c",
+ "pub_semver"
+ ]
+ },
+ {
+ "name": "package_config",
+ "version": "2.2.0",
+ "dependencies": [
+ "path"
+ ]
+ },
+ {
+ "name": "watcher",
+ "version": "1.2.1",
+ "dependencies": [
+ "async",
+ "path"
+ ]
+ },
+ {
+ "name": "_fe_analyzer_shared",
+ "version": "67.0.0",
+ "dependencies": [
+ "meta"
+ ]
+ },
+ {
+ "name": "path_parsing",
+ "version": "1.1.0",
+ "dependencies": [
+ "meta",
+ "vector_math"
+ ]
+ },
+ {
+ "name": "stream_transform",
+ "version": "2.1.1",
+ "dependencies": []
+ },
+ {
+ "name": "vm_service",
+ "version": "15.0.2",
+ "dependencies": []
+ },
+ {
+ "name": "fixnum",
+ "version": "1.1.1",
+ "dependencies": []
+ },
+ {
+ "name": "globbing",
+ "version": "1.0.0",
+ "dependencies": [
+ "path"
+ ]
+ },
+ {
+ "name": "strings",
+ "version": "3.1.2",
+ "dependencies": [
+ "characters",
+ "unicode"
+ ]
+ },
+ {
+ "name": "sum_types",
+ "version": "0.3.5",
+ "dependencies": [
+ "meta"
+ ]
+ },
+ {
+ "name": "json2yaml",
+ "version": "3.0.1",
+ "dependencies": [
+ "meta"
+ ]
+ },
+ {
+ "name": "functional_data",
+ "version": "1.2.0",
+ "dependencies": [
+ "collection",
+ "meta"
+ ]
+ },
+ {
+ "name": "circular_buffer",
+ "version": "0.12.0",
+ "dependencies": []
+ },
+ {
+ "name": "native_toolchain_c",
+ "version": "0.17.4",
+ "dependencies": [
+ "code_assets",
+ "glob",
+ "hooks",
+ "logging",
+ "meta",
+ "pub_semver"
+ ]
+ },
+ {
+ "name": "hooks",
+ "version": "1.0.1",
+ "dependencies": [
+ "collection",
+ "crypto",
+ "logging",
+ "meta",
+ "pub_semver",
+ "yaml"
+ ]
+ },
+ {
+ "name": "code_assets",
+ "version": "1.0.0",
+ "dependencies": [
+ "collection",
+ "hooks"
+ ]
+ },
+ {
+ "name": "unicode",
+ "version": "0.3.1",
+ "dependencies": [
+ "lists"
+ ]
+ },
+ {
+ "name": "lists",
+ "version": "1.0.1",
+ "dependencies": [
+ "meta"
+ ]
+ }
+ ],
+ "configVersion": 1
+}
\ No newline at end of file
diff --git a/.dart_tool/version b/.dart_tool/version
new file mode 100644
index 0000000..6a20a82
--- /dev/null
+++ b/.dart_tool/version
@@ -0,0 +1 @@
+3.38.7
\ No newline at end of file
diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies
new file mode 100644
index 0000000..483ad75
--- /dev/null
+++ b/.flutter-plugins-dependencies
@@ -0,0 +1 @@
+{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"camera_avfoundation","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\camera_avfoundation-0.9.23+2\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"connectivity_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\connectivity_plus-6.1.5\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\device_info_plus-10.1.2\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_contacts","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_contacts-1.1.9+2\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_keyboard_visibility","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_keyboard_visibility-6.0.0\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\fluttertoast-8.2.14\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"local_auth_darwin","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\local_auth_darwin-1.6.1\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"mobile_scanner","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\mobile_scanner-6.0.11\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_foundation-2.6.0\\\\","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"permission_handler_apple","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_apple-9.4.7\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"root_checker_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\root_checker_plus-0.0.7\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-12.0.1\\\\","native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"camera_android","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\camera_android-0.10.10+14\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"connectivity_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\connectivity_plus-6.1.5\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\device_info_plus-10.1.2\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_contacts","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_contacts-1.1.9+2\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_keyboard_visibility","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_keyboard_visibility-6.0.0\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_plugin_android_lifecycle-2.0.33\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\fluttertoast-8.2.14\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"local_auth_android","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\local_auth_android-1.0.56\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"mobile_scanner","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\mobile_scanner-6.0.11\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_android-2.2.22\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"permission_handler_android","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_android-12.1.0\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"root_checker_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\root_checker_plus-0.0.7\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-12.0.1\\\\","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"connectivity_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\connectivity_plus-6.1.5\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\device_info_plus-10.1.2\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_keyboard_visibility_macos","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_keyboard_visibility_macos-1.0.0\\\\","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"local_auth_darwin","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\local_auth_darwin-1.6.1\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"mobile_scanner","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\mobile_scanner-6.0.11\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_foundation-2.6.0\\\\","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-12.0.1\\\\","native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"connectivity_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\connectivity_plus-6.1.5\\\\","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\device_info_plus-10.1.2\\\\","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_keyboard_visibility_linux","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_keyboard_visibility_linux-1.0.0\\\\","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_linux-2.2.1\\\\","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-12.0.1\\\\","native_build":false,"dependencies":["url_launcher_linux"],"dev_dependency":false},{"name":"url_launcher_linux","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_linux-3.2.2\\\\","native_build":true,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"connectivity_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\connectivity_plus-6.1.5\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\device_info_plus-10.1.2\\\\","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_keyboard_visibility_windows","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_keyboard_visibility_windows-1.0.0\\\\","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"local_auth_windows","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\local_auth_windows-1.0.11\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_windows-2.3.0\\\\","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"permission_handler_windows","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_windows-0.2.1\\\\","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-12.0.1\\\\","native_build":true,"dependencies":["url_launcher_windows"],"dev_dependency":false},{"name":"url_launcher_windows","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_windows-3.1.5\\\\","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[{"name":"camera_web","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\camera_web-0.3.5+3\\\\","dependencies":[],"dev_dependency":false},{"name":"connectivity_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\connectivity_plus-6.1.5\\\\","dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\device_info_plus-10.1.2\\\\","dependencies":[],"dev_dependency":false},{"name":"flutter_keyboard_visibility_web","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_keyboard_visibility_web-2.0.0\\\\","dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\fluttertoast-8.2.14\\\\","dependencies":[],"dev_dependency":false},{"name":"mobile_scanner","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\mobile_scanner-6.0.11\\\\","dependencies":[],"dev_dependency":false},{"name":"permission_handler_html","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_html-0.1.3+5\\\\","dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-12.0.1\\\\","dependencies":["url_launcher_web"],"dev_dependency":false},{"name":"url_launcher_web","path":"C:\\\\Users\\\\samanwaqar\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_web-2.4.2\\\\","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"camera","dependencies":["camera_android","camera_avfoundation","camera_web","flutter_plugin_android_lifecycle"]},{"name":"camera_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"camera_avfoundation","dependencies":[]},{"name":"camera_web","dependencies":[]},{"name":"connectivity_plus","dependencies":[]},{"name":"device_info_plus","dependencies":[]},{"name":"flutter_camera_overlay_new","dependencies":["camera"]},{"name":"flutter_contacts","dependencies":[]},{"name":"flutter_keyboard_visibility","dependencies":["flutter_keyboard_visibility_linux","flutter_keyboard_visibility_macos","flutter_keyboard_visibility_web","flutter_keyboard_visibility_windows"]},{"name":"flutter_keyboard_visibility_linux","dependencies":[]},{"name":"flutter_keyboard_visibility_macos","dependencies":[]},{"name":"flutter_keyboard_visibility_web","dependencies":[]},{"name":"flutter_keyboard_visibility_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"fluttertoast","dependencies":[]},{"name":"local_auth","dependencies":["local_auth_android","local_auth_darwin","local_auth_windows"]},{"name":"local_auth_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"local_auth_darwin","dependencies":[]},{"name":"local_auth_windows","dependencies":[]},{"name":"mobile_scanner","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_html","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_html","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"name":"root_checker_plus","dependencies":[]},{"name":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2026-02-19 10:21:40.359562","version":"3.38.7","swift_package_manager_enabled":{"ios":false,"macos":false}}
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..04b285e
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,19 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Flutter
+.dart_tool/
+build/
+.flutter-plugins
+.flutter-plugins-dependencies
+.packages
+.pub-cache/
+.pub/
+
+# Android
+android/.gradle/
+android/local.properties
+
+# iOS
+ios/Pods/
+ios/.symlinks/
diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml
new file mode 100644
index 0000000..5c94783
--- /dev/null
+++ b/.idea/caches/deviceStreaming.xml
@@ -0,0 +1,1414 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml
new file mode 100644
index 0000000..0442d0e
--- /dev/null
+++ b/.idea/libraries/Dart_Packages.xml
@@ -0,0 +1,1532 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml
new file mode 100644
index 0000000..0218bad
--- /dev/null
+++ b/.idea/libraries/Dart_SDK.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Flutter_Plugins.xml b/.idea/libraries/Flutter_Plugins.xml
new file mode 100644
index 0000000..b4235ba
--- /dev/null
+++ b/.idea/libraries/Flutter_Plugins.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 4c38193..f4fe1c8 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,5 @@
-
-
+
\ No newline at end of file
diff --git a/.idea/uco-mobile-poc.iml b/.idea/uco-mobile-poc.iml
index d6ebd48..d327551 100644
--- a/.idea/uco-mobile-poc.iml
+++ b/.idea/uco-mobile-poc.iml
@@ -2,8 +2,15 @@
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index bdbb48d..46c390f 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -16,9 +16,9 @@
-
+ {
+ "associatedIndex": 8
+}
@@ -26,6 +26,7 @@
",
+ "io.flutter.project.isFirstOpen": "true",
+ "io.flutter.reload.alreadyRun": "true",
+ "kotlin-language-version-configured": "true",
+ "last_opened_file_path": "C:/Users/samanwaqar/Documents/GitHub/uco-mobile-poc",
+ "project.structure.last.edited": "Project",
+ "project.structure.proportion": "0.0",
+ "project.structure.side.proportion": "0.2",
+ "settings.editor.selected.configurable": "configurable.group.build",
"show.migrate.to.gradle.popup": "false"
}
}]]>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/.en b/assets/.en
new file mode 100644
index 0000000..e69de29
diff --git a/assets/uco/icons/arrow.svg b/assets/uco/icons/arrow.svg
new file mode 100644
index 0000000..711df5c
--- /dev/null
+++ b/assets/uco/icons/arrow.svg
@@ -0,0 +1,94 @@
+
+
+
+
diff --git a/assets/uco/icons/aud_flag.png b/assets/uco/icons/aud_flag.png
new file mode 100644
index 0000000..fdf4da0
Binary files /dev/null and b/assets/uco/icons/aud_flag.png differ
diff --git a/assets/uco/icons/bankDetails.svg b/assets/uco/icons/bankDetails.svg
new file mode 100644
index 0000000..924a01c
--- /dev/null
+++ b/assets/uco/icons/bankDetails.svg
@@ -0,0 +1,293 @@
+
+
+
+
diff --git a/assets/uco/icons/changePassoword.svg b/assets/uco/icons/changePassoword.svg
new file mode 100644
index 0000000..3945d28
--- /dev/null
+++ b/assets/uco/icons/changePassoword.svg
@@ -0,0 +1,238 @@
+
+
+
+
diff --git a/assets/uco/icons/drop_down_ic.png b/assets/uco/icons/drop_down_ic.png
new file mode 100644
index 0000000..0cda291
Binary files /dev/null and b/assets/uco/icons/drop_down_ic.png differ
diff --git a/assets/uco/icons/euro_flag.png b/assets/uco/icons/euro_flag.png
new file mode 100644
index 0000000..9d0fb03
Binary files /dev/null and b/assets/uco/icons/euro_flag.png differ
diff --git a/assets/uco/icons/gbp_flag.png b/assets/uco/icons/gbp_flag.png
new file mode 100644
index 0000000..640d145
Binary files /dev/null and b/assets/uco/icons/gbp_flag.png differ
diff --git a/assets/uco/icons/ic_QR.png b/assets/uco/icons/ic_QR.png
new file mode 100644
index 0000000..90e01e7
Binary files /dev/null and b/assets/uco/icons/ic_QR.png differ
diff --git a/assets/uco/icons/ic_QR.svg b/assets/uco/icons/ic_QR.svg
new file mode 100644
index 0000000..353dfc0
--- /dev/null
+++ b/assets/uco/icons/ic_QR.svg
@@ -0,0 +1,340 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_activation.svg b/assets/uco/icons/ic_activation.svg
new file mode 100644
index 0000000..06cd521
--- /dev/null
+++ b/assets/uco/icons/ic_activation.svg
@@ -0,0 +1,317 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_activity.svg b/assets/uco/icons/ic_activity.svg
new file mode 100644
index 0000000..b006868
--- /dev/null
+++ b/assets/uco/icons/ic_activity.svg
@@ -0,0 +1,164 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_add.svg b/assets/uco/icons/ic_add.svg
new file mode 100644
index 0000000..012f6a3
--- /dev/null
+++ b/assets/uco/icons/ic_add.svg
@@ -0,0 +1,92 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_add_new_Account.png b/assets/uco/icons/ic_add_new_Account.png
new file mode 100644
index 0000000..7f4899c
Binary files /dev/null and b/assets/uco/icons/ic_add_new_Account.png differ
diff --git a/assets/uco/icons/ic_arrow_down.svg b/assets/uco/icons/ic_arrow_down.svg
new file mode 100644
index 0000000..2d06387
--- /dev/null
+++ b/assets/uco/icons/ic_arrow_down.svg
@@ -0,0 +1,102 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_arrow_down_icon.png b/assets/uco/icons/ic_arrow_down_icon.png
new file mode 100644
index 0000000..27e3719
Binary files /dev/null and b/assets/uco/icons/ic_arrow_down_icon.png differ
diff --git a/assets/uco/icons/ic_back_arrow_appbar.svg b/assets/uco/icons/ic_back_arrow_appbar.svg
new file mode 100644
index 0000000..b90d2db
--- /dev/null
+++ b/assets/uco/icons/ic_back_arrow_appbar.svg
@@ -0,0 +1,253 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_back_white.svg b/assets/uco/icons/ic_back_white.svg
new file mode 100644
index 0000000..01780e5
--- /dev/null
+++ b/assets/uco/icons/ic_back_white.svg
@@ -0,0 +1,78 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_bank_transfer.svg b/assets/uco/icons/ic_bank_transfer.svg
new file mode 100644
index 0000000..cbf40e0
--- /dev/null
+++ b/assets/uco/icons/ic_bank_transfer.svg
@@ -0,0 +1,218 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_bill.svg b/assets/uco/icons/ic_bill.svg
new file mode 100644
index 0000000..da95543
--- /dev/null
+++ b/assets/uco/icons/ic_bill.svg
@@ -0,0 +1,160 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_call.svg b/assets/uco/icons/ic_call.svg
new file mode 100644
index 0000000..64ca357
--- /dev/null
+++ b/assets/uco/icons/ic_call.svg
@@ -0,0 +1,234 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_camera.svg b/assets/uco/icons/ic_camera.svg
new file mode 100644
index 0000000..824e6ec
--- /dev/null
+++ b/assets/uco/icons/ic_camera.svg
@@ -0,0 +1,451 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_camera_profile.svg b/assets/uco/icons/ic_camera_profile.svg
new file mode 100644
index 0000000..fa91a70
--- /dev/null
+++ b/assets/uco/icons/ic_camera_profile.svg
@@ -0,0 +1,242 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_chat.svg b/assets/uco/icons/ic_chat.svg
new file mode 100644
index 0000000..91a660b
--- /dev/null
+++ b/assets/uco/icons/ic_chat.svg
@@ -0,0 +1,225 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_check_status.svg b/assets/uco/icons/ic_check_status.svg
new file mode 100644
index 0000000..cd3c3ea
--- /dev/null
+++ b/assets/uco/icons/ic_check_status.svg
@@ -0,0 +1,181 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_cheque_deposit.svg b/assets/uco/icons/ic_cheque_deposit.svg
new file mode 100644
index 0000000..94b8b01
--- /dev/null
+++ b/assets/uco/icons/ic_cheque_deposit.svg
@@ -0,0 +1,185 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_cheque_management.svg b/assets/uco/icons/ic_cheque_management.svg
new file mode 100644
index 0000000..56dc9c8
--- /dev/null
+++ b/assets/uco/icons/ic_cheque_management.svg
@@ -0,0 +1,117 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_chnage_pin.svg b/assets/uco/icons/ic_chnage_pin.svg
new file mode 100644
index 0000000..55585ab
--- /dev/null
+++ b/assets/uco/icons/ic_chnage_pin.svg
@@ -0,0 +1,269 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_client.png b/assets/uco/icons/ic_client.png
new file mode 100644
index 0000000..6ae5613
Binary files /dev/null and b/assets/uco/icons/ic_client.png differ
diff --git a/assets/uco/icons/ic_client.svg b/assets/uco/icons/ic_client.svg
new file mode 100644
index 0000000..f639234
--- /dev/null
+++ b/assets/uco/icons/ic_client.svg
@@ -0,0 +1,303 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_clock_circle.svg b/assets/uco/icons/ic_clock_circle.svg
new file mode 100644
index 0000000..c2d051b
--- /dev/null
+++ b/assets/uco/icons/ic_clock_circle.svg
@@ -0,0 +1,151 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_congratulation.svg b/assets/uco/icons/ic_congratulation.svg
new file mode 100644
index 0000000..5d08598
--- /dev/null
+++ b/assets/uco/icons/ic_congratulation.svg
@@ -0,0 +1,456 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_congratulations!.svg b/assets/uco/icons/ic_congratulations!.svg
new file mode 100644
index 0000000..b306cea
--- /dev/null
+++ b/assets/uco/icons/ic_congratulations!.svg
@@ -0,0 +1,343 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_contact_us.png b/assets/uco/icons/ic_contact_us.png
new file mode 100644
index 0000000..cdacc44
Binary files /dev/null and b/assets/uco/icons/ic_contact_us.png differ
diff --git a/assets/uco/icons/ic_contact_us.svg b/assets/uco/icons/ic_contact_us.svg
new file mode 100644
index 0000000..f896a59
--- /dev/null
+++ b/assets/uco/icons/ic_contact_us.svg
@@ -0,0 +1,429 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_credit.svg b/assets/uco/icons/ic_credit.svg
new file mode 100644
index 0000000..fe98f01
--- /dev/null
+++ b/assets/uco/icons/ic_credit.svg
@@ -0,0 +1,117 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_credit_card_bills.svg b/assets/uco/icons/ic_credit_card_bills.svg
new file mode 100644
index 0000000..eea7150
--- /dev/null
+++ b/assets/uco/icons/ic_credit_card_bills.svg
@@ -0,0 +1,144 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_cross.svg b/assets/uco/icons/ic_cross.svg
new file mode 100644
index 0000000..67cdbe8
--- /dev/null
+++ b/assets/uco/icons/ic_cross.svg
@@ -0,0 +1,165 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_cross_option.svg b/assets/uco/icons/ic_cross_option.svg
new file mode 100644
index 0000000..bc8ef87
--- /dev/null
+++ b/assets/uco/icons/ic_cross_option.svg
@@ -0,0 +1,140 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_cross_white.svg b/assets/uco/icons/ic_cross_white.svg
new file mode 100644
index 0000000..af9e31d
--- /dev/null
+++ b/assets/uco/icons/ic_cross_white.svg
@@ -0,0 +1,113 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_current_account_arrow.svg b/assets/uco/icons/ic_current_account_arrow.svg
new file mode 100644
index 0000000..b690338
--- /dev/null
+++ b/assets/uco/icons/ic_current_account_arrow.svg
@@ -0,0 +1,160 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_customer_service.svg b/assets/uco/icons/ic_customer_service.svg
new file mode 100644
index 0000000..84bb24b
--- /dev/null
+++ b/assets/uco/icons/ic_customer_service.svg
@@ -0,0 +1,159 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_cyber_security.svg b/assets/uco/icons/ic_cyber_security.svg
new file mode 100644
index 0000000..6177c76
--- /dev/null
+++ b/assets/uco/icons/ic_cyber_security.svg
@@ -0,0 +1,437 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_daily_transaction.svg b/assets/uco/icons/ic_daily_transaction.svg
new file mode 100644
index 0000000..3682ec3
--- /dev/null
+++ b/assets/uco/icons/ic_daily_transaction.svg
@@ -0,0 +1,324 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_debit.svg b/assets/uco/icons/ic_debit.svg
new file mode 100644
index 0000000..39d481b
--- /dev/null
+++ b/assets/uco/icons/ic_debit.svg
@@ -0,0 +1,110 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_debit_card.svg b/assets/uco/icons/ic_debit_card.svg
new file mode 100644
index 0000000..4ba4a47
--- /dev/null
+++ b/assets/uco/icons/ic_debit_card.svg
@@ -0,0 +1,176 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_desposit_account_arrow.svg b/assets/uco/icons/ic_desposit_account_arrow.svg
new file mode 100644
index 0000000..e3f7937
--- /dev/null
+++ b/assets/uco/icons/ic_desposit_account_arrow.svg
@@ -0,0 +1,144 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_device_management.svg b/assets/uco/icons/ic_device_management.svg
new file mode 100644
index 0000000..3ed645e
--- /dev/null
+++ b/assets/uco/icons/ic_device_management.svg
@@ -0,0 +1,319 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_dollar_symbol.svg b/assets/uco/icons/ic_dollar_symbol.svg
new file mode 100644
index 0000000..6e89e61
--- /dev/null
+++ b/assets/uco/icons/ic_dollar_symbol.svg
@@ -0,0 +1,120 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_download.svg b/assets/uco/icons/ic_download.svg
new file mode 100644
index 0000000..42a019d
--- /dev/null
+++ b/assets/uco/icons/ic_download.svg
@@ -0,0 +1,136 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_electricity.png b/assets/uco/icons/ic_electricity.png
new file mode 100644
index 0000000..7e13f54
Binary files /dev/null and b/assets/uco/icons/ic_electricity.png differ
diff --git a/assets/uco/icons/ic_email.svg b/assets/uco/icons/ic_email.svg
new file mode 100644
index 0000000..82e310e
--- /dev/null
+++ b/assets/uco/icons/ic_email.svg
@@ -0,0 +1,246 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_filter_statement.svg b/assets/uco/icons/ic_filter_statement.svg
new file mode 100644
index 0000000..1f82d5a
--- /dev/null
+++ b/assets/uco/icons/ic_filter_statement.svg
@@ -0,0 +1,76 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_finger_print.svg b/assets/uco/icons/ic_finger_print.svg
new file mode 100644
index 0000000..c248d87
--- /dev/null
+++ b/assets/uco/icons/ic_finger_print.svg
@@ -0,0 +1,361 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_fingerprint.svg b/assets/uco/icons/ic_fingerprint.svg
new file mode 100644
index 0000000..ec175fc
--- /dev/null
+++ b/assets/uco/icons/ic_fingerprint.svg
@@ -0,0 +1,645 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_gas.png b/assets/uco/icons/ic_gas.png
new file mode 100644
index 0000000..baa1cbd
Binary files /dev/null and b/assets/uco/icons/ic_gas.png differ
diff --git a/assets/uco/icons/ic_general_ledger.svg b/assets/uco/icons/ic_general_ledger.svg
new file mode 100644
index 0000000..3a68a42
--- /dev/null
+++ b/assets/uco/icons/ic_general_ledger.svg
@@ -0,0 +1,246 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_government.png b/assets/uco/icons/ic_government.png
new file mode 100644
index 0000000..716a165
Binary files /dev/null and b/assets/uco/icons/ic_government.png differ
diff --git a/assets/uco/icons/ic_holding_money.svg b/assets/uco/icons/ic_holding_money.svg
new file mode 100644
index 0000000..e49bd5f
--- /dev/null
+++ b/assets/uco/icons/ic_holding_money.svg
@@ -0,0 +1,360 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_home_icon.svg b/assets/uco/icons/ic_home_icon.svg
new file mode 100644
index 0000000..c9805ee
--- /dev/null
+++ b/assets/uco/icons/ic_home_icon.svg
@@ -0,0 +1,143 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_internet.png b/assets/uco/icons/ic_internet.png
new file mode 100644
index 0000000..a703cad
Binary files /dev/null and b/assets/uco/icons/ic_internet.png differ
diff --git a/assets/uco/icons/ic_internet.svg b/assets/uco/icons/ic_internet.svg
new file mode 100644
index 0000000..9752e43
--- /dev/null
+++ b/assets/uco/icons/ic_internet.svg
@@ -0,0 +1,471 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_isb.png b/assets/uco/icons/ic_isb.png
new file mode 100644
index 0000000..d3dbd6f
Binary files /dev/null and b/assets/uco/icons/ic_isb.png differ
diff --git a/assets/uco/icons/ic_karachi.png b/assets/uco/icons/ic_karachi.png
new file mode 100644
index 0000000..ab5f353
Binary files /dev/null and b/assets/uco/icons/ic_karachi.png differ
diff --git a/assets/uco/icons/ic_kc.png b/assets/uco/icons/ic_kc.png
new file mode 100644
index 0000000..fc3b0a6
Binary files /dev/null and b/assets/uco/icons/ic_kc.png differ
diff --git a/assets/uco/icons/ic_ke.png b/assets/uco/icons/ic_ke.png
new file mode 100644
index 0000000..a07e744
Binary files /dev/null and b/assets/uco/icons/ic_ke.png differ
diff --git a/assets/uco/icons/ic_khan.png b/assets/uco/icons/ic_khan.png
new file mode 100644
index 0000000..b681155
Binary files /dev/null and b/assets/uco/icons/ic_khan.png differ
diff --git a/assets/uco/icons/ic_kprogresshud_spinner.png b/assets/uco/icons/ic_kprogresshud_spinner.png
new file mode 100644
index 0000000..1291fac
Binary files /dev/null and b/assets/uco/icons/ic_kprogresshud_spinner.png differ
diff --git a/assets/uco/icons/ic_kyc_unverified.svg b/assets/uco/icons/ic_kyc_unverified.svg
new file mode 100644
index 0000000..13a8680
--- /dev/null
+++ b/assets/uco/icons/ic_kyc_unverified.svg
@@ -0,0 +1,116 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_language.svg b/assets/uco/icons/ic_language.svg
new file mode 100644
index 0000000..8103335
--- /dev/null
+++ b/assets/uco/icons/ic_language.svg
@@ -0,0 +1,289 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_link.png b/assets/uco/icons/ic_link.png
new file mode 100644
index 0000000..6e00808
Binary files /dev/null and b/assets/uco/icons/ic_link.png differ
diff --git a/assets/uco/icons/ic_location.svg b/assets/uco/icons/ic_location.svg
new file mode 100644
index 0000000..1846090
--- /dev/null
+++ b/assets/uco/icons/ic_location.svg
@@ -0,0 +1,217 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_log_out.svg b/assets/uco/icons/ic_log_out.svg
new file mode 100644
index 0000000..92aa3f3
--- /dev/null
+++ b/assets/uco/icons/ic_log_out.svg
@@ -0,0 +1,275 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_logout.svg b/assets/uco/icons/ic_logout.svg
new file mode 100644
index 0000000..31256e4
--- /dev/null
+++ b/assets/uco/icons/ic_logout.svg
@@ -0,0 +1,130 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_manage_account.svg b/assets/uco/icons/ic_manage_account.svg
new file mode 100644
index 0000000..1346f93
--- /dev/null
+++ b/assets/uco/icons/ic_manage_account.svg
@@ -0,0 +1,346 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_menu_bar.svg b/assets/uco/icons/ic_menu_bar.svg
new file mode 100644
index 0000000..91d0af6
--- /dev/null
+++ b/assets/uco/icons/ic_menu_bar.svg
@@ -0,0 +1,73 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_money_management.svg b/assets/uco/icons/ic_money_management.svg
new file mode 100644
index 0000000..c66f9d8
--- /dev/null
+++ b/assets/uco/icons/ic_money_management.svg
@@ -0,0 +1,262 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_multan.png b/assets/uco/icons/ic_multan.png
new file mode 100644
index 0000000..31fd012
Binary files /dev/null and b/assets/uco/icons/ic_multan.png differ
diff --git a/assets/uco/icons/ic_next.svg b/assets/uco/icons/ic_next.svg
new file mode 100644
index 0000000..3b7020b
--- /dev/null
+++ b/assets/uco/icons/ic_next.svg
@@ -0,0 +1,84 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_notifactions.svg b/assets/uco/icons/ic_notifactions.svg
new file mode 100644
index 0000000..ea573bb
--- /dev/null
+++ b/assets/uco/icons/ic_notifactions.svg
@@ -0,0 +1,142 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_notification_filter.svg b/assets/uco/icons/ic_notification_filter.svg
new file mode 100644
index 0000000..8535a07
--- /dev/null
+++ b/assets/uco/icons/ic_notification_filter.svg
@@ -0,0 +1,83 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_pakistan.png b/assets/uco/icons/ic_pakistan.png
new file mode 100644
index 0000000..5778eba
Binary files /dev/null and b/assets/uco/icons/ic_pakistan.png differ
diff --git a/assets/uco/icons/ic_person_setting.svg b/assets/uco/icons/ic_person_setting.svg
new file mode 100644
index 0000000..e5cc6a2
--- /dev/null
+++ b/assets/uco/icons/ic_person_setting.svg
@@ -0,0 +1,194 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_phone.svg b/assets/uco/icons/ic_phone.svg
new file mode 100644
index 0000000..b3a8b29
--- /dev/null
+++ b/assets/uco/icons/ic_phone.svg
@@ -0,0 +1,491 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_phone_bottom_sheet.svg b/assets/uco/icons/ic_phone_bottom_sheet.svg
new file mode 100644
index 0000000..19a7520
--- /dev/null
+++ b/assets/uco/icons/ic_phone_bottom_sheet.svg
@@ -0,0 +1,474 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_qr_setting.svg b/assets/uco/icons/ic_qr_setting.svg
new file mode 100644
index 0000000..8204123
--- /dev/null
+++ b/assets/uco/icons/ic_qr_setting.svg
@@ -0,0 +1,277 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_receiving_money.svg b/assets/uco/icons/ic_receiving_money.svg
new file mode 100644
index 0000000..f77d07a
--- /dev/null
+++ b/assets/uco/icons/ic_receiving_money.svg
@@ -0,0 +1,481 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_request.svg b/assets/uco/icons/ic_request.svg
new file mode 100644
index 0000000..bac79e8
--- /dev/null
+++ b/assets/uco/icons/ic_request.svg
@@ -0,0 +1,315 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_search.svg b/assets/uco/icons/ic_search.svg
new file mode 100644
index 0000000..5e0aaf0
--- /dev/null
+++ b/assets/uco/icons/ic_search.svg
@@ -0,0 +1,104 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_security.png b/assets/uco/icons/ic_security.png
new file mode 100644
index 0000000..9a3c90d
Binary files /dev/null and b/assets/uco/icons/ic_security.png differ
diff --git a/assets/uco/icons/ic_select_contact.svg b/assets/uco/icons/ic_select_contact.svg
new file mode 100644
index 0000000..b658f1c
--- /dev/null
+++ b/assets/uco/icons/ic_select_contact.svg
@@ -0,0 +1,46 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_setting.svg b/assets/uco/icons/ic_setting.svg
new file mode 100644
index 0000000..28d93c1
--- /dev/null
+++ b/assets/uco/icons/ic_setting.svg
@@ -0,0 +1,291 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_share.svg b/assets/uco/icons/ic_share.svg
new file mode 100644
index 0000000..77b20d2
--- /dev/null
+++ b/assets/uco/icons/ic_share.svg
@@ -0,0 +1,261 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_share_qr.svg b/assets/uco/icons/ic_share_qr.svg
new file mode 100644
index 0000000..4873e3b
--- /dev/null
+++ b/assets/uco/icons/ic_share_qr.svg
@@ -0,0 +1,129 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_snding_money.svg b/assets/uco/icons/ic_snding_money.svg
new file mode 100644
index 0000000..a776adc
--- /dev/null
+++ b/assets/uco/icons/ic_snding_money.svg
@@ -0,0 +1,363 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_sort.png b/assets/uco/icons/ic_sort.png
new file mode 100644
index 0000000..507212e
Binary files /dev/null and b/assets/uco/icons/ic_sort.png differ
diff --git a/assets/uco/icons/ic_stop.svg b/assets/uco/icons/ic_stop.svg
new file mode 100644
index 0000000..d59daac
--- /dev/null
+++ b/assets/uco/icons/ic_stop.svg
@@ -0,0 +1,118 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_sub_accounts.svg b/assets/uco/icons/ic_sub_accounts.svg
new file mode 100644
index 0000000..2e69d4f
--- /dev/null
+++ b/assets/uco/icons/ic_sub_accounts.svg
@@ -0,0 +1,239 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_tick.svg b/assets/uco/icons/ic_tick.svg
new file mode 100644
index 0000000..e792fa6
--- /dev/null
+++ b/assets/uco/icons/ic_tick.svg
@@ -0,0 +1,96 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_tick_option.svg b/assets/uco/icons/ic_tick_option.svg
new file mode 100644
index 0000000..3fc28dd
--- /dev/null
+++ b/assets/uco/icons/ic_tick_option.svg
@@ -0,0 +1,150 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_u_cash.svg b/assets/uco/icons/ic_u_cash.svg
new file mode 100644
index 0000000..71e5d11
--- /dev/null
+++ b/assets/uco/icons/ic_u_cash.svg
@@ -0,0 +1,186 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_u_receive_menu.svg b/assets/uco/icons/ic_u_receive_menu.svg
new file mode 100644
index 0000000..397ccc1
--- /dev/null
+++ b/assets/uco/icons/ic_u_receive_menu.svg
@@ -0,0 +1,221 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_u_recive.svg b/assets/uco/icons/ic_u_recive.svg
new file mode 100644
index 0000000..2608645
--- /dev/null
+++ b/assets/uco/icons/ic_u_recive.svg
@@ -0,0 +1,181 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_u_shop.svg b/assets/uco/icons/ic_u_shop.svg
new file mode 100644
index 0000000..0e11c73
--- /dev/null
+++ b/assets/uco/icons/ic_u_shop.svg
@@ -0,0 +1,174 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_user.svg b/assets/uco/icons/ic_user.svg
new file mode 100644
index 0000000..0852680
--- /dev/null
+++ b/assets/uco/icons/ic_user.svg
@@ -0,0 +1,216 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_utility_bills.svg b/assets/uco/icons/ic_utility_bills.svg
new file mode 100644
index 0000000..8f0813b
--- /dev/null
+++ b/assets/uco/icons/ic_utility_bills.svg
@@ -0,0 +1,269 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_voice.svg b/assets/uco/icons/ic_voice.svg
new file mode 100644
index 0000000..1df121b
--- /dev/null
+++ b/assets/uco/icons/ic_voice.svg
@@ -0,0 +1,116 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_wallet.svg b/assets/uco/icons/ic_wallet.svg
new file mode 100644
index 0000000..ce25941
--- /dev/null
+++ b/assets/uco/icons/ic_wallet.svg
@@ -0,0 +1,217 @@
+
+
+
+
diff --git a/assets/uco/icons/ic_warning.png b/assets/uco/icons/ic_warning.png
new file mode 100644
index 0000000..d2c8afa
Binary files /dev/null and b/assets/uco/icons/ic_warning.png differ
diff --git a/assets/uco/icons/ic_water.png b/assets/uco/icons/ic_water.png
new file mode 100644
index 0000000..94c64c8
Binary files /dev/null and b/assets/uco/icons/ic_water.png differ
diff --git a/assets/uco/icons/ic_wise_card.svg b/assets/uco/icons/ic_wise_card.svg
new file mode 100644
index 0000000..195538b
--- /dev/null
+++ b/assets/uco/icons/ic_wise_card.svg
@@ -0,0 +1,254 @@
+
+
+
+
diff --git a/assets/uco/icons/ind_flag.png b/assets/uco/icons/ind_flag.png
new file mode 100644
index 0000000..7d4fd0d
Binary files /dev/null and b/assets/uco/icons/ind_flag.png differ
diff --git a/assets/uco/icons/inviteFriendsUco.svg b/assets/uco/icons/inviteFriendsUco.svg
new file mode 100644
index 0000000..d8e68ab
--- /dev/null
+++ b/assets/uco/icons/inviteFriendsUco.svg
@@ -0,0 +1,321 @@
+
+
+
+
diff --git a/assets/uco/icons/sending_icon.svg b/assets/uco/icons/sending_icon.svg
new file mode 100644
index 0000000..a94f461
--- /dev/null
+++ b/assets/uco/icons/sending_icon.svg
@@ -0,0 +1,435 @@
+
+
+
+
diff --git a/assets/uco/icons/usa.png b/assets/uco/icons/usa.png
new file mode 100644
index 0000000..9de5283
Binary files /dev/null and b/assets/uco/icons/usa.png differ
diff --git a/assets/uco/icons/use_flag.png b/assets/uco/icons/use_flag.png
new file mode 100644
index 0000000..ca0eadd
Binary files /dev/null and b/assets/uco/icons/use_flag.png differ
diff --git a/assets/uco/images/im_qr.png b/assets/uco/images/im_qr.png
new file mode 100644
index 0000000..505235a
Binary files /dev/null and b/assets/uco/images/im_qr.png differ
diff --git a/assets/uco/images/img_country_flag.png b/assets/uco/images/img_country_flag.png
new file mode 100644
index 0000000..3649412
Binary files /dev/null and b/assets/uco/images/img_country_flag.png differ
diff --git a/assets/uco/images/img_country_flag.svg b/assets/uco/images/img_country_flag.svg
new file mode 100644
index 0000000..47f462b
--- /dev/null
+++ b/assets/uco/images/img_country_flag.svg
@@ -0,0 +1,9 @@
+
diff --git a/assets/uco/images/img_debet.png b/assets/uco/images/img_debet.png
new file mode 100644
index 0000000..b9ff4bf
Binary files /dev/null and b/assets/uco/images/img_debet.png differ
diff --git a/assets/uco/images/img_global.svg b/assets/uco/images/img_global.svg
new file mode 100644
index 0000000..60095d5
--- /dev/null
+++ b/assets/uco/images/img_global.svg
@@ -0,0 +1,6789 @@
+
+
+
+
diff --git a/assets/uco/images/img_intro_slider_1.png b/assets/uco/images/img_intro_slider_1.png
new file mode 100644
index 0000000..40bd2c2
Binary files /dev/null and b/assets/uco/images/img_intro_slider_1.png differ
diff --git a/assets/uco/images/img_intro_slider_2.png b/assets/uco/images/img_intro_slider_2.png
new file mode 100644
index 0000000..3389cc1
Binary files /dev/null and b/assets/uco/images/img_intro_slider_2.png differ
diff --git a/assets/uco/images/img_round_dashboard_card.png b/assets/uco/images/img_round_dashboard_card.png
new file mode 100644
index 0000000..073a222
Binary files /dev/null and b/assets/uco/images/img_round_dashboard_card.png differ
diff --git a/assets/uco/images/img_slider.svg b/assets/uco/images/img_slider.svg
new file mode 100644
index 0000000..e7ff970
--- /dev/null
+++ b/assets/uco/images/img_slider.svg
@@ -0,0 +1,4901 @@
+
+
+
+
diff --git a/assets/uco/logo/ic_dashboard_logo.svg b/assets/uco/logo/ic_dashboard_logo.svg
new file mode 100644
index 0000000..0fa0a6c
--- /dev/null
+++ b/assets/uco/logo/ic_dashboard_logo.svg
@@ -0,0 +1,942 @@
+
+
+
+
diff --git a/assets/uco/logo/ic_launcher.png b/assets/uco/logo/ic_launcher.png
new file mode 100644
index 0000000..99993ae
Binary files /dev/null and b/assets/uco/logo/ic_launcher.png differ
diff --git a/assets/uco/logo/lg_back_arrow.svg b/assets/uco/logo/lg_back_arrow.svg
new file mode 100644
index 0000000..5b6451f
--- /dev/null
+++ b/assets/uco/logo/lg_back_arrow.svg
@@ -0,0 +1,151 @@
+
+
+
+
diff --git a/assets/uco/logo/lg_dialog_logo.svg b/assets/uco/logo/lg_dialog_logo.svg
new file mode 100644
index 0000000..53c412f
--- /dev/null
+++ b/assets/uco/logo/lg_dialog_logo.svg
@@ -0,0 +1,1184 @@
+
+
+
+
diff --git a/assets/uco/logo/lg_lunch_icon.svg b/assets/uco/logo/lg_lunch_icon.svg
new file mode 100644
index 0000000..8fbe6c6
--- /dev/null
+++ b/assets/uco/logo/lg_lunch_icon.svg
@@ -0,0 +1,2720 @@
+
+
+
+
diff --git a/assets/uco/logo/lg_mfsys.png b/assets/uco/logo/lg_mfsys.png
new file mode 100644
index 0000000..02b25b4
Binary files /dev/null and b/assets/uco/logo/lg_mfsys.png differ
diff --git a/assets/uco/logo/lg_uco_logo_white.svg b/assets/uco/logo/lg_uco_logo_white.svg
new file mode 100644
index 0000000..f4fec68
--- /dev/null
+++ b/assets/uco/logo/lg_uco_logo_white.svg
@@ -0,0 +1,480 @@
+
+
+
+
diff --git a/assets/uco/logo/shopping-cart.png b/assets/uco/logo/shopping-cart.png
new file mode 100644
index 0000000..fad6fd4
Binary files /dev/null and b/assets/uco/logo/shopping-cart.png differ
diff --git a/assets/uco/logo/uc-logo.png b/assets/uco/logo/uc-logo.png
new file mode 100644
index 0000000..99993ae
Binary files /dev/null and b/assets/uco/logo/uc-logo.png differ
diff --git a/assets/uco/logo/uc_logo.png b/assets/uco/logo/uc_logo.png
new file mode 100644
index 0000000..dfcc1d1
Binary files /dev/null and b/assets/uco/logo/uc_logo.png differ
diff --git a/fonts/Inter-Black.ttf b/fonts/Inter-Black.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/fonts/Inter-Bold.ttf b/fonts/Inter-Bold.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/fonts/Inter-ExtraBold.ttf b/fonts/Inter-ExtraBold.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/fonts/Inter-ExtraLight.ttf b/fonts/Inter-ExtraLight.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/fonts/Inter-Light.ttf b/fonts/Inter-Light.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/fonts/Inter-Medium.ttf b/fonts/Inter-Medium.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/fonts/Inter-Regular.ttf b/fonts/Inter-Regular.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/fonts/Inter-SemiBold.ttf b/fonts/Inter-SemiBold.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/fonts/Inter-Thin.ttf b/fonts/Inter-Thin.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/fonts/Poppins-Medium.ttf b/fonts/Poppins-Medium.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/fonts/Poppins-Regular.ttf b/fonts/Poppins-Regular.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/lib/app/bindings/dependency_injections.dart b/lib/app/bindings/dependency_injections.dart
new file mode 100644
index 0000000..b62149f
--- /dev/null
+++ b/lib/app/bindings/dependency_injections.dart
@@ -0,0 +1,26 @@
+import 'package:get/get.dart';
+
+import '../core/data/data_source_auth/remote_data_source/app_remote_data_source.dart';
+import '../core/data/repositories/app_repositories.dart';
+
+
+class DependencysInjections implements Bindings {
+ @override
+ void dependencies() {
+ Get.put(AppRemoteDataSource());
+ Get.put(AppRepositoriesImpl(remoteDataSource: Get.find()));
+ // Get.lazyPut(() => SendPaymentController());
+ // Get.lazyPut(() => FeedBackController());
+ // Get.lazyPut(() => TransactionHistoryController());
+ // Get.lazyPut(() => ForgetPasswordController());
+ // Get.lazyPut(() => BeneficiaryDetailsController());
+ // Get.lazyPut(() => FingerPrintController());
+ // Get.lazyPut(() => ChangePasswordController());
+ // Get.lazyPut(() => LoginController());
+ // Get.lazyPut(() => TermAndConditionsController());
+ // Get.lazyPut(() => ProfileSettingsController());
+ // Get.lazyPut(() => SendPaymentController());
+ // Get.lazyPut(() => LoanTransactionHistoryController());
+ // Get.lazyPut(() => LocaleController());
+ }
+}
diff --git a/lib/app/core/config/api_utils.dart b/lib/app/core/config/api_utils.dart
new file mode 100644
index 0000000..6c542f5
--- /dev/null
+++ b/lib/app/core/config/api_utils.dart
@@ -0,0 +1,60 @@
+import 'package:dio/dio.dart';
+import 'package:uco_mobile_poc/app/core/config/server_response.dart';
+
+import '../constants/translation_keys.dart';
+
+
+
+class ApiUtils {
+ static bool isHeaderRequired = false;
+
+ static ServerResponse parseServerResponse(Response response) {
+ return ServerResponse(response.data.toString().isEmpty ? {} : response.data, false, "", "", response.statusCode!);
+ }
+ // static void parseError(ServerResponse responseModel, Response response) {
+ // Map errorResponse = response.data;
+ // String errCode = errorResponse.containsKey("errorCode") ? errorResponse["errorCode"] : "";
+ // dynamic arguments = errorResponse.containsKey("arguments") ? errorResponse["arguments"] : [];
+ // responseModel.setErrorMsg(replaceArguments(arguments, TranslationKeys.makeTranslation(errCode)));
+ // responseModel.setErrorCode(errCode);
+ // responseModel.setResponse(response.data);
+ // }
+ static void parseError(ServerResponse responseModel, Response response) {
+ dynamic data = response.data;
+ Map errorResponse = {};
+ if (data is Map) {
+ errorResponse = data;
+ }
+ else if (data is String) {
+ responseModel.setErrorMsg(data);
+ responseModel.setErrorCode("");
+ responseModel.setResponse(data);
+ return;
+ }
+ else {
+ responseModel.setErrorMsg("Something went wrong");
+ responseModel.setErrorCode("");
+ responseModel.setResponse(data);
+ return;
+ }
+ String errCode = errorResponse.containsKey("errorCode") ? errorResponse["errorCode"] ?? "" : "";
+ dynamic arguments = errorResponse.containsKey("arguments") ? errorResponse["arguments"] ?? [] : [];
+ responseModel.setErrorMsg(replaceArguments(arguments, TranslationKeys.makeTranslation(errCode),),);
+ responseModel.setErrorCode(errCode);
+ responseModel.setResponse(data);
+ }
+
+
+ static String replaceArguments(List? argumentsArray, String errorString) {
+ if (argumentsArray == null){
+ return errorString;
+ }
+ for (int i = 0; i < argumentsArray.length; i++) {
+ int indexToReplace = i + 1;
+ String valueToReplace = "\\{\\{*value$indexToReplace\\}\\}";
+ String replacement = (argumentsArray[i] ?? "").toString();
+ errorString = errorString.replaceAll(RegExp(valueToReplace), replacement);
+ }
+ return errorString;
+ }
+}
diff --git a/lib/app/core/config/connectivity_service.dart b/lib/app/core/config/connectivity_service.dart
new file mode 100644
index 0000000..e46f385
--- /dev/null
+++ b/lib/app/core/config/connectivity_service.dart
@@ -0,0 +1,46 @@
+import 'dart:async';
+
+import 'package:connectivity_plus/connectivity_plus.dart';
+
+import '../utils/logs_utils.dart';
+
+class ConnectivityHelper {
+ final Connectivity _connectivity = Connectivity();
+
+ late StreamSubscription> _subscription;
+
+ static bool isNetworkConnected = false;
+
+ checkNetworkConnectivity() async {
+ initConnectivity();
+ _subscription = _connectivity.onConnectivityChanged.listen(_updateConnectionStatus);
+ }
+
+ disposeConnectivity() {
+ _subscription.cancel();
+ }
+
+ Future initConnectivity() async {
+ List result;
+ try {
+ result = await _connectivity.checkConnectivity();
+ } catch (e) {
+ result = [ConnectivityResult.none];
+ }
+ _updateConnectionStatus(result);
+ }
+
+ void _updateConnectionStatus(List result) {
+ dp("Connectivity result is", result);
+ result.forEach(
+ (e) {
+ if (e == ConnectivityResult.none || e == ConnectivityResult.bluetooth || e == ConnectivityResult.other) {
+ isNetworkConnected = false;
+ } else {
+ isNetworkConnected = true;
+ }
+ },
+ );
+ }
+
+}
diff --git a/lib/app/core/config/dio_exceptions.dart b/lib/app/core/config/dio_exceptions.dart
new file mode 100644
index 0000000..181b91b
--- /dev/null
+++ b/lib/app/core/config/dio_exceptions.dart
@@ -0,0 +1,93 @@
+import 'package:dio/dio.dart';
+import 'package:uco_mobile_poc/app/core/config/server_response.dart';
+
+import '../utils/logs_utils.dart';
+import 'api_utils.dart';
+
+
+class DioExceptions {
+ static String errorMsg = "";
+ static int statusCode = -1;
+
+ static ServerResponse responseModel =
+ ServerResponse({}, true, "", errorMsg, statusCode);
+
+ static ServerResponse parseError(DioError dioError) {
+ //
+
+ dp("============================================", dioError);
+
+ pe("Error response", dioError.response);
+ statusCode = dioError.response?.statusCode ?? -1;
+ responseModel.setStatusCode(statusCode);
+ switch (dioError.type) {
+ case DioErrorType.cancel:
+ errorMsg = "Request to API server was cancelled";
+ break;
+ case DioErrorType.connectTimeout:
+ errorMsg = "Connection timeout with API server";
+ break;
+ case DioErrorType.receiveTimeout:
+ errorMsg = "Receive timeout in connection with API server";
+ break;
+ case DioErrorType.response:
+ _handleError(dioError.response);
+ break;
+ case DioErrorType.sendTimeout:
+ errorMsg = "Send timeout in connection with API server";
+ break;
+ case DioErrorType.other:
+ if (dioError.message.contains("SocketException")) {
+ errorMsg = 'No Internet';
+ break;
+ }
+ errorMsg = "Unexpected error occurred";
+ break;
+ default:
+ errorMsg = "Something went wrong";
+ break;
+ }
+
+ return responseModel;
+ }
+
+ static void _handleError(dynamic error) {
+ switch (statusCode) {
+ case 400:
+ {
+ ApiUtils.parseError(responseModel, error);
+ }
+ break;
+ case 401:
+ {
+ responseModel.setErrorMsg("Unauthorized");
+ }
+ break;
+ case 403:
+ {
+ responseModel.setErrorMsg("Forbidden");
+ }
+ break;
+ case 404:
+ {
+ responseModel.setResponse(error['message']);
+ }
+ break;
+ case 500:
+ {
+ responseModel.setErrorMsg("Something went wrong, please try again");
+ }
+ break;
+ case 502:
+ {
+ responseModel.setErrorMsg("Bad gateway");
+ }
+ break;
+ default:
+ {
+ responseModel
+ .setErrorMsg("Oops something went wrong, please try again");
+ }
+ }
+ }
+}
diff --git a/lib/app/core/config/error_message_model.dart b/lib/app/core/config/error_message_model.dart
new file mode 100644
index 0000000..833a5e6
--- /dev/null
+++ b/lib/app/core/config/error_message_model.dart
@@ -0,0 +1,41 @@
+// To parse this JSON data, do
+//
+// final errorMessageModel = errorMessageModelFromJson(jsonString);
+
+import 'dart:convert';
+
+ErrorMessageModel errorMessageModelFromJson(String str) => ErrorMessageModel.fromJson(json.decode(str));
+
+String errorMessageModelToJson(ErrorMessageModel data) => json.encode(data.toJson());
+
+class ErrorMessageModel {
+ final DateTime? timestamp;
+ final String? debugMessage;
+ final dynamic trackingId;
+ final String? errorCode;
+ final List? arguments;
+
+ ErrorMessageModel({
+ this.timestamp,
+ this.debugMessage,
+ this.trackingId,
+ this.errorCode,
+ this.arguments,
+ });
+
+ factory ErrorMessageModel.fromJson(Map json) => ErrorMessageModel(
+ timestamp: json["timestamp"] == null ? null : DateTime.parse(json["timestamp"]),
+ debugMessage: json["debugMessage"],
+ trackingId: json["trackingId"],
+ errorCode: json["errorCode"],
+ arguments: json["arguments"] == null ? [] : List.from(json["arguments"]!.map((x) => x)),
+ );
+
+ Map toJson() => {
+ "timestamp": timestamp?.toIso8601String(),
+ "debugMessage": debugMessage,
+ "trackingId": trackingId,
+ "errorCode": errorCode,
+ "arguments": arguments == null ? [] : List.from(arguments!.map((x) => x)),
+ };
+}
diff --git a/lib/app/core/config/logging.dart b/lib/app/core/config/logging.dart
new file mode 100644
index 0000000..e4b7fb3
--- /dev/null
+++ b/lib/app/core/config/logging.dart
@@ -0,0 +1,52 @@
+import 'package:dio/dio.dart';
+import 'package:uco_mobile_poc/app/core/config/requset_attr.dart';
+import 'package:uco_mobile_poc/app/core/config/server_response.dart';
+import '../dialogs/custom_loading.dart';
+import '../utils/logs_utils.dart';
+import 'api_utils.dart';
+
+class Logging extends Interceptor {
+ late RequestAttr requestAttr;
+
+ Logging(this.requestAttr);
+
+ @override
+ void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
+ showLoader();
+
+ // refresh token if expired
+ if (ApiUtils.isHeaderRequired) {
+ // options.headers['Authorization'] = 'Bearer $API_KEY';
+ }
+
+ print(
+ "request_data =>> TYPE: ${options.method}\n" + requestAttr.toString());
+
+ return super.onRequest(options, handler);
+ }
+
+ @override
+ void onResponse(Response response, ResponseInterceptorHandler handler) {
+ hideLoader();
+ print("Response_SUCCESS =>> ${response.data.toString()}");
+ return super.onResponse(response, handler);
+ }
+
+ @override
+ void onError(DioError err, ErrorInterceptorHandler handler) {
+ hideLoader();
+ dp("============Error Response", err.response);
+ ServerResponse response = ServerResponse.init();
+
+ ApiUtils.parseError(response, err.response!);
+
+ pe("Response_ERROR =>> ", response.toString());
+
+ if (err.response != null) {
+ ServerResponse response = ServerResponse.init();
+ ApiUtils.parseError(response, err.response!);
+ pe("Response_ERROR =>> ", response.toString());
+ }
+ return super.onError(err, handler);
+ }
+}
diff --git a/lib/app/core/config/requset_attr.dart b/lib/app/core/config/requset_attr.dart
new file mode 100644
index 0000000..9b88b4b
--- /dev/null
+++ b/lib/app/core/config/requset_attr.dart
@@ -0,0 +1,40 @@
+import '../enums/http_methods.dart';
+
+class RequestAttr {
+ String _url;
+ bool _isDialogRequired = true;
+ Map _headers = {};
+ Map _queryParams = {};
+ Map _pathParams = {};
+ Map _body = {};
+ HttpMethod _requestType;
+
+ RequestAttr.withParamsAndBody(this._url, this._requestType, this._body,
+ [this._headers = const {},
+ this._queryParams = const {},
+ this._pathParams = const {}]);
+
+ RequestAttr.withHeaderAndParams(this._url, this._requestType,
+ [this._headers = const {},
+ this._queryParams = const {},
+ this._pathParams = const {}]);
+
+ @override
+ String toString() {
+ return 'RequestAttr{_url: $_url, _isDialogRequired: $_isDialogRequired, _headers: $_headers, _queryParams: $_queryParams, _pathParams: $_pathParams, _body: $_body, _requestType: $_requestType}';
+ }
+
+ HttpMethod get requestType => _requestType;
+
+ Map get body => _body;
+
+ Map get pathParams => _pathParams;
+
+ Map get queryParams => _queryParams;
+
+ Map get headers => _headers;
+
+ bool get isDialogRequired => _isDialogRequired;
+
+ String get url => _url;
+}
diff --git a/lib/app/core/config/server_request.dart b/lib/app/core/config/server_request.dart
new file mode 100644
index 0000000..94064db
--- /dev/null
+++ b/lib/app/core/config/server_request.dart
@@ -0,0 +1,121 @@
+import 'dart:async';
+import 'dart:io';
+import 'package:dio/adapter.dart';
+import 'package:dio/dio.dart';
+import 'package:uco_mobile_poc/app/core/config/requset_attr.dart';
+import 'package:uco_mobile_poc/app/core/config/server_response.dart';
+
+import '../constants/translation_keys.dart';
+import '../utils/logs_utils.dart';
+import 'api_utils.dart';
+import 'connectivity_service.dart';
+import 'dio_exceptions.dart';
+import 'logging.dart';
+
+class ServerRequest {
+ static Future request(RequestAttr requestAttr) async {
+ /// Internet Connectivity Check
+ if (!ConnectivityHelper.isNetworkConnected) {
+ ServerResponse serverResponse = ServerResponse.init();
+ serverResponse.isError = true;
+ serverResponse.errorCode = "ERR_CONNECTION";
+ serverResponse.errorMsg = TranslationKeys.makeTranslation(TranslationKeys.ERR_CONNECTION);
+ return serverResponse;
+ }
+
+ _initRequest(requestAttr);
+
+ try {
+ dp("============request Before>>>> ", requestAttr.toString());
+
+ final response = await _requestDio.request(
+ requestAttr.url,
+ options: Options(
+ method: requestAttr.requestType.name,
+ headers: requestAttr.headers,
+ ),
+ queryParameters: requestAttr.queryParams,
+ data: requestAttr.body,
+ );
+
+ dp("============after Before>>>> ", response.toString());
+
+ return ApiUtils.parseServerResponse(response);
+ } on DioError catch (e) {
+ ServerResponse response = DioExceptions.parseError(e);
+ // if (response.statusCode == 401) {
+ // return refreshToken(requestAttr);
+ // }
+ pe("============catch Before>>>> ", e.toString());
+ pe("Error responce", e.response);
+ return DioExceptions.parseError(e);
+ }
+ }
+
+ static late Dio _requestDio;
+ static late BaseOptions _baseOptions;
+
+ static void _initRequest(RequestAttr attr) {
+ _baseOptions = BaseOptions(baseUrl: attr.url, connectTimeout: 15000, receiveTimeout: 9000);
+ _baseOptions.contentType = Headers.jsonContentType;
+
+ if (attr.headers.isNotEmpty) {
+ _baseOptions.headers.addAll(attr.headers);
+ }
+
+ if (attr.queryParams.isNotEmpty) {
+ _baseOptions.queryParameters.addAll(attr.queryParams);
+ }
+
+ _requestDio = Dio(_baseOptions);
+ _requestDio.interceptors.add(Logging(attr));
+ _requestDio.interceptors.add(InterceptorsWrapper(
+ onResponse: (Response response, ResponseInterceptorHandler handler) {
+ // Create a new response object without headers
+ final newResponse = Response(
+ requestOptions: response.requestOptions,
+ data: response.data,
+ statusCode: response.statusCode,
+ statusMessage: response.statusMessage,
+ );
+ return handler.resolve(newResponse);
+ },
+ ));
+ _requestDio.transformer = DefaultTransformer();
+
+ (_requestDio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (HttpClient client) {
+ client.badCertificateCallback = (X509Certificate cert, String host, int port) => true;
+ return client;
+ };
+ }
+
+// static Future refreshToken(RequestAttr requestAttr) async {
+// RefreshTokenRequestModel userInfo = RefreshTokenRequestModel(
+// porOrgacode: SessionCache.instance.userInfo.porOrgacode,
+// pctCstycode: SessionCache.instance.userInfo.pctCstycode,
+// cmpCustcode: SessionCache.instance.userInfo.cmpCustcode,
+// cmpUserId: SessionCache.instance.userInfo.cmpUserId,
+// token: SessionCache.instance.userInfo.jwtToken,
+// );
+//
+// Map headers = {};
+// headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+// headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+// headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+// // headers["Devicename"] = "Mobile";
+//
+// ServerResponse refreshTokenResponse = await ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.REFRESH_TOKEN, HttpMethod.POST, userInfo.toMap(), headers, {}));
+// String token = refreshTokenResponse.response["token"] ?? "";
+// if (token.isEmpty) {
+// Toasty.error("Session timeout, Signing out...");
+// Get.offAllNamed(Routes.LOGIN);
+// return ServerResponse.init();
+// }
+//
+// SessionCache.instance.userInfo.jwtToken = token;
+// if (requestAttr.headers.containsKey("Authorization")) {
+// requestAttr.headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+// }
+// return await ServerRequest.request(requestAttr);
+// }
+}
diff --git a/lib/app/core/config/server_response.dart b/lib/app/core/config/server_response.dart
new file mode 100644
index 0000000..eb37a76
--- /dev/null
+++ b/lib/app/core/config/server_response.dart
@@ -0,0 +1,72 @@
+class ServerResponse {
+ dynamic response = {};
+ bool isError = false;
+ String errorCode = "";
+ String errorMsg = "";
+ int statusCode = -1;
+
+ ServerResponse(this.response, this.isError, this.errorCode, this.errorMsg, this.statusCode);
+
+ ServerResponse.init() {
+ response = {};
+ isError = false;
+ errorCode = "";
+ errorMsg = "";
+ statusCode;
+ }
+
+ Map toMap() {
+ return {
+ 'response': response,
+ 'isError': isError,
+ 'errorCode': errorCode,
+ 'errorMsg': errorMsg,
+ 'statusCode': statusCode,
+ };
+ }
+
+ factory ServerResponse.fromMap(Map map) {
+ return ServerResponse(
+ map['response'] as Map,
+ map['isError'] as bool,
+ map['errorCode'] ?? "",
+ map['errorMsg'] ?? "",
+ map['statusCode'] as int,
+ );
+ }
+
+ ServerResponse setStatusCode(int value) {
+ statusCode = value;
+ return this;
+ }
+
+ ServerResponse setErrorMsg(String value) {
+ errorMsg = value;
+ return this;
+ }
+
+ ServerResponse setErrorCode(String value) {
+ errorCode = value;
+ return this;
+ }
+
+ ServerResponse setIsError(bool value) {
+ isError = value;
+ return this;
+ }
+
+ // ServerResponse setResponse(Map value) {
+ // response = value;
+ // return this;
+ // }
+ ServerResponse setResponse(dynamic value) {
+ response = value;
+ return this;
+ }
+
+
+ @override
+ String toString() {
+ return 'ServerResponse{response: $response, isError: $isError, errorCode: $errorCode, errorMsg: $errorMsg, statusCode: $statusCode}';
+ }
+}
diff --git a/lib/app/core/constants/PinType.dart b/lib/app/core/constants/PinType.dart
new file mode 100644
index 0000000..da2902c
--- /dev/null
+++ b/lib/app/core/constants/PinType.dart
@@ -0,0 +1,4 @@
+class PinType {
+ static String PIN_TYPE_SIGNUP = "01";
+ static String PIN_TYPE_LOGIN = "02";
+}
diff --git a/lib/app/core/constants/api_keys.dart b/lib/app/core/constants/api_keys.dart
new file mode 100644
index 0000000..d1f0048
--- /dev/null
+++ b/lib/app/core/constants/api_keys.dart
@@ -0,0 +1,141 @@
+class ApiKeys {
+
+ static const String cmpUserId = 'cmpUserId';
+ static const String cmpCustpassword = 'cmpCustpassword';
+ static const String channelCode = 'channelCode';
+ static const String porOrgacode = 'porOrgacode';
+ // static const String pctCstycode = 'pctCstycode';
+ // static const String cmpIdennumber = 'cmpIdennumber';
+ // static const String cmpUserIdType = 'cmpUserIdType';
+ // static const String arguments = 'arguments';
+ // static const String cmpAccountno = 'cmpAccountno';
+ // static const String cmpCustcode = 'cmpCustcode';
+ // static const String phoneNo = 'phoneNo';
+ // static const String obpPincode = 'obpPincode';
+ // static const String newCustpassword = 'newCustpassword';
+ // static const String createdDate = 'sgtGntrCreatedAt';
+ // static const String narration = 'sgtGntrNarration';
+ // static const String deposit = 'deposit';
+ // static const String withdrawl = 'withdrawl';
+ // static const String balance = 'sgtGntramt';
+ // static const String transcationDesc = 'ptrTrandesc';
+ // static const String generateDate = 'sgtGntrdate';
+ // static const String valueDate = 'sgtGntrvaluedate';
+ // static const String amount = 'sgtGntramt';
+ // static const String chargesDes = 'pchChrgdesc';
+ // static const String porOrgaCodeDbName = 'POR_ORGACODE';
+ // static const String porOrgaCodeVarName = 'porOrgacode';
+ // static const String plcLocacodeDbName = 'PLC_LOCACODE';
+ // static const String plcLocacodeVarNam = 'plcLocacode';
+ // static const String requestIdDbName = 'REQUEST_ID';
+ // static const String requestIdVarName = 'requestId';
+ // static const String userIdDbName = 'USER_ID';
+ // static const String userIdVarName = 'USER_ID';
+ // static const String channelCodeDbName = 'CHANNEL_CODE';
+ // static const String channelCodeVarNam = 'CHANNEL_CODE';
+ // static const String accountInfoDbName = 'ACCOUNT_INFO';
+ // static const String accountInfoVarName = 'accountInfo';
+ // static const String dmpProdcodeDbName = 'DMP_PRODCODE';
+ // static const String dmpProdcodeVarName = 'dmpProdcode';
+ // static const String dcsSchemcodeDbName = 'DCS_SCHEMCODE';
+ // static const String dcsSchemcodeVarName = 'dcsSchemcode';
+ // static const String mbmBkmsnumberDbName = 'MBM_BKMSNUMBER';
+ // static const String mbmBkmsnumberVarName = 'mbmBkmsnumber';
+ // static const String ppcPrcgcodeDbName = 'PPC_PRCGCODE';
+ // static const String ppcPrcgcodeVarName = 'ppcPrcgcode';
+ // static const String mbmBkmstitleacntDbName = 'MBM_BKMSTITLEACNT';
+ // static const String mbmBkmstitleacntVarName = 'mbmBkmstitleacnt';
+ // static const String pcrCurrcodeDbName = 'PCR_CURRCODE';
+ // static const String pcrCurrcodearName = 'pcrCurrcodear';
+ // static const String mbmBkmsbalamountfcDbName = 'MBM_BKMSBALAMOUNTFC';
+ // static const String mbmBkmsbalamountfcVarName = 'mbmBkmsbalamountfc';
+ // static const String pasAcstcodeDbName = 'PAS_ACSTCODE';
+ // static const String pasAcstcodeVarName = 'pasAcstcode';
+ // static const String mbmBkmslienamountfcDbName = 'MBM_BKMSLIENAMOUNTFC';
+ // static const String mbmBkmslienamountfcVarName = 'mbmBkmslienamountfc';
+ // static const String blockedDbName = 'BLOCKED';
+ // static const String blockedVarName = 'blocked';
+ // static const String noOfTransactionDbName = 'NO_OF_TRANSACTION';
+ // static const String noOfTransactiondVarName = 'noOfTransaction';
+ // static const String noOfDaysDbName = 'NO_OF_DAYS';
+ // static const String noOfDaysVarName = 'noOfDays';
+ // static const String noOfMonthsDbName = 'NO_OF_MONTHS';
+ // static const String noOfMonthsVarName = 'noOfMonths';
+ // static const String fromDateDbName = 'FROM_DATE';
+ // static const String fromDateVarName = 'fromDate';
+ // static const String toDateDbName = 'TO_DATE';
+ // static const String toDateVarName = 'toDate';
+ // static const String sgtGntrdateDbName = 'SGT_GNTRDATE';
+ // static const String sgtGntrdateVarName = 'sgtGntrdate';
+ // static const String sgtGntrvaluedatDbName = 'SGT_GNTRVALUEDAT';
+ // static const String sgtGntrvaluedatVarName = 'sgtGntrvaluedat';
+ // static const String sgtGntrnumberDbName = 'SGT_GNTRNUMBER';
+ // static const String sgtGntrnumberVarName = 'sgtGntrnumber';
+ // static const String sgtGntrtimestampDbName = 'SGT_GNTRTIMESTAMP';
+ // static const String sgtGntrtimestampVarName = 'sgtGntrtimestamp';
+ // static const String transactionDetailInfoDbName = 'TRANSACTION_DETAIL_INFO';
+ // static const String transactionDetailInfoVarName = 'transactionDetailInfo';
+ // static const String ptrTrancodeDbName = 'PTR_TRANCODE';
+ // static const String ptrTrancodeVarName = 'ptrTrancode';
+ // static const String sgtGntrdrcrDbName = 'SGT_GNTRDRCR';
+ // static const String sgtGntrdrcrVarName = 'sgtGntrdrcr';
+ // static const String sgtGntramtfcDbName = 'SGT_GNTRAMTFC';
+ // static const String sgtGntramtfcVarName =me = 'SGT_GNTRAMTFC1';
+ // static const String sgtGntramtfc1VarName = 'sgtGntramtfc1';
+ // static const String sgtGntram 'sgtGntramtfc';
+ // static const String sgtGntramtfc1DbNatfc2DbName = 'SGT_GNTRAMTFC2';
+ // static const String colorCodeDbName = 'COLOR_CODE';
+ // static const String colorCodeVarName = 'colorCode';
+ // static const String debitInfoDbName = 'DEBIT_INFO';
+ // static const String debitInfoVarName = 'debitInfo';
+ // static const String creditInfoDbName = 'CREDIT_INFO';
+ // static const String creditInfoVarName = 'creditInfo';
+ // static const String pinInfoDbName = 'PIN_INFO';
+ // static const String pinInfoVarName = 'pinInfo';
+ // static const String operationInfoDbName = 'OPERATION_INFO';
+ // static const String operationInfoVarName = 'operationInfo';
+ // static const String beneficiaryInfoDbName = 'BENEFICIARY_INFO';
+ // static const String beneficiaryInfoVarName = 'beneficiaryInfo';
+ // static const String pbtBntpcodeDbName = 'PBT_BNTPCODE';
+ // static const String pbtBntpcodeVarName = 'pbtBntpcode';
+ // static const String pbtBntpdescDbName = 'PBT_BNTPDESC';
+ // static const String pbtBntpdescVarName = 'pbtBntpdesc';
+ // static const String ibanDbName = 'IBAN';
+ // static const String ibanVarName = 'IBAN';
+ // static const String mobileDbName = 'MOBILE';
+ // static const String mobileVarName = 'mobile';
+ // static const String emailDbName = 'EMAIL';
+ // static const String emailVarName = 'email';
+ // static const String operationIdDbName = 'OPERATION_ID';
+ // static const String operationIdVarName = 'operationId';
+ // static const String creditedAtDbName = 'CREDITED_AT';
+ // static const String creditedAtVarName = 'creditedAt';
+ // static const String statusDbName = 'STATUS';
+ // static const String statusVarName = 'status';
+ // static const String reconciliationStatusDbName = 'RECONCILIATION_STATUS';
+ // static const String reconciliationStatusVarName = 'reconciliationStatus';
+ // static const String amountDbName = 'AMOUNT';
+ // static const String amountVarName = 'amount';
+ // static const String timeZoneDbName = 'TIME_ZONE';
+ // static const String timeZoneVarName = 'timeZone';
+ // static const String senderInfoDbName = 'SENDER_INFO';
+ // static const String senderInfoVarName = 'senderInfo';
+ // static const String receiverInfoDbName = 'RECEIVER_INFO';
+ // static const String receiverInfoVarName = 'receiverInfo';
+ // static const String nameDbName = 'NAME';
+ // static const String nameVarName = 'name';
+ // static const String idTypeDbName = 'ID_TYPE';
+ // static const String idTypeVarName = 'idType';
+ // static const String idValueDbName = 'ID_VALUE';
+ // static const String idValueVarName = 'idValue';
+ // static const String mobileNoDbName = 'MOBILE_NO';
+ // static const String mobileNoVarName = 'mobileNo';
+ // static const String passKeyDbName = 'PASS_KEY';
+ // static const String passKeyVarName = 'passKey';
+ // static const String passCodeDbName = 'PASS_CODE';
+ // static const String passCodeVarName = 'passCode';
+ // static const String pinCodeDbName = 'PIN_CODE';
+ // static const String pinCodeVarName = 'pinCode';
+ // static const String pinValueDbName = 'PIN_VALUE';
+ // static const String pinValueVarName = 'pinValue';
+}
diff --git a/lib/app/core/constants/app_assets.dart b/lib/app/core/constants/app_assets.dart
new file mode 100644
index 0000000..7454051
--- /dev/null
+++ b/lib/app/core/constants/app_assets.dart
@@ -0,0 +1,141 @@
+class AppAssets {
+ static const String ORGANIZATION = "uco";
+
+ /// Logos
+ static const lg_uco_logo_white = "assets/$ORGANIZATION/logo/lg_uco_logo_white.svg";
+ static const lg_logo_black = "assets/$ORGANIZATION/logo/lg_logo_black.svg";
+ static const lg_mfsys = "assets/$ORGANIZATION/logo/lg_mfsys.png";
+ static const lg_bank = "assets/$ORGANIZATION/logo/lg_bank.png";
+ static const uc_logo = "assets/$ORGANIZATION/logo/uc_logo.png";
+ static const ic_dashboard_logo = "assets/$ORGANIZATION/logo/ic_dashboard_logo.svg";
+ static const lg_back_arrow = "assets/$ORGANIZATION/logo/lg_back_arrow.svg";
+ static const u_receive = "assets/$ORGANIZATION/logo/u_receive.svg";
+ static const u_send = "assets/$ORGANIZATION/logo/u_send.svg";
+ static const u_shop = "assets/$ORGANIZATION/logo/u_shop.svg";
+ static const ic_launcher = "assets/$ORGANIZATION/logo/ic_launcher.png";
+
+ /// Images
+ static const img_slider = "assets/$ORGANIZATION/images/img_slider.svg";
+ static const img_global = "assets/${ORGANIZATION}/images/img_global.svg";
+ static const img_qr = "assets/${ORGANIZATION}/images/im_qr.svg";
+
+ ///Icons ic_desposit_account_arrow
+ static const ic_pakistan = "assets/${ORGANIZATION}/icons/ic_pakistan.png";
+ static const ic_arrow_down = "assets/${ORGANIZATION}/icons/ic_arrow_down.svg";
+ static const ic_client = "assets/$ORGANIZATION/icons/ic_client.png";
+ static const ic_contact_us = "assets/$ORGANIZATION/icons/ic_contact_us.png";
+ static const ic_cyber_security = "assets/$ORGANIZATION/icons/ic_cyber_security.svg";
+ static const ic_security = "assets/$ORGANIZATION/icons/ic_security.png";
+ static const ic_QR = "assets/$ORGANIZATION/icons/ic_QR.png";
+ static const ic_cross = "assets/$ORGANIZATION/icons/ic_cross.svg";
+ static const ic_email = "assets/$ORGANIZATION/icons/ic_email.svg";
+ static const ic_phone = "assets/$ORGANIZATION/icons/ic_phone.svg";
+ static const ic_clock_circle = "assets/$ORGANIZATION/icons/ic_clock_circle.svg";
+ static const ic_success_tick = "assets/$ORGANIZATION/icons/ic_success_tick.svg";
+
+ static const ic_cheque_management = "assets/$ORGANIZATION/icons/ic_cheque_management.svg";
+ static const ic_activity = "assets/$ORGANIZATION/icons/ic_activity.svg";
+ static const ic_close = "assets/$ORGANIZATION/icons/ic_close.svg";
+
+ // static const ic_customer_service = "assets/$ORGANIZATION/icons/ic_customer_service.svg";
+ static const ic_location = "assets/$ORGANIZATION/icons/ic_location.svg";
+ static const ic_logout = "assets/$ORGANIZATION/icons/ic_logout.svg";
+ static const ic_management = "assets/$ORGANIZATION/icons/ic_management.svg";
+ static const ic_money_management = "assets/$ORGANIZATION/icons/ic_money_management.svg";
+ static const ic_night_mode = "assets/$ORGANIZATION/icons/ic_night_mode.svg";
+ static const ic_setting = "assets/$ORGANIZATION/icons/ic_setting.svg";
+ static const ic_social_network = "assets/$ORGANIZATION/icons/ic_social_network.svg";
+ static const ic_u_send = "assets/$ORGANIZATION/icons/ic_u_send.svg";
+ static const ic_user = "assets/$ORGANIZATION/icons/ic_user.svg";
+ static const ic_white_color_user = "assets/$ORGANIZATION/icons/ic_white_color_user.svg";
+ static const ic_person = "assets/$ORGANIZATION/icons/ic_user.svg";
+ static const ic_accounts = "assets/$ORGANIZATION/icons/ic_accounts.svg";
+ static const ic_cash_bottombar = "assets/$ORGANIZATION/icons/ic_cash_bottombar.svg";
+ static const ic_shoping = "assets/$ORGANIZATION/icons/ic_shoping.svg";
+ static const ic_money_send = "assets/$ORGANIZATION/icons/ic_money_send.svg";
+ static const lg_dialog_logo = "assets/$ORGANIZATION/logo/lg_dialog_logo.svg";
+ static const sending_icon = "assets/$ORGANIZATION/icons/sending_icon.svg";
+ static const ic_snding_money = "assets/$ORGANIZATION/icons/ic_snding_money.svg";
+ static const ic_u_cash = "assets/$ORGANIZATION/icons/ic_u_cash.svg";
+ static const ic_u_recive = "assets/$ORGANIZATION/icons/ic_u_recive.svg";
+ static const ic_u_shop = "assets/$ORGANIZATION/icons/ic_u_shop.svg";
+ static const img_round_dashboard_card = "assets/$ORGANIZATION/images/img_round_dashboard_card.svg";
+ static const img_debet = "assets/$ORGANIZATION/images/img_debet.svg";
+ static const ic_camera = "assets/$ORGANIZATION/icons/ic_camera.svg";
+ static const ic_next = "assets/$ORGANIZATION/icons/ic_next.svg";
+
+ static const ic_feature_icon = "assets/$ORGANIZATION/icons/ic_feature_icon.svg";
+ static const ic_country_flag = "assets/$ORGANIZATION/icons/ic_country_flag.svg";
+ static const ic_desposit_account_arrow = "assets/$ORGANIZATION/icons/ic_desposit_account_arrow.svg";
+ static const ic_saving_account = "assets/$ORGANIZATION/icons/ic_saving_account.svg";
+ static const ic_back_arrow_appbar = "assets/$ORGANIZATION/icons/ic_back_arrow_appbar.svg";
+
+ static const kprogresshud_spinner = "assets/uco/icons/ic_kprogresshud_spinner.png";
+
+ static const ic_electricity = "assets/${ORGANIZATION}/icons/ic_electricity.png";
+ static const ic_gas = "assets/${ORGANIZATION}/icons/ic_gas.png";
+ static const ic_internet = "assets/${ORGANIZATION}/icons/ic_internet.png";
+ static const ic_ptcl = "assets/${ORGANIZATION}/icons/ic_ptcl.svg";
+ static const ic_water = "assets/${ORGANIZATION}/icons/ic_water.png";
+ static const ic_card = "assets/${ORGANIZATION}/icons/ic_card.svg";
+ static const ic_government = "assets/${ORGANIZATION}/icons/ic_government.png";
+ static const ic_multan = "assets/${ORGANIZATION}/icons/ic_multan.png";
+ static const ic_khan = "assets/${ORGANIZATION}/icons/ic_khan.png";
+ static const ic_ke = "assets/${ORGANIZATION}/icons/ic_ke.png";
+ static const ic_kc = "assets/${ORGANIZATION}/icons/ic_kc.png";
+ static const ic_removeImage = "assets/${ORGANIZATION}/icons/ic_removeImage.svg";
+ static const ic_check_status = "assets/${ORGANIZATION}/icons/ic_check_status.svg";
+ static const ic_cheque_deposit = "assets/${ORGANIZATION}/icons/ic_cheque_deposit.svg";
+ static const ic_activation = "assets/${ORGANIZATION}/icons/ic_activation.svg";
+ static const ic_request = "assets/${ORGANIZATION}/icons/ic_request.svg";
+ static const ic_cheque = "assets/${ORGANIZATION}/icons/ic_cheque.svg";
+ static const ic_download = "assets/${ORGANIZATION}/icons/ic_download.svg";
+ static const ic_share = "assets/${ORGANIZATION}/icons/ic_share.svg";
+
+ static const arrow = "assets/$ORGANIZATION/icons/arrow.svg";
+ static const ic_manage_account = "assets/$ORGANIZATION/icons/ic_manage_account.svg";
+ static const bankDetails = "assets/$ORGANIZATION/icons/bankDetails.svg";
+ static const changePassoword = "assets/$ORGANIZATION/icons/changePassoword.svg";
+ static const inviteFriendsUco = "assets/$ORGANIZATION/icons/inviteFriendsUco.svg";
+ static const personalDetails = "assets/$ORGANIZATION/icons/personal_details.svg";
+ static const ic_sort = "assets/$ORGANIZATION/icons/ic_sort.png";
+ static const ic_featured = "assets/$ORGANIZATION/icons/ic_featured.svg";
+ static const ic_congratulations = "assets/$ORGANIZATION/icons/ic_congratulations.svg";
+ static const ic_correct_icon = "assets/$ORGANIZATION/icons/ic_correct_icon.svg";
+
+ static const ic_arrow = "assets/$ORGANIZATION/icons/ic_arrow.svg";
+
+ static const icCloseDash = "assets/$ORGANIZATION/icons/_ic_close_dashboard.svg";
+
+ static String use_flag = "assets/$ORGANIZATION/icons/use_flag.png";
+
+ static String euro_flag = "assets/$ORGANIZATION/icons/euro_flag.png";
+ static String gbp_flag = "assets/$ORGANIZATION/icons/gbp_flag.png";
+ static String aud_flag = "assets/$ORGANIZATION/icons/aud_flag.png";
+ static String ind_flag = "assets/$ORGANIZATION/icons/ind_flag.png";
+
+ static String drop_down_ic = "assets/uco/icons/drop_down_ic.png";
+ static const ic_debit_card = "assets/$ORGANIZATION/icons/ic_debit_card.svg";
+ static const ic_bank = "assets/$ORGANIZATION/icons/ic_bank.svg";
+ static const ic_general_ledger = "assets/$ORGANIZATION/icons/ic_general_ledger.svg";
+ static const ic_home_icon = "assets/$ORGANIZATION/icons/ic_home_icon.svg";
+ static const ic_tick_option = "assets/$ORGANIZATION/icons/ic_tick_option.svg";
+ static const ic_cross_option = "assets/$ORGANIZATION/icons/ic_cross_option.svg";
+
+ static var ic_sui_gas = "assets/$ORGANIZATION/icons/suigas.svg";
+ static var ic_filter_statement = "assets/$ORGANIZATION/icons/ic_filter_statement.svg";
+ static var ic_u_receive_menu = "assets/$ORGANIZATION/icons/ic_u_receive_menu.svg";
+ static var ic_cross_white = "assets/$ORGANIZATION/icons/ic_cross_white.svg";
+ static var ic_sub_accounts = "assets/$ORGANIZATION/icons/ic_sub_accounts.svg";
+ static var sending_icon_icon = "assets/$ORGANIZATION/icons/sending_icon_icon.svg";
+ static var bankAccountDetails = "assets/$ORGANIZATION/icons/bankAccountDetails.svg";
+ static var ic_language = "assets/$ORGANIZATION/icons/ic_language.svg";
+ static var ic_daily_transaction = "assets/$ORGANIZATION/icons/ic_daily_transaction.svg";
+ static var ic_customer_service = "assets/$ORGANIZATION/icons/ic_customer_service.svg";
+ static var ic_bill = "assets/$ORGANIZATION/icons/ic_bill.svg";
+ static var ic_arrow_down_icon = "assets/$ORGANIZATION/icons/ic_arrow_down_icon.png";
+ static var ic_select_contact = "assets/$ORGANIZATION/icons/ic_select_contact.svg";
+ static var ic_bank_transfer = "assets/$ORGANIZATION/icons/ic_bank_transfer.svg";
+ static var ic_add_new_Account = "assets/$ORGANIZATION/icons/ic_add_new_Account.png";
+ static var ic_warning = "assets/$ORGANIZATION/icons/ic_warning.png";
+}
diff --git a/lib/app/core/constants/app_contants.dart b/lib/app/core/constants/app_contants.dart
new file mode 100644
index 0000000..0d48b08
--- /dev/null
+++ b/lib/app/core/constants/app_contants.dart
@@ -0,0 +1,88 @@
+class AppConstants {
+
+ // Pin Type
+ static const String PIN_TYPE_SIGNUP = "01";
+ static const String PIN_TYPE_LOGIN = "02";
+ static const String PIN_TYPE_Transaction = "03";
+
+
+ // User Role
+ static const String ROLE_USER = "USER";
+ static const String ROLE_ADMIN = "ADMIN";
+
+
+ // Identification type
+ static const String IDEN_TYPE_CNIC = "01";
+ static const String IDEN_TYPE_PASSPORT = "02";
+ static const String IDEN_TYPE_DRIVING_LICIENCE = "03";
+
+
+ /// ------------------------- DashBoard Drawer
+ static const ID_CHANGE_THEME = "ID_CHANGE_THEME";
+ static const ID_MY_ACCOUNT = "ID_MY_ACCOUNT";
+ static const ID_BILL_MANAGEMENT = "ID_BILL_MANAGEMENT";
+ static const ID_CHEQUE_MANAGEMENT = "ID_CHEQUE_MANAGEMENT";
+ static const ID_U_SEND = "ID_U_SEND";
+ static const ID_INTERNAL_TRANSACTION = "ID_INTERNAL_TRANSACTION";
+ static const ID_BENEFICIARY_MANAGEMENT = "ID_BENEFICIARY_MANAGEMENT";
+ static const ID_PROFILE = "ID_PROFILE";
+ static const ID_AGENT_LOCATION = "ID_AGENT_LOCATION";
+ static const ID_ACCOUNT_STATEMENT = "ID_ACCOUNT_STATEMENT";
+ static const ID_SUPPORT = "ID_SUPPORT";
+ static const ID_USER_ACTIVITY = "ID_USER_ACTIVITY";
+ static const ID_LOGOUT = "ID_LOGOUT";
+ static const ID_USER_PROFILE = "ID_USER_PROFILE";
+ static const ID_APP_SETTING = "ID_APP_SETTING";
+ static const ID_PRIVACY_POLICY = "ID_PRIVACY_POLICY";
+ static const ID_VERSION = "ID_VERSION";
+ static const SELECTED_LOCALE = "selectedLocale";
+ static const SELECTED_CONTACT = "selectedContact";
+ static const IS_RTL = "isRTL";
+ static const ID_ABOUT_US = "ID_ABOUT_US";
+ static const ID_CAREER = "ID_CAREER";
+
+ static var SIGN_UP_FIRST_STEP_DATA = "SIGN_UP_FIRST_STEP_DATA";
+ static var SIGN_UP_SECOND_STEP_DATA = "SIGN_UP_SECOND_STEP_DATA";
+ static const IS_DARK_MODE = "isDarkMode";
+ static const IS_FINGER_PRINT_ENABLED = "isFingrPrinterEnabled";
+
+
+ static const SEND_TRANS_STEP1_DATA = "SEND_TRANS_STEP1_DATA";
+ static const SEND_TRANS_PIN_REQUEST = "SEND_TRANS_PIN_REQUEST";
+ static const INTERNAL_TRANSACTION_PIN_REQUEST = "INTERNAL_TRANSACTION_PIN_REQUEST";
+ static const EXCHANGE_RATE = "EXCHANGE_RATE";
+
+ /// Request constants
+ static const FETCH_ACCOUNT_DETAILS = "FETCH_ACCOUNT_DETAILS";
+ static const SEND_TRANSACTION_STEP_1 = "SEND_TRANSACTION_STEP_1";
+ static const SEND_TRANSACTION_STEP_2 = "SEND_TRANSACTION_STEP_2";
+ static const ADD_NEW_BENEFICIARY = "ADD_NEW_BENEFICIARY";
+ static const UPLOAD_USER_PROFILE_PICTURE = "UPLOAD_USER_PROFILE_PICTURE";
+ static const GET_LOGIN_OTP = "GET_LOGIN_OTP";
+ static const VALIDATE_LOGIN_PIN = "VALIDATE_LOGIN_PIN";
+ static const FETCH_DEPOSITE_ACCOUNT_TRANSACTIONS = "FETCH_DEPOSITE_ACCOUNT_TRANSACTIONS";
+ static const FETCH_EXCHANGE_RATE = "FETCH_EXCHANGE_RATE";
+ static const FETCH_ACCOUNT_IQUIRY = "FETCH_ACCOUNT_IQUIRY";
+ static const FETCH_ALL_BENEFICIARY = "FETCH_ALL_BENEFICIARY";
+ static const DELETE_BENEFICIARY = "DELETE_BENEFICIARY";
+ static const CREATE_TRANSACTION_PIN = "CREATE_TRANSACTION_PIN";
+ static const CHANGE_TRANSACTION_PIN = "CHANGE_TRANSACTION_PIN";
+ static const GENERATE_REPORTS = "GENERATE_REPORTS";
+ static const SIGNUP_STEP_1 = "SIGNUP_STEP_1";
+ static const SIGUP_STEP_2 = "SIGUP_STEP_2";
+ static const SIGUP_STEP_3 = "SIGUP_STEP_3";
+ static const CHANGE_PASSWORD_SEND_OTP = "CHANGE_PASSWORD_SEND_OTP";
+ static const CHANGE_PASSWORD = "CHANGE_PASSWORD";
+ static const GET_PENDING_TRANSITION = "GET_PENDING_TRANSITION";
+ static const ACCEPT_RECEIVE_TRANSACTION = "ACCEPT_RECEIVE_TRANSACTION";
+ static const REVERSE_TRANSACTION = "REVERSE_TRANSACTION";
+ static const FETCH_ACCOUNT_STATEMENT = "FETCH_ACCOUNT_STATEMENT";
+ static const DEVICE_NAME = "Mobile";
+ static const FETCH_USER_ACTIVITY = "FETCH_USER_ACTIVITY";
+ static const FETCH_DEPOSIT_PRODUCTS = "FETCH_DEPOSIT_PRODUCTS";
+ static const FETCH_GLS_ACCOUNTS = "FETCH_GLS_ACCOUNTS";
+ static const ADD_NEW_ACCOUNT = "ADD_NEW_ACCOUNT";
+ static const CREATE_TRANSACTION_PIN_OTP = "CREATE_TRANSACTION_PIN_OTP";
+ static const CHANGE_TRANSACTION_PIN_OTP = "CHANGE_TRANSACTION_PIN_OTP";
+
+}
diff --git a/lib/app/core/constants/form_field_constants.dart b/lib/app/core/constants/form_field_constants.dart
new file mode 100644
index 0000000..22f677c
--- /dev/null
+++ b/lib/app/core/constants/form_field_constants.dart
@@ -0,0 +1,30 @@
+import 'package:flutter/cupertino.dart';
+
+class FormFieldConstants {
+ static FormFieldConstants instance() {
+ return _instance;
+ }
+
+ static final FormFieldConstants _instance = FormFieldConstants._internal();
+
+ FormFieldConstants._internal();
+
+ factory FormFieldConstants() {
+ return _instance;
+ }
+
+ final Map> _keys = {};
+ final Map _controllers = {};
+
+ TextEditingController getController(String keyName) {
+ return _controllers[keyName] ??= TextEditingController(); // Assign if not exist
+ }
+
+ GlobalKey getFormKey(String keyName) {
+ return _keys[keyName] ??= GlobalKey(); // Assign if not exist
+ }
+ void clearKeysForScreen(String screenPrefix) {
+ _keys.removeWhere((key, value) => key.startsWith(screenPrefix));
+ _controllers.removeWhere((key, value) => key.startsWith(screenPrefix));
+ }
+}
diff --git a/lib/app/core/constants/translation_keys.dart b/lib/app/core/constants/translation_keys.dart
new file mode 100644
index 0000000..5affafd
--- /dev/null
+++ b/lib/app/core/constants/translation_keys.dart
@@ -0,0 +1,344 @@
+import 'package:get/get.dart';
+
+class TranslationKeys {
+ static String textUserActivityTitle = "textUserActivityTitle";
+ static String textAddBeneficiary = "textAddBeneficiary";
+ static String textWarningContent = "textWarningContent";
+
+ static String textUserActivityChannel = "textUserActivityChannel";
+ static String textReferenceCode = "textReferenceCode";
+
+ static var textUserActivityDevice = "textUserActivityDevice";
+ static var textInternetConnectivity = "textInternetConnectivity";
+ static var textInternalAccountTransaction = "textInternalAccountTransaction";
+
+ static var textPay = "textPay";
+ static var textTransferAmount = "textTransferAmount";
+ static var textAddToBeneficiary = "textAddToBeneficiary";
+ static var textDelete = "textDelete";
+
+ static String changepassword = "changepassword";
+ static String textAddAccount = "textAddAccount";
+ static String textCreateAccount = "textCreateAccount";
+ static String textReverse = "textReverse";
+
+ static String textChangePassword = "textChangePassword";
+ static String textEnterEmail = "textEnterEmail";
+ static String textCongratulationsContent = "textCongratulationsContent";
+
+ static String textSelectFromDateAndProceed = "textSelectFromDateAndProceed";
+ static String transPakGasAgency = "transPakGasAgency";
+ static String transSuiGas = "transSuiGas";
+ static String transMinerva = "transMinerva";
+ static String transNestle = "transNestle";
+ static String transAquaFujitenma = "transAquaFujitenma";
+ static String transPepsiCo = "transPepsiCo";
+ static String transFiber = "transFiber";
+ static String transZong = "transZong";
+ static String textPasswordPattern = "textPasswordPattern";
+ static String textOurFee = "textOurFee";
+ static String textTotalAmountWellConvert = "textTotalAmountWellConvert";
+ static String textGuaranteedExchnageRate = "textGuaranteedExchnageRate";
+ static String textSelectYourGLSAccount = "textSelectYourGLSAccount";
+ static String textGlsAccounts = "textGlsAccounts";
+ static String textEnterMessage = "textEnterMessage";
+
+ static String continueText = "Continue";
+ static String ERR_CONNECTION = "ERR_CONNECTION";
+
+ static String makeTranslation(String key) {
+ return key.tr;
+ }
+
+ static String textWelcomeToJoin = "textWelcomeToJoin";
+ static String textShare = "textShare";
+ static String textIntroDescription = "textIntroDescription";
+ static String textLogin = "textLogin";
+ static String textRegister = "textRegister";
+ static String textFindUAgent = "textFindUAgent";
+ static String textQRPay = "textQRPay";
+ static String textHelp = "textHelp";
+ static String textContactUs = "textContactUs";
+ static String textGetInTouch = "textGetInTouch";
+ static String textEmail = "textEmail";
+ static String textPhone = "textPhone";
+ static String textOTPDescription = "textOTPDescription";
+ static String textOTP = "textOTP";
+ static String textOTPValid = "textOTPValid";
+ static String textResend = "textResend";
+ static String textVerify = "textVerify";
+ static String textCongratulations = "textCongratulations";
+ static String textOTPMessage = "textOTPMessage";
+ static String resetPasswordMessage = "resetPasswordMessage";
+ static String textContinue = "textContinue";
+ static String textAccountTitle = "textAccountTitle";
+ static String textAccountSession = "textAccountSession";
+ static String textSuccess = "textSuccess";
+ static String textOK = "textOK";
+ static String textWarning = "textWarning";
+ static String textCancel = "textCancel";
+ static String textConformation = "textConformation";
+ static String textLogOutContent = "textLogOutContent";
+ static String textManage = "textManage";
+ static String textLogout = "textLogout";
+ static String textVersion = "textVersion";
+ static String textMyAccount = "textMyAccount";
+ static String textBillManagement = "textBillManagement";
+ static String textChequeManagement = "textChequeManagement";
+ static String textUSend = "textUSend";
+ static String textUReceived = "textUReceived";
+ static String textBeneficiaryManagement = "textBeneficiaryManagement";
+ static String textAgentLocation = "textAgentLocation";
+ static String textAccountStatement = "textAccountStatement";
+ static String textSupport = "textSupport";
+ static String textUserProfile = "textUserProfile";
+ static String textUserActivity = "textUserActivity";
+ static String textLogOut = "textLogOut";
+ static String textUCash = "textUCash";
+ static String textUShop = "textUShop";
+ static String textOverView = "textOverView";
+ static String textDashboardWelcomeUser = "textDashboardWelcomeUser";
+ static String textTotalAvailableFunds = "textTotalAvailableFunds";
+ static String textTotalAvailableBalance = "textTotalAvailableBalance";
+ static String textTotalAvailableBalanceInWords = "textTotalAvailableBalanceInWords";
+ static String textAccountNumber = "textAccountNumber";
+ static String textPleaseSelectAccount = "textPleaseSelectAccount";
+ static String textStatementDetails = "textStatementDetails";
+ static String textBalance = "textBalance";
+ static String textUPrimary = "textUPrimary";
+ static String textUSave = "textUSave";
+ static String textUChaChing = "textUChaChing";
+ static String textAboutUs = "textAboutUs";
+ static String textCareer = "textCareer";
+ static String textWHY = "textWHY";
+ static String textWHYDescription = "textWHYDescription";
+ static String textWHAT = "textWHAT";
+ static String textWHATDescription = "textWHATDescription";
+ static String textWHO = "textWHO";
+ static String textWHODescription = "textWHODescription";
+ static String textJobTitle = "textJobTitle";
+ static String textApply = "textApply";
+ static String textOfficeAddress = "textOfficeAddress";
+ static String textJobSkills = "textJobSkills";
+ static String textSelectPersonalAccount = "textSelectPersonalAccount";
+ static String textRecipientDetail = "textRecipientDetail";
+ static String textPhoneNumber = "textPhoneNumber";
+ static String textRecipientCardName = "textRecipientCardName";
+ static String textSelectCurrency = "textSelectCurrency";
+ static String textSendingAmount = "textSendingAmount";
+ static String textExchangeRate = "textExchangeRate";
+ static String textMessageMemo = "textMessageMemo";
+ static String textSend = "textSend";
+ static String textClear = "textClear";
+ static String textPermissionDenied = "textPermissionDenied";
+ static String textMyProfile = "textMyProfile";
+ static String textNotFound = "textNotFound";
+ static String textRecipient = "textRecipient";
+ static String textHome = "textHome";
+ static String textCurrency = "textCurrency";
+ static String textMessage = "textMessage";
+ static String textConfirm = "textConfirm";
+ static String textEndingBalance = "textEndingBalance";
+ static String textPendingRemittance = "textPendingRemittance";
+ static String textReceived = "textReceived";
+ static String textPinCode = "textPinCode";
+ static String textBack = "textBack";
+ static String textCancelDescription = "textCancelDescription";
+ static String textYes = "textYes";
+ static String textErrorRequired = "textErrorRequired";
+ static String textUserName = "textUserName";
+ static String textPassword = "textPassword";
+ static String textConfirmPassword = "textConfirmPassword";
+ static String textEmailID = "textEmailID";
+ static String textCellNumber = "textCellNumber";
+ static String textNext = "textNext";
+ static String textName = "textName";
+ static String textAddress = "textAddress";
+ static String textIdentityNumber = "textIdentityNumber";
+ static String textSSNTaxPayerID = "textSSNTaxPayerID";
+ static String textPassportAlienID = "textPassportAlienID";
+ static String textChooseDocumentType = "textChooseDocumentType";
+ static String textCNIC = "textCNIC";
+ static String textDivingLicense = "textDivingLicense";
+ static String textPassport = "textPassport";
+ static String textDocumentsDescription = "textDocumentsDescription";
+ static String textFront = "textFront";
+ static String textSkipKYC = "textSkipKYC";
+ static String textSignUpDescriptionDailog = "textSignUpDescriptionDailog";
+ static String textNotRegisterUser = "textNotRegisterUser";
+ static String textRegisterNow = "textRegisterNow";
+ static String textSingUp = "textSingUp";
+ static String textUploadKYC = "textUploadKYC";
+ static String textTransactionHistory = "textTransactionHistory";
+ static String textSelectOption = "textSelectOption";
+ static String textSearch = "textSearch";
+
+ /// import from Include app
+ static String textMapLocationTitle = "textMapLocationTitle";
+ static String textNormalMap = "textNormalMap";
+ static String textSatelliteMap = "textSatelliteMap";
+ static String textHybridMap = "textHybridMap";
+ static String textMapContactNumber = "textMapContactNumber";
+ static String transUtilityBillCategory = "transUtilityBillCategory".tr;
+ static String transUtilityBill = "transUtilityBill";
+ static String textSelectBillType = "textSelectBillType";
+ static String transUtilityElectricity = "transUtilityElectricity";
+ static String transUtilityGas = "transUtilityGas";
+ static String transUtilityInternet = "transUtilityInternet";
+ static String transUtilityPTCL = "transUtilityPTCL";
+ static String transUtilityWater = "transUtilityWater";
+ static String transUtilityCreditCard = "transUtilityCreditCard";
+ static String textSelectCompany = "textSelectCompany";
+ static String transUtilityAJKBARKIYAT = "transUtilityAJKBARKIYAT".tr;
+ static String transUtilityFESCO = "transUtilityFESCO".tr;
+ static String transUtilityGBBARKIYAT = "transUtilityGBBARKIYAT".tr;
+ static String transUtilityGEPCO = "transUtilityGEPCO".tr;
+ static String transUtilityHESCO = "transUtilityHESCO".tr;
+ static String transUtilityIESCO = "transUtilityIESCO".tr;
+ static String textChequeBookActivation = "textChequeBookActivation";
+ static String textChequeBookActivationDialogMsg = "textChequeBookActivationDialogMsg";
+ static String textActivationContent = "textActivationContent";
+ static String textActivationContentPart = "textActivationContentPart";
+ static String textAccount = "textAccount";
+
+ //static String textAccountNumber = "textAccountNumber";
+ static String textBillDetailCustomerName = "textBillDetailCustomerName";
+ static String textFirstLeaf = "textFirstLeaf";
+ static String textEnterChequeNumber = "textEnterChequeNumber";
+ static String textLastLeaf = "textLastLeaf";
+ static String textChequeRequestDetail = "textChequeRequestDetail";
+ static String textChequeBookRequestContent = "textChequeBookRequestContent";
+ static String textLeave20 = "textLeave20";
+ static String textLeaves = "textLeaves";
+ static String textGet = "textGet";
+ static String textLeave50 = "textLeave50";
+ static String textLeave100 = "textLeave100";
+ static String textChange = "textChange";
+ static String textDeliveryAddress = "textDeliveryAddress";
+ static String textChequeBookRequestAddress = "textChequeBookRequestAddress";
+ static String textCharges = "textCharges";
+ static String textScheduleCharges = "textScheduleCharges";
+ static String textDate = "textDate";
+ static String textDateContent = "textDateContent";
+ static String textRequestSummary = "textRequestSummary";
+ static String textNumberofLeaves = "textNumberofLeaves";
+ static String textQueryContent = "textQueryContent";
+ static String textDeposit = "textDeposit";
+ static String textChequeDeposit = "textChequeDeposit";
+ static String textChequeStatusContent = "textChequeStatusContent";
+ static String textDepositToChequing = "textDepositToChequing";
+ static String text1000 = "text1000";
+ static String textMax300000 = "textMax300000";
+ static String textSelectAccount = "textSelectAccount";
+ static String textFrontOfCheque = "textFrontOfCheque";
+ static String textBackofCheque = "textBackofCheque";
+ static String textTryAgain = "textTryAgain";
+ static String textChequeStatus = "textChequeStatus";
+ static String textChequeActivation = "textChequeActivation";
+ static String textChequeRequest = "textChequeRequest";
+ static String textChequeRequestContent = "textChequeRequestContent";
+ static String textChequeNumber = "textChequeNumber";
+ static String textChequeStatusHistory = "textChequeStatusHistory";
+ static String textChequeStatusHistoryContent = "textChequeStatusHistoryContent";
+ static String textChequeStatusCheckNumber = "textChequeStatusCheckNumber";
+ static String textChequeStatusHistoryRefNo = "textChequeStatusHistoryRefNo";
+ static String textChequeStatusHistorySuccess = "textChequeStatusHistorySuccess";
+ static String textChequeStatusHistoryCancel = "textChequeStatusHistoryCancel";
+ static String textPTCLLandLine = "textPTCLLandLine";
+ static String textSelectAccountDetails = "textSelectAccountDetails";
+ static String textCreditCard = "textCreditCard";
+ static String textCreditCardNumber = "textCreditCardNumber";
+ static String textAmountDebit = "textAmountDebit";
+ static String textEnterConsumerName = "textEnterConsumerName";
+ static String textTotalAmount = "textTotalAmount";
+ static String textEnterAmount = "textEnterAmount";
+ static String textBillDetails = "textBillDetails";
+ static String textBillConsumerName = "textBillConsumerName";
+ static String textBillAmount = "textBillAmount";
+ static String textDueDate = "textDueDate";
+ static String textAmountDueAfterDueDate = "textAmountDueAfterDueDate";
+ static String textBillStatus = "textBillStatus";
+ static String textBillDetailZero = "textBillDetailZero";
+ static String textBillDetailDate = "textBillDetailDate";
+ static String textBillDetailUnPaid = "textBillDetailUnPaid";
+ static String textPayNow = "textPayNow";
+ static String textBillDetailContent = "textBillDetailContent";
+ static String textBillDetailBalance = "textBillDetailBalance";
+ static String textBillDetailBillAmount = "textBillDetailBillAmount";
+ static String textBillDetailBillDueDate = "textBillDetailBillDueDate";
+ static String textBillDetailBillAmountDue = "textBillDetailBillAmountDue";
+ static String textBillDetailBillAfterDueDate = "textBillDetailBillAfterDueDate";
+ static String textBillDetailBillStatus = "textBillDetailBillStatus";
+ static String textProfileHey = "textProfileHey";
+ static String textProfileUsername = "textProfileUsername";
+ static String textAppSettingTitle = "textAppSettingTitle";
+ static String textLanguagesTitle = "textLanguagesTitle";
+ static String textDarkModeContent = "textDarkModeContent";
+ static String textFingerPrintTitle = "textFingerPrintTitle";
+ static String textFingerPrintContent = "textFingerPrintContent";
+ static String textPasswordChangeTitle = "textPasswordChangeTitle";
+ static String textPasswordChangeContent = "textPasswordChangeContent";
+ static String textTermOfService = "textTermOfService";
+ static String textPrivacy = "textPrivacy";
+ static String textInviteFriends = "textInviteFriends";
+ static String textDialogConformation = "textDialogConformation";
+ static String textDialogContent = "textDialogContent";
+ static String textSignOut = "textSignOut";
+ static String textSelectYourOption = "textSelectYourOption";
+ static String textLanguageEnglish = "textLanguageEnglish";
+ static String textLanguageArabic = "textLanguageArabic";
+ static String textLanguageUrdu = "textLanguageUrdu";
+ static String textNoSelect = "textNoSelect";
+ static String textMyAccountTitle = "textMyAccountTitle";
+ static String textMyAccountAccountTitle = "textMyAccountAccountTitle";
+ static String textMyAccountAccountNumber = "textMyAccountAccountNumber";
+ static String textMyAccountBranchCode = "textMyAccountBranchCode";
+ static String textMyAccountAccountOpeningDate = "textMyAccountAccountOpeningDate";
+ static String textAppSetting = "textAppSetting";
+ static String textLoginTitle = "textLoginTitle";
+ static String textInvalidFingerprint = "textInvalidFingerprint";
+ static String textDailyTransactionLimit = "textDailyTransactionLimit";
+ static String textChangeTransactionPin = "textChangeTransactionPin";
+ static String textQRSetting = "textQRSetting";
+ static String textTransactionLimit = "textTransactionLimit";
+ static String textTransactionPin = "textTransactionPin";
+ static String textOldLimit = "textOldLimit";
+ static String textMaximumLengthContent = "textMaximumLengthContent";
+ static String textLimitNoteContent = "textLimitNoteContent";
+ static String textCurrentDailyLimit = "textCurrentDailyLimit";
+ static String textDone = "textDone";
+ static String textPinOTPMessage = "textPinOTPMessage";
+ static String textYourUCOQR = "textYourUCOQR";
+ static String textUCOQRContent = "textUCOQRContent";
+ static String textQrAccountName = "textQrAccountName";
+ static String textQrAccountNumber = "textQrAccountNumber";
+ static String textShareQRCode = "textShareQRCode";
+ static String textSavetoGallery = "textSavetoGallery";
+ static String textNotifications = "textNotifications";
+ static String textFilter = "textFilter";
+ static String textCreateTransactionPin = "textCreateTransactionPin";
+ static String textPleaseCreatenewtransactionpin = "textPleaseCreatenewtransactionpin";
+ static String textConfirmTransactionPin = "textConfirmTransactionPin";
+ static String textOldTransactionPin = "textOldTransactionPin";
+ static String textNotificationDetails = "textNotificationDetails";
+ static String textNotificationDetailsContent = "textNotificationDetailsContent";
+ static String textError = "textError";
+ static String textDescription = "textDescription";
+ static String textInform = "textInform";
+ static String textConfirmTransaction = "textConfirmTransaction";
+ static String textHowdoyouwanttopay = "textHowdoyouwanttopay";
+ static String textDebitCard = "textDebitCard";
+ static String textDebitCardContent = "textDebitCardContent";
+ static String textBankTransfer = "textBankTransfer";
+ static String textGeneralLedger = "textGeneralLedger";
+ static String transAddMoney = "transAddMoney";
+ static String textGLCode = "textGLCode";
+ static String textFaqs = "textFaqs";
+ static String textHowCanIHelpYou = "textHowCanIHelpYou";
+ static String textExploreAllArticles = "textExploreAllArticles";
+ static String textFirstName = "textFirstName";
+ static String textLastName = "textLastName";
+
+
+
+}
\ No newline at end of file
diff --git a/lib/app/core/constants/url_constants.dart b/lib/app/core/constants/url_constants.dart
new file mode 100644
index 0000000..29aa807
--- /dev/null
+++ b/lib/app/core/constants/url_constants.dart
@@ -0,0 +1,100 @@
+import 'package:uco_mobile_poc/app/core/utils/url_encryption.dart';
+
+class UrlContants {
+ static const baseUrl = "http://192.168.0.250:8888";
+ // FMFI
+ // static const baseUrl = "https://uco.mfsys.ca"; // FMFI
+ // public interface SecurityURI {
+ // String REGISTER_USER = "/security/auth/user/register";
+ // String LOGIN = "/security/auth/user/authenticate";
+ // String REFRESH_TOKEN = "/security/auth/refresh-token";
+ // String SIGNUP_OTP = "/security/auth/signup-otp";
+ // String VERIFY_SINGUP_OTP = "/security/auth/verifysignup-otp";
+ // String CHANGE_PASSWORD = "/security/user/changePassword";
+ // String RESET_PASSWORD = "/security/user/resetPassword";
+ // String GENERATE_INTERNAL_TOKEN = "/security/auth/generateInternalToken";
+ // }
+ /// Encrypted Url constant....
+ // static final UrlEncryption encryption = UrlEncryption();
+ // static final String encryptedUrl = encryption.encryptData('https://uco.mfsys.ca');
+ // static final String baseUrl ='';
+
+ static final REFRESH_TOKEN = "$baseUrl/refreshtoken";
+ static final LOGIN = "$baseUrl/security/auth/user/authenticate";
+ static final LOGIN_OTP = "$baseUrl/security/auth/verifylogin-otp";
+ static final RESEND_OTP = "$baseUrl/customer/login/otp-send";
+ static final REGISTER = "$baseUrl/customer/register";
+ static final VERIFY_ID = "$REGISTER/checkid";
+ static final VERIFY_ACCOUNT_NO = "$REGISTER/checkaccountno";
+ static final PIN_VERIFY = "$REGISTER/pin-verify";
+ static final SET_PASSWORD = "$baseUrl/customer/set-password";
+ static final ACCOUNT_DETAILS = "$baseUrl/uco/depositAccounts";
+ static final ACCOUNT_INQUIRY = "$baseUrl/uco/accountInquiry";
+
+ static final EXCHANGE_RATE = "$baseUrl/uco/fetchExchangeRate";
+
+ static final FETCH_PAYMENT_PURPOSE = "$baseUrl/getPurposes";
+ static final LOAN_ACCOUNT_DETAILS = "$baseUrl/account/indvdetails";
+ static final ACCOUNT_TRANSACTIONS = "$baseUrl/uco/accountStatement";
+ static final LOAN_ACCOUNT_TRANSACTIONS = "$baseUrl/account/loan/history";
+
+ static final BENEFICIARY_ACCOUNTS = "$baseUrl/beneficiary";
+ static final ACTIVITY_DETAILS = "$baseUrl/account/activity";
+ static final SEND_TRANSACTION_STEP1 = "$baseUrl/uco/sendDrTranOtpAndVerifyTranPin";
+ static final SEND_TRANSACTION_STEP2 = "$baseUrl/uco/submitDrTransaction";
+ static final UPLOAD_USER_PROFILE_PICTURE = "$baseUrl/uco/updateCustomerProfile";
+
+ static final CREATE_TRANSACTION_PIN_OTP = "$baseUrl/uco/createTransactionPin";
+ static final CREATE_TRANSACTION_PIN = "$baseUrl/uco/verifyTransactionPin";
+ static final CHANGE_TRANSACTION_PIN = "$baseUrl/uco/changeTransactionPin";
+ static final BENEFICIARY_PIN = "$baseUrl/beneficiary";
+ static final GENERATE_REPORTS = "$baseUrl/uco/generateReport";
+ static final DELETE_BENEFICIARYT = "$baseUrl/beneficiary";
+
+ static final CHANGE_PASSWORD_SEND_OTP = "$baseUrl/security/user/changePassword";
+ static final CHANGE_PASSWORD = "$baseUrl/customer/change-password";
+
+ static final FORGET_PASSWORD_STEP_1 = "$baseUrl/customer/forgetPassword/userid";
+ static final FORGET_PASSWORD_STEP_2 = "$baseUrl/customer/forgetpassword";
+ static final FORGET_PASSWORD_STEP_3 = "$baseUrl/customer/register/otp-resend";
+ static final FORGET_PASSWORD_STEP_4 = "$baseUrl/customer/updatepassword";
+
+ static final SIGNUP_STEP_1 = "$baseUrl/security/auth/user/register";
+ static final SIGNUP_STEP_2 = "$baseUrl/security/auth/verifysignup-otp";
+ static final SIGNUP_STEP_3 = "$baseUrl/uco/auth/user/authenticate/onboardCustomer";
+ static final SIGNUP_STEP_4 = "$baseUrl/customer/register/pin-verify";
+ static final SIGNUP_STEP_4_RESEND_OTP = "$baseUrl/customer/register/pin-resend";
+ static final SIGNUP_STEP_5 = "$baseUrl/customer/set-password";
+ static final SEND_FEED_BACK = "$baseUrl/send-email";
+ static final fetchPendingCredittransaction = "$baseUrl/uco/fetchPendingCredittransaction";
+ static final ACCEPT_RECEIVE_TRANSACTION = "$baseUrl/uco/submitCrTransaction";
+ static final REVERSE_TRANSACTION = "$baseUrl/uco/reverseTransaction";
+
+ static final FETCH_ACCOUNT_STATEMENT = "$baseUrl/uco/fetchDepositAccountStatement";
+ static final FETCH_USER_ACTIVITY = "$baseUrl/uco/account/activity/";
+
+ static final fetchUcoDepositProducts = "$baseUrl/uco/auth/user/authenticate/onboardCustomer/fetchUcoDepositProducts";
+
+ static final FETCH_DEPOSIT_PRODUCTS = "$baseUrl/uco/deposit/fetchUcoDepositProducts";
+ static final FETCH_GLS_ACCOUNTS = "$baseUrl/uco/deposit/fetchUcoGls";
+
+ static final SEND_ADD_MONEY_OTP = SEND_TRANSACTION_STEP1;
+ static final SEND_ADD_MONEY_TRANSACTION = "$baseUrl/uco/submitGLAccontAddMoneyTranasction";
+
+ static final evaluateCurrency = "$baseUrl/uco/getEvaluatedCurrency";
+ static final ADD_NEW_ACCOUNT = "$baseUrl/uco/createUcoAccount";
+
+
+
+ static String resendOtp = "$baseUrl/security/auth/resend-otp";
+
+
+ static String resendOtpUSend = "$baseUrl/uco/resendDrTranOtp";
+
+ static String resendTransOtp = "$baseUrl/uco/changeTransactionPin";
+ static String createPinOtp = "$baseUrl/uco/createTransactionPin";
+ static final ADD_NEW_BENEIFCIARY = "$baseUrl/uco/addBeneficary";
+ static final DELETE_BENEFICIARY = "$baseUrl/uco/deleteBeneficary";
+ static final FETCH_ALL_BENEFICIARY = "$baseUrl/uco/getBeneficary";
+
+}
\ No newline at end of file
diff --git a/lib/app/core/constants/widget_types.dart b/lib/app/core/constants/widget_types.dart
new file mode 100644
index 0000000..f1ea2c9
--- /dev/null
+++ b/lib/app/core/constants/widget_types.dart
@@ -0,0 +1,4 @@
+class WidgetTypes {
+ static const CUSTOM_EDIT_TEXT = "customEditText";
+ static const CUSTOM_OTP_FIELD = "customOtpField";
+}
diff --git a/lib/app/core/data/data_source_auth/remote_data_source/app_remote_data_source.dart b/lib/app/core/data/data_source_auth/remote_data_source/app_remote_data_source.dart
new file mode 100644
index 0000000..18015cc
--- /dev/null
+++ b/lib/app/core/data/data_source_auth/remote_data_source/app_remote_data_source.dart
@@ -0,0 +1,706 @@
+
+
+import '../../../../models/AddNewAccountRequestModel.dart';
+import '../../../../models/AuthenticationRequest.dart';
+import '../../../../models/BeneficiaryAccountModel.dart';
+import '../../../../models/ChangePasswordRequest.dart';
+import '../../../../models/ChangeTransactionPinRequest.dart';
+import '../../../../models/CreateTransactionPinOTPRequest.dart';
+import '../../../../models/CreateTransactionPinRequest.dart';
+import '../../../../models/GLACCAddMoneyRequestModel.dart';
+import '../../../../models/GenerateReportRequestModel.dart';
+import '../../../../models/RegisterRequest.dart';
+import '../../../../models/SignupOtpRequest.dart';
+import '../../../../models/SignupStep3RequestModel.dart';
+import '../../../../models/TransactionPinRequestModel.dart';
+import '../../../../models/TransactionSubmitRequestModel.dart';
+import '../../../../models/VerifyLoginOtpRequest.dart';
+import '../../../../models/accept_receive_transaction.dart';
+import '../../../../models/chanange_password_params.dart';
+import '../../../../models/resen_ot_chanange_trans_pin.dart';
+import '../../../../models/resend_ot_login_model.dart';
+import '../../../../models/resend_otp_usend.dart';
+import '../../../../models/upload_user_profile_model.dart';
+import '../../../config/requset_attr.dart';
+import '../../../config/server_request.dart';
+import '../../../config/server_response.dart';
+import '../../../constants/app_contants.dart';
+import '../../../constants/url_constants.dart';
+import '../../../enums/http_methods.dart';
+import '../../../utils/SessionCache.dart';
+
+class AppRemoteDataSource {
+ Future fetchAccountDetails() {
+ Map queryParams = {};
+ queryParams["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ queryParams["pctCstycode"] = SessionCache.instance.userInfo.pctCstycode;
+ queryParams["cmpCustcode"] = SessionCache.instance.userInfo.cmpCustcode;
+
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.FETCH_ACCOUNT_DETAILS;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.ACCOUNT_DETAILS, HttpMethod.GET, {}, headers, queryParams));
+ }
+
+ Future sendAddMoneyOtp(TransactionPinRequestModel transactionPinRequestModel) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.SEND_TRANSACTION_STEP_1;
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.SEND_ADD_MONEY_OTP, HttpMethod.POST, transactionPinRequestModel.toMap(), headers));
+ }
+
+ Future sendTransactionStep1(TransactionPinRequestModel transactionPinRequestModel) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.SEND_TRANSACTION_STEP_1;
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.SEND_TRANSACTION_STEP1, HttpMethod.POST, transactionPinRequestModel.toMap(), headers));
+ }
+
+ Future sendTransactionStep2(TransactionSubmitRequestModel transactionSubmitRequestModel) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.SEND_TRANSACTION_STEP_2;
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.SEND_TRANSACTION_STEP2, HttpMethod.POST, transactionSubmitRequestModel.toMap(), headers));
+ }
+
+ Future sendAddMoneyTransaction(GLACCAddMoneyRequestModel transactionSubmitRequestModel) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.SEND_TRANSACTION_STEP_2;
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.SEND_ADD_MONEY_TRANSACTION, HttpMethod.POST, transactionSubmitRequestModel.toMap(), headers));
+ }
+
+ Future getLoginOTP(AuthenticationRequest requestModel) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.GET_LOGIN_OTP;
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.LOGIN, HttpMethod.POST, requestModel.toMap()));
+ }
+
+// Future reSendOTP(ReSendOTPModel requestModel) {
+// return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.LOGIN_OTP, HttpMethod.POST, requestModel.toJson()));
+// }
+
+ Future validateLoginPin(VerifyLoginOtpRequest requestBody) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.VALIDATE_LOGIN_PIN;
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.LOGIN_OTP, HttpMethod.POST, requestBody.toMap()));
+ }
+
+ ///Fetch Account Transactions
+ Future fetchDepositAccountTransactions(String accountNumber, String fromDate, String toDate) async {
+ Map queryParams = {};
+ queryParams["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ queryParams["mbmBkmsnumber"] = accountNumber;
+ queryParams["sgtGntrvaluedatefrom"] = fromDate;
+ queryParams["sgtGntrvaluedateto"] = toDate;
+
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.FETCH_DEPOSITE_ACCOUNT_TRANSACTIONS;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.ACCOUNT_TRANSACTIONS, HttpMethod.GET, {}, headers, queryParams, {}));
+ }
+
+
+ Future addNewBeneficiary(BeneficiaryAccountModel beneficiaryModel) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.ADD_NEW_BENEFICIARY;
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.ADD_NEW_BENEIFCIARY, HttpMethod.POST, beneficiaryModel.toMap(), headers));
+ }
+
+
+// Future fetchLoanAccountDetails(String accountNumber) async {
+// Map queryParams = {};
+// queryParams["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+// queryParams["mbmBkmsnumber"] = accountNumber;
+//
+// Map headers = {};
+// headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+// headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+// headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+//
+// return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.LOAN_ACCOUNT_DETAILS, HttpMethod.GET, {}, headers, queryParams, {}));
+// }
+
+// // http: //192.168.1.20:8080/MCONNECT/account/indvdetails?porOrgacode=0004&mbmBkmsnumber=0001325
+
+// Future fetchLoanAccountTransactions(String accountNumber) async {
+// Map queryParams = {};
+// queryParams["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+// queryParams["mbmBkmsnumber"] = accountNumber;
+//
+// Map headers = {};
+// headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+// headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+// headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+//
+// return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.LOAN_ACCOUNT_TRANSACTIONS, HttpMethod.GET, {}, headers, queryParams, {}));
+// }
+
+ /// Fetch User Activity Data
+ Future fetchUserActivity(String fromDate, String toDate) async {
+ Map paramParameters = {};
+ paramParameters["organization"] = SessionCache.instance.userInfo.porOrgacode;
+ paramParameters["customer"] = SessionCache.instance.userInfo.cmpCustcode;
+ // paramParameters["customertype"] = "I";
+ paramParameters["fromdate"] = fromDate;
+ paramParameters["todate"] = toDate;
+
+ // "uco/account/activity/organization/{porOrgacode}/customer/{cmpCustcode}/fromdate/{fdate}/todate/{tdate}";
+ // /organization/0006/customer/I003120/fromdate/2024-01-01/todate/2024-04-29
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = "Mobile";
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.FETCH_USER_ACTIVITY;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(buildPathParameters(UrlContants.FETCH_USER_ACTIVITY, paramParameters), HttpMethod.GET, {}, headers, {}, {}));
+ }
+
+
+ /// Method for handling Parameter
+ String buildPathParameters(String basePath, Map parameters) {
+ parameters.forEach((key, value) {
+ basePath += "/$key/$value";
+ });
+ return basePath;
+ }
+
+
+// Future generatePinForBeneficiaryAccount(BeneficiaryPinRequestModel beneficiaryPinRequestModel) {
+// Map paramParameters = {};
+// paramParameters["channel"] = SessionCache.instance.userInfo.channelCode;
+
+// Map headers = {};
+// headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+// headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+// headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+// headers["Devicename"] = "Mobile";
+// return ServerRequest.request(RequestAttr.withParamsAndBody(buildPathParameters(UrlContants.BENEFICIARY_PIN, paramParameters), HttpMethod.POST, beneficiaryPinRequestModel.toMap(), headers));
+// }
+
+ Future fetchExchangeRate() {
+ Map queryParams = {};
+ queryParams["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.FETCH_EXCHANGE_RATE;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.EXCHANGE_RATE, HttpMethod.GET, {}, headers, queryParams));
+ }
+
+ Future fetchAccountInquiry(String type, String value) {
+ Map queryParams = {};
+ queryParams["acntTypeCode"] = type;
+ queryParams["acntTypeValue"] = value;
+ queryParams["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ queryParams["channelCode"] = SessionCache.instance.userInfo.channelCode;
+
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.FETCH_ACCOUNT_IQUIRY;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.ACCOUNT_INQUIRY, HttpMethod.GET, {}, headers, queryParams));
+ }
+
+
+
+ Future createTransactionPinOTP(CreateTransactionPinOTPRequest requestModel) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.CREATE_TRANSACTION_PIN;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.CREATE_TRANSACTION_PIN_OTP, HttpMethod.POST, requestModel.toMap(), headers));
+ }
+
+
+ Future createTransactionPin(CreateTransactionPinRequest requestModel) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.CREATE_TRANSACTION_PIN;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.CREATE_TRANSACTION_PIN, HttpMethod.POST, requestModel.toMap(), headers));
+ }
+
+ Future changeTransactionPin(ChangeTransactionPinRequest requestModel) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.CHANGE_TRANSACTION_PIN;
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.CHANGE_TRANSACTION_PIN, HttpMethod.PUT, requestModel.toMap(), headers));
+ }
+
+
+ Future generateReports(GenerateReportRequestModel requestModel) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.GENERATE_REPORTS;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.GENERATE_REPORTS, HttpMethod.POST, requestModel.toMap(), headers));
+ }
+
+ Future fetchGlsAllAccounts() {
+ Map queryParams = {};
+ queryParams["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["glsTransaction"] = AppConstants.FETCH_GLS_ACCOUNTS;
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.FETCH_GLS_ACCOUNTS, HttpMethod.GET, {}, headers, queryParams));
+ }
+
+ Future uploadUserProfilePicture(UploadUserProfileModel uploadUserProfileModel) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.UPLOAD_USER_PROFILE_PICTURE;
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.UPLOAD_USER_PROFILE_PICTURE, HttpMethod.POST, uploadUserProfileModel.toMap(), headers));
+ }
+
+// Future deleteBeneficiary(String accountNumber) {
+// Map paramParameters = {};
+// paramParameters["organization"] = SessionCache.instance.userInfo.porOrgacode;
+// paramParameters["customer"] = SessionCache.instance.userInfo.cmpCustcode;
+// paramParameters["customertype"] = "I";
+// paramParameters["account"] = accountNumber;
+//
+// Map headers = {};
+// headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+// headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+// headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+// headers["Devicename"] = "Mobile";
+// return ServerRequest.request(RequestAttr.withParamsAndBody(buildPathParameters(UrlContants.DELETE_BENEFICIARYT, paramParameters), HttpMethod.DELETE, {}, headers, {}, {}));
+// }
+
+// ------------------ Forget password ----------------
+
+// Future forgetPasswordStep1(ForgetPasswordStep1RequestModel forgetPasswordStep1RequestModel) {
+// return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.FORGET_PASSWORD_STEP_1, HttpMethod.POST, forgetPasswordStep1RequestModel.toMap(), {}));
+// }
+
+// Future forgetPasswordStep2(ForgetPasswordStep2RequestModel forgetPasswordStep2RequestModel) {
+// return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.FORGET_PASSWORD_STEP_2, HttpMethod.POST, forgetPasswordStep2RequestModel.toMap(), {}));
+// }
+
+// Future forgetPasswordStep3(ForgetPasswordStep3RequestModel forgetPasswordStep3RequestModel) {
+// return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.FORGET_PASSWORD_STEP_3, HttpMethod.POST, forgetPasswordStep3RequestModel.toMap(), {}));
+// }
+
+// Future forgetPasswordStep4(ForgetPasswordStep4RequestModel forgetPasswordStep4RequestModel) {
+// return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.FORGET_PASSWORD_STEP_4, HttpMethod.POST, forgetPasswordStep4RequestModel.toMap(), {}));
+// }
+
+// sign up process
+ Future signupStep1(RegisterRequest registerRequest) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.SIGNUP_STEP_1;
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.SIGNUP_STEP_1, HttpMethod.POST, registerRequest.toMap(), {}));
+ }
+
+ Future signupStep2(SignupOtpRequest signupOtpRequest) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.SIGUP_STEP_2;
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.SIGNUP_STEP_2, HttpMethod.POST, signupOtpRequest.toMap(), {}));
+ }
+
+
+ Future signupStep3(SignupStep3RequestModel signupStep3RequestModel) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.SIGUP_STEP_3;
+
+ var header = {'Content-Type': 'application/json'};
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.SIGNUP_STEP_3, HttpMethod.POST, signupStep3RequestModel.toMap(), headers));
+ }
+
+
+// Future signupStep4(SignUpStep4RequestModel signUpStep4RequestModel) {
+// return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.SIGNUP_STEP_4, HttpMethod.POST, signUpStep4RequestModel.toMap(), {}));
+// }
+
+// Future signupStep4ResendOtp(SignUpStep4ResendOtpRequestModel signUpStep4ResendOtpRequestModel) {
+// return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.SIGNUP_STEP_4_RESEND_OTP, HttpMethod.POST, signUpStep4ResendOtpRequestModel.toMap(), {}));
+// }
+
+// Future signupStep5(SignUpStep5RequestModel signUpStep5RequestModel) {
+// return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.SIGNUP_STEP_5, HttpMethod.POST, signUpStep5RequestModel.toMap(), {}));
+// }
+
+ Future changePasswordSendOTP(ChangePasswordRequest changePasswordRequest) {
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.CHANGE_PASSWORD_SEND_OTP;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.CHANGE_PASSWORD_SEND_OTP, HttpMethod.POST, changePasswordRequest.toMap(), headers));
+ }
+
+ Future changePassword(ChangePasswordParams changePasswordParams) {
+ Map headers = {};
+
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.CHANGE_PASSWORD;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.CHANGE_PASSWORD_SEND_OTP, HttpMethod.PATCH, changePasswordParams.toJson(), headers));
+ }
+
+ Future getPendingTransition(String accountNumber) {
+ Map headers = {};
+
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.GET_PENDING_TRANSITION;
+
+ Map queryParams = {};
+ queryParams["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ queryParams["mbmBkmsnumber"] = accountNumber;
+
+ return ServerRequest.request(RequestAttr.withHeaderAndParams(UrlContants.fetchPendingCredittransaction, HttpMethod.GET, headers, queryParams));
+ }
+
+
+ Future acceptReceiveTransition(AcceptReceiveTransactionModel requestModel) {
+ Map headers = {};
+
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.ACCEPT_RECEIVE_TRANSACTION;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.ACCEPT_RECEIVE_TRANSACTION, HttpMethod.POST, requestModel.toMap(), headers));
+ }
+
+ Future reverseTransition(String nodeId, String sgtGntrnumber) {
+ Map headers = {};
+
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.REVERSE_TRANSACTION;
+
+ Map queryParams = {};
+ queryParams["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ queryParams["nodeId"] = nodeId;
+ queryParams["sgtGntrnumber"] = sgtGntrnumber;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.REVERSE_TRANSACTION, HttpMethod.POST, {},headers, queryParams));
+ }
+
+ Future fetchAccountStatement(String accountNumber) {
+ Map headers = {};
+
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.FETCH_ACCOUNT_STATEMENT;
+
+ Map queryParams = {};
+ queryParams["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ queryParams["mbmBkmsnumber"] = accountNumber;
+
+ return ServerRequest.request(RequestAttr.withHeaderAndParams(UrlContants.FETCH_ACCOUNT_STATEMENT, HttpMethod.GET, headers, queryParams));
+ }
+
+ Future getCurrencyList() {
+ Map queryParams = {};
+
+ queryParams["porOrgacode"] = "0005";
+
+ return ServerRequest.request(
+ RequestAttr.withHeaderAndParams(UrlContants.fetchUcoDepositProducts, HttpMethod.GET, {}, queryParams),
+ );
+ }
+
+ Future getConvertedCurrency(String baseCurrency, String targetCurrency, String sgtGntramtfc) {
+ Map headers = {};
+
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.FETCH_ACCOUNT_STATEMENT;
+
+ Map queryParams = {};
+ queryParams["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ queryParams["baseCurrency"] = baseCurrency;
+ queryParams["targetCurrency"] = targetCurrency;
+ queryParams["sgtGntramtfc"] = sgtGntramtfc;
+
+ return ServerRequest.request(RequestAttr.withHeaderAndParams(UrlContants.evaluateCurrency, HttpMethod.GET, headers, queryParams));
+ }
+
+ Future addNewAccount(AddNewAccountRequestModel addNewAccountModel) {
+ Map headers = {};
+
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["addNewAccount"] = AppConstants.ADD_NEW_ACCOUNT;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.ADD_NEW_ACCOUNT, HttpMethod.POST, addNewAccountModel.toMap(), headers));
+ }
+
+ Future resentOtpLoginSignUp(ResendOtpLoginModel model) {
+ Map headers = {};
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.resendOtp, HttpMethod.POST, model.toMap(), headers));
+ }
+
+ Future resendOtpUsend(ResendOtpUsendModel model) {
+ Map headers = {};
+
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.resendOtpUSend, HttpMethod.POST, model.toMap(), headers));
+ }
+
+ Future resendOtpTransPin(
+ ResendOtpChangeTransPin resendOtpChangeTransPin,
+ ) {
+
+ Map headers = {};
+
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.resendTransOtp, HttpMethod.PUT, resendOtpChangeTransPin.toMap(), headers));
+ }
+
+ Future createPinResndOtp(CreateTransactionPinOTPRequest createTransactionPinRequest) {
+ Map headers = {};
+
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(
+ UrlContants.createPinOtp,
+ HttpMethod.PUT,
+ createTransactionPinRequest.toMap(),
+ headers,
+ ));
+ }
+
+ Future fetchAllBeneficiary(String porOrgacode, String email) {
+ Map queryParams = {};
+ queryParams["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ queryParams["email"] = SessionCache.instance.userInfo.cmpUserId;
+
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.FETCH_ALL_BENEFICIARY;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.FETCH_ALL_BENEFICIARY, HttpMethod.GET, {}, headers, queryParams));
+ }
+
+ Future deleteBeneficiary(String mbmBkmsnumberRef, String email, String porOrgacode) {
+ Map queryParams = {};
+ queryParams["mbmBkmsnumberRef"] = mbmBkmsnumberRef;
+ queryParams["email"] = SessionCache.instance.userInfo.cmpUserId;
+ queryParams["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+
+ Map headers = {};
+ headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+ headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+ headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["Devicename"] = AppConstants.DEVICE_NAME;
+ headers["porOrgacode"] = SessionCache.instance.userInfo.porOrgacode;
+ headers["email"] = SessionCache.instance.userInfo.cmpUserId;
+ headers["channalCode"] = SessionCache.instance.userInfo.channelCode;
+ headers["userActivity"] = AppConstants.DELETE_BENEFICIARY;
+
+ return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.DELETE_BENEFICIARY, HttpMethod.DELETE, {}, headers, queryParams));
+ }
+
+// Future loginResendOtp(LoginResendOtpRequestModel request) {
+// return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.RESEND_OTP, HttpMethod.POST, request.toMap(), {}));
+// }
+
+// Future fetchPaymentPurposes() {
+// Map queryParams = {};
+//
+// Map headers = {};
+// headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+// headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+// headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+// headers["Devicename"] = "Mobile";
+//
+// return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.FETCH_PAYMENT_PURPOSE, HttpMethod.GET, {}, headers, queryParams));
+// }
+
+// Future sendFeedBack(SendFeedBackRequestModel sendFeedBackRequestModel) {
+// Map headers = {};
+// headers["Authorization"] = "Bearer ${SessionCache.instance.userInfo.jwtToken}";
+// headers["Channelcode"] = SessionCache.instance.userInfo.channelCode;
+// headers["Cmpuserid"] = SessionCache.instance.userInfo.cmpUserId;
+// headers["Devicename"] = "Mobile";
+// return ServerRequest.request(RequestAttr.withParamsAndBody(UrlContants.SEND_FEED_BACK, HttpMethod.POST, sendFeedBackRequestModel.toMap(), headers));
+// }
+
+}
diff --git a/lib/app/core/data/repositories/app_repositories.dart b/lib/app/core/data/repositories/app_repositories.dart
new file mode 100644
index 0000000..70015f4
--- /dev/null
+++ b/lib/app/core/data/repositories/app_repositories.dart
@@ -0,0 +1,271 @@
+
+
+import '../../../models/AddNewAccountRequestModel.dart';
+import '../../../models/AuthenticationRequest.dart';
+import '../../../models/BeneficiaryAccountModel.dart';
+import '../../../models/ChangeTransactionPinRequest.dart';
+import '../../../models/CreateTransactionPinOTPRequest.dart';
+import '../../../models/CreateTransactionPinRequest.dart';
+import '../../../models/GLACCAddMoneyRequestModel.dart';
+import '../../../models/RegisterRequest.dart';
+import '../../../models/SignupOtpRequest.dart';
+import '../../../models/SignupStep3RequestModel.dart';
+import '../../../models/TransactionPinRequestModel.dart';
+import '../../../models/TransactionSubmitRequestModel.dart';
+import '../../../models/VerifyLoginOtpRequest.dart';
+import '../../../models/accept_receive_transaction.dart';
+import '../../../models/chanange_password_params.dart';
+import '../../../models/resen_ot_chanange_trans_pin.dart';
+import '../../../models/resend_ot_login_model.dart';
+import '../../../models/resend_otp_usend.dart';
+import '../../../models/upload_user_profile_model.dart';
+import '../../config/server_response.dart';
+import '../data_source_auth/remote_data_source/app_remote_data_source.dart';
+
+abstract class AppRepositories {
+ Future login(AuthenticationRequest request);
+
+ Future validateLoginPin(VerifyLoginOtpRequest request);
+
+ Future fetchAccountDetails();
+
+ Future fetchGlsAccounts();
+
+ Future fetchAccountInquiry(String type, String value);
+
+ Future fetchDepositAccountTransactions(String accountNumber, String fromDate, String toDate);
+
+ Future fetchExchangeRate();
+
+ Future createTransactionPinOTP(CreateTransactionPinOTPRequest requestModel);
+
+ Future createTransactionPin(CreateTransactionPinRequest requestModel);
+
+ Future uploadUserProfilePicture(UploadUserProfileModel requestModel);
+
+ Future changeTransactionPin(ChangeTransactionPinRequest requestModel);
+
+ Future sendTransactionStep1(TransactionPinRequestModel transactionPinRequestModel);
+
+ Future sendAddMoneyOtp(TransactionPinRequestModel transactionPinRequestModel);
+
+ Future sendTransactionStep2(TransactionSubmitRequestModel transactionSubmitRequestModel);
+
+ Future sendAddMoneyTransaction(GLACCAddMoneyRequestModel transactionSubmitRequestModel);
+
+ Future acceptReceiveTransaction(AcceptReceiveTransactionModel requestModel);
+
+ Future reverseTransaction(String nodeId, String sgtGntrnumber);
+
+ Future addNewBeneficiary(BeneficiaryAccountModel requestModel);
+
+ Future fetchAllBeneficiary(String porOrgacode, String email);
+
+ Future deleteBeneficiary(String mbmBkmsnumberRef, String email, String porOrgacode);
+
+ Future signupStep1(RegisterRequest registerRequest);
+
+ Future signupStep2(SignupOtpRequest signupOtpRequest);
+
+ Future signupStep3(SignupStep3RequestModel signupStep3RequestModel);
+
+ Future changePassword(ChangePasswordParams changePasswordParams);
+
+ Future getPendingTransition(String accountNumber);
+
+ Future fetchAccountStatement(String accountNumber);
+
+ Future fetchUserActivity(String fromDate, String toDate);
+
+ Future resentOtpLoginSignUp(ResendOtpLoginModel model);
+
+ Future getCurrencyList();
+
+ Future addNewAccount(AddNewAccountRequestModel addNewAccountRequest);
+
+ Future resendOtpUsend(ResendOtpUsendModel resendOtpUsendModel);
+
+ Future resendOtpTransPin(ResendOtpChangeTransPin resendOtpChangeTransPin);
+
+ Future createPinResndOtp(CreateTransactionPinOTPRequest createTransactionPinRequest);
+
+ Future getConvertedCurrency(String baseCurrency, String targetCurrency, String sgtGntramtfc);
+}
+
+class AppRepositoriesImpl implements AppRepositories {
+ AppRemoteDataSource remoteDataSource;
+
+ AppRepositoriesImpl({required this.remoteDataSource});
+
+ @override
+ Future login(AuthenticationRequest requestModel) {
+ return remoteDataSource.getLoginOTP(requestModel);
+ }
+
+ @override
+ Future fetchAccountDetails() {
+ return remoteDataSource.fetchAccountDetails();
+ }
+
+ @override
+ Future fetchAccountInquiry(String type, String value) {
+ return remoteDataSource.fetchAccountInquiry(type, value);
+ }
+
+ ///
+ @override
+ Future validateLoginPin(VerifyLoginOtpRequest requestModel) {
+ return remoteDataSource.validateLoginPin(requestModel);
+ }
+
+ @override
+ Future fetchDepositAccountTransactions(String accountNumber, String fromDate, String toDate) {
+ return remoteDataSource.fetchDepositAccountTransactions(accountNumber, fromDate, toDate);
+ }
+
+ @override
+ Future fetchExchangeRate() {
+ return remoteDataSource.fetchExchangeRate();
+ }
+
+ @override
+ Future sendTransactionStep1(TransactionPinRequestModel transactionPinRequestModel) {
+ return remoteDataSource.sendTransactionStep1(transactionPinRequestModel);
+ }
+
+ //
+ @override
+ Future sendTransactionStep2(TransactionSubmitRequestModel transactionSubmitRequestModel) {
+ return remoteDataSource.sendTransactionStep2(transactionSubmitRequestModel);
+ }
+
+ @override
+ Future sendAddMoneyOtp(TransactionPinRequestModel transactionPinRequestModel) {
+ return remoteDataSource.sendAddMoneyOtp(transactionPinRequestModel);
+ }
+
+ @override
+ Future sendAddMoneyTransaction(GLACCAddMoneyRequestModel transactionSubmitRequestModel) {
+ return remoteDataSource.sendAddMoneyTransaction(transactionSubmitRequestModel);
+ }
+
+ @override
+ Future signupStep1(RegisterRequest registerRequest) {
+ return remoteDataSource.signupStep1(registerRequest);
+ }
+
+ @override
+ Future signupStep2(SignupOtpRequest signupOtpRequest) {
+ return remoteDataSource.signupStep2(signupOtpRequest);
+ }
+
+ @override
+ Future signupStep3(SignupStep3RequestModel signupStep3RequestModel) {
+ return remoteDataSource.signupStep3(signupStep3RequestModel);
+ }
+
+ @override
+ Future changePassword(ChangePasswordParams changePasswordParams) {
+ return remoteDataSource.changePassword(changePasswordParams);
+ }
+
+ @override
+ Future getPendingTransition(String accountNumber) {
+ return remoteDataSource.getPendingTransition(accountNumber);
+ }
+
+ @override
+ Future createTransactionPinOTP(CreateTransactionPinOTPRequest requestModel) {
+ return remoteDataSource.createTransactionPinOTP(requestModel);
+ }
+
+ @override
+ Future createTransactionPin(CreateTransactionPinRequest requestModel) {
+ return remoteDataSource.createTransactionPin(requestModel);
+ }
+
+ @override
+ Future changeTransactionPin(ChangeTransactionPinRequest requestModel) {
+ return remoteDataSource.changeTransactionPin(requestModel);
+ }
+
+ @override
+ Future acceptReceiveTransaction(AcceptReceiveTransactionModel requestModel) {
+ return remoteDataSource.acceptReceiveTransition(requestModel);
+ }
+
+ @override
+ Future fetchAccountStatement(String accountNumber) {
+ return remoteDataSource.fetchAccountStatement(accountNumber);
+ }
+
+ @override
+ Future fetchUserActivity(String fromDate, String toDate) {
+ return remoteDataSource.fetchUserActivity(fromDate, toDate);
+ }
+
+ @override
+ Future getCurrencyList() {
+ return remoteDataSource.getCurrencyList();
+ }
+
+ @override
+ Future fetchGlsAccounts() {
+ return remoteDataSource.fetchGlsAllAccounts();
+ }
+
+ @override
+ Future getConvertedCurrency(String baseCurrency, String targetCurrency, String sgtGntramtfc) {
+ return remoteDataSource.getConvertedCurrency(baseCurrency, targetCurrency, sgtGntramtfc);
+ }
+
+ @override
+ Future addNewAccount(AddNewAccountRequestModel addNewAccountRequest) {
+ return remoteDataSource.addNewAccount(addNewAccountRequest);
+ }
+
+ @override
+ Future resentOtpLoginSignUp(ResendOtpLoginModel model) {
+ return remoteDataSource.resentOtpLoginSignUp(model);
+ }
+
+ @override
+ Future resendOtpUsend(ResendOtpUsendModel resendOtpUsendModel) {
+ return remoteDataSource.resendOtpUsend(resendOtpUsendModel);
+ }
+
+ @override
+ Future resendOtpTransPin(ResendOtpChangeTransPin resendOtpChangeTransPin) {
+ return remoteDataSource.resendOtpTransPin(resendOtpChangeTransPin);
+ }
+
+ @override
+ Future createPinResndOtp(CreateTransactionPinOTPRequest createTransactionPinRequest) {
+ return remoteDataSource.createPinResndOtp(createTransactionPinRequest);
+ }
+
+ @override
+ Future uploadUserProfilePicture(UploadUserProfileModel requestModel) {
+ return remoteDataSource.uploadUserProfilePicture(requestModel);
+ }
+
+ @override
+ Future reverseTransaction(String nodeId, String sgtGntrnumber) {
+ return remoteDataSource.reverseTransition(nodeId, sgtGntrnumber);
+ }
+
+ @override
+ Future addNewBeneficiary(BeneficiaryAccountModel requestModel) {
+ return remoteDataSource.addNewBeneficiary(requestModel);
+ }
+
+ @override
+ Future fetchAllBeneficiary(String porOrgacode, String email) {
+ return remoteDataSource.fetchAllBeneficiary(porOrgacode, email);
+ }
+
+ @override
+ Future deleteBeneficiary(String mbmBkmsnumberRef, String email, String porOrgacode) {
+ return remoteDataSource.deleteBeneficiary(mbmBkmsnumberRef, email, porOrgacode);
+ }
+}
diff --git a/lib/app/core/dialogs/custom_loading.dart b/lib/app/core/dialogs/custom_loading.dart
new file mode 100644
index 0000000..448a580
--- /dev/null
+++ b/lib/app/core/dialogs/custom_loading.dart
@@ -0,0 +1,162 @@
+import 'package:flutter/material.dart';
+import 'package:get/get.dart';
+import 'package:loader_overlay/loader_overlay.dart';
+
+import '../../res/app_colors.dart';
+import '../constants/app_assets.dart';
+
+
+class CustomLoading extends StatefulWidget {
+ const CustomLoading({Key? key, this.type = 0}) : super(key: key);
+
+ final int type;
+
+ @override
+ _CustomLoadingState createState() => _CustomLoadingState();
+}
+
+class _CustomLoadingState extends State with TickerProviderStateMixin {
+ late AnimationController _controller;
+
+ @override
+ void initState() {
+ _controller = AnimationController(
+ duration: const Duration(milliseconds: 800),
+ vsync: this,
+ );
+ _controller.forward();
+ _controller.addStatusListener((status) {
+ if (status == AnimationStatus.completed) {
+ _controller.reset();
+ _controller.forward();
+ }
+ });
+ super.initState();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return Visibility(visible: widget.type == 2, child: _buildLoadingTwo());
+ }
+
+ // Widget _buildLoadingOne() {
+ // return Stack(alignment: Alignment.center, children: [
+ // RotationTransition(
+ // alignment: Alignment.center,
+ // turns: _controller,
+ // child: Image.network(
+ // 'https://cdn.jsdelivr.net/gh/xdd666t/MyData@master/pic/flutter/blog/20211101174606.png',
+ // height: 110,
+ // width: 110,
+ // ),
+ // ),
+ // Image.network(
+ // 'https://cdn.jsdelivr.net/gh/xdd666t/MyData@master/pic/flutter/blog/20211101181404.png',
+ // height: 60,
+ // width: 60,
+ // ),
+ // ]);
+ // }
+
+ Widget _buildLoadingTwo() {
+ return Container(
+ padding: const EdgeInsets.all(30.0),
+ decoration: BoxDecoration(
+ color: AppColors.white,
+ border: Border.all(color: Colors.white),
+ borderRadius: BorderRadius.circular(20.0),
+ ),
+ child: RotationTransition(
+ alignment: Alignment.center,
+ turns: _controller,
+ child: Image(
+ image: const AssetImage(AppAssets.kprogresshud_spinner),
+ color: Colors.black.withOpacity(0.5),
+ height: 50,
+ width: 50,
+ ),
+ ),
+ );
+ }
+
+ // Widget _buildLoadingThree() {
+ // return Center(
+ // child: Container(
+ // height: 120,
+ // width: 180,
+ // decoration: BoxDecoration(
+ // color: Colors.white,
+ // borderRadius: BorderRadius.circular(15),
+ // ),
+ // alignment: Alignment.center,
+ // child: Column(mainAxisSize: MainAxisSize.min, children: [
+ // RotationTransition(
+ // alignment: Alignment.center,
+ // turns: _controller,
+ // child: Image.network(
+ // 'https://cdn.jsdelivr.net/gh/xdd666t/MyData@master/pic/flutter/blog/20211101163010.png',
+ // height: 50,
+ // width: 50,
+ // ),
+ // ),
+ // Container(
+ // margin: EdgeInsets.only(top: 20),
+ // child: Text(TranslationKeys.makeTranslation(TranslationKeys.textLoading)),
+ // ),
+ // ]),
+ // ),
+ // );
+ // }
+
+ @override
+ void dispose() {
+ _controller.dispose();
+ super.dispose();
+ }
+}
+
+showLoader() {
+ // Get.context!.loaderOverlay.show(
+ // widgetBuilder: (progress) => const Center(
+ // child: CustomLoading(
+ // type: 2,
+ // ),
+ // ),
+ // );
+
+ Get.context!.loaderOverlay.show(
+ widgetBuilder: (progress) => const Center(
+ child: Card(
+ color: Colors.white,
+ shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(12))),
+ child: Padding(
+ padding: EdgeInsets.symmetric(vertical: 5, horizontal: 10),
+ child: Column(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ // SizedBox(
+ // height: 15,
+ // ),
+ // const CupertinoActivityIndicator(
+ // radius: 25,
+ // ),
+ CustomLoading(type: 2),
+ //SizedBox(height: 15),
+ // Text(
+ // "Loading",
+ // style: Theme.of(Get.context!).textTheme.bodyMedium,
+ // ),
+ // const SizedBox(
+ // height: 15,
+ // ),
+ ],
+ ),
+ ),
+ ),
+ ),
+ );
+}
+
+hideLoader() {
+ Get.context!.loaderOverlay.hide();
+}
diff --git a/lib/app/core/enums/api_keys.dart b/lib/app/core/enums/api_keys.dart
new file mode 100644
index 0000000..e6e3e91
--- /dev/null
+++ b/lib/app/core/enums/api_keys.dart
@@ -0,0 +1,66 @@
+/*
+enum ApiKeys {
+ cmpUserId,
+ cmpCustpassword,
+ channelCode,
+ porOrgacode,
+ pctCstycode,
+ cmpIdennumber,
+ cmpUserIdType,
+ arguments,
+ cmpAccountno,
+ cmpCustcode,
+ phoneNo,
+ obpPincode,
+ newCustpassword
+}
+
+extension ApiKeysExtension on ApiKeys {
+ String get value {
+ switch (this) {
+ case ApiKeys.cmpUserId:
+ return 'cmpUserId';
+ case ApiKeys.cmpCustpassword:
+ return 'cmpCustpassword';
+ case ApiKeys.channelCode:
+ return 'channelCode';
+ case ApiKeys.porOrgacode:
+ return 'porOrgacode';
+ case ApiKeys.pctCstycode:
+ return 'pctCstycode';
+ case ApiKeys.cmpIdennumber:
+ return 'cmpIdennumber';
+ case ApiKeys.cmpUserIdType:
+ return 'cmpUserIdType';
+ case ApiKeys.arguments:
+ return 'arguments';
+ case ApiKeys.cmpAccountno:
+ return 'cmpAccountno';
+ case ApiKeys.cmpCustcode:
+ return 'cmpCustcode';
+ case ApiKeys.phoneNo:
+ return 'phoneNo';
+ case ApiKeys.obpPincode:
+ return 'obpPincode';
+ case ApiKeys.newCustpassword:
+ return 'newCustpassword';
+ }
+ }
+}
+*/
+
+// class ApiKeys {
+// static const String cmpUserId = 'cmpUserId';
+// static const String cmpCustpassword = 'cmpCustpassword';
+// static const String channelCode = 'channelCode';
+// static const String porOrgacode = 'porOrgacode';
+// static const String pctCstycode = 'pctCstycode';
+// static const String cmpIdennumber = 'cmpIdennumber';
+// static const String cmpUserIdType = 'cmpUserIdType';
+// static const String arguments = 'arguments';
+// static const String cmpAccountno = 'cmpAccountno';
+// static const String cmpCustcode = 'cmpCustcode';
+// static const String phoneNo = 'phoneNo';
+// static const String obpPincode = 'obpPincode';
+// static const String newCustpassword = 'newCustpassword';
+// }
diff --git a/lib/app/core/enums/countryCode.dart b/lib/app/core/enums/countryCode.dart
new file mode 100644
index 0000000..d7158de
--- /dev/null
+++ b/lib/app/core/enums/countryCode.dart
@@ -0,0 +1,7 @@
+enum CountryCode { US, SA }
+
+extension CountryCodeExtension on CountryCode {
+ String get getKey {
+ return ["US", "SA"][index];
+ }
+}
diff --git a/lib/app/core/enums/http_methods.dart b/lib/app/core/enums/http_methods.dart
new file mode 100644
index 0000000..9225320
--- /dev/null
+++ b/lib/app/core/enums/http_methods.dart
@@ -0,0 +1 @@
+enum HttpMethod { GET, POST, PUT, DELETE,PATCH }
diff --git a/lib/app/core/enums/languageCode.dart b/lib/app/core/enums/languageCode.dart
new file mode 100644
index 0000000..f6fddc6
--- /dev/null
+++ b/lib/app/core/enums/languageCode.dart
@@ -0,0 +1,7 @@
+enum LanguageCode { ENGLISH, ARABIC }
+
+extension LanguageCodeExtension on LanguageCode {
+ String get getKey {
+ return ["en", "ar"][index];
+ }
+}
diff --git a/lib/app/core/enums/request_constants.dart b/lib/app/core/enums/request_constants.dart
new file mode 100644
index 0000000..8244737
--- /dev/null
+++ b/lib/app/core/enums/request_constants.dart
@@ -0,0 +1,8 @@
+class RequestConstants {
+ // static const String porOrgacode = "0004"; // Genish
+ static const String porOrgacode = "0005"; // BEMO
+ static const String pctCstycode = "I";
+ static const String channelCode = "01";
+ static const String plcLocacode = "plcLocacode";
+ static const bool isOTPRequired = true;
+}
diff --git a/lib/app/core/enums/screen_type.dart b/lib/app/core/enums/screen_type.dart
new file mode 100644
index 0000000..7405884
--- /dev/null
+++ b/lib/app/core/enums/screen_type.dart
@@ -0,0 +1 @@
+enum FieldTypes { multiLevelFields, otpField, multipleField }
diff --git a/lib/app/core/extensions/build_context_ext.dart b/lib/app/core/extensions/build_context_ext.dart
new file mode 100644
index 0000000..ac04d82
--- /dev/null
+++ b/lib/app/core/extensions/build_context_ext.dart
@@ -0,0 +1,61 @@
+import 'package:flutter/material.dart';
+import 'package:get/get.dart';
+
+import '../utils/logs_utils.dart';
+
+extension BuildContextExt on BuildContext? {
+ //
+
+ showSnakBar({required String msg}) {
+ if (msg.isEmpty) {
+ dp("Mess age is empty", msg);
+ return;
+ }
+ ScaffoldMessenger.of(this!).showSnackBar(SnackBar(
+ content: Text(
+ msg,
+ style: Get.context?.textTheme.bodyMedium!.copyWith(
+ fontSize: 12,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ backgroundColor: Colors.white,
+ behavior: SnackBarBehavior.floating,
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(12),
+ ),
+ duration: const Duration(seconds: 4),
+ ));
+ }
+
+ showGeneralDialog(List? children, {bool isShowOverly = false, bool dissmiss = true}) {
+ showDialog(
+ context: this!,
+ barrierDismissible: dissmiss,
+ barrierColor: isShowOverly ? Get.context.themeData.colorScheme.secondary.withOpacity(0.4) : null,
+ builder: (context) {
+ return SimpleDialog(
+ alignment: Alignment.center,
+ backgroundColor: Get.context.themeData.colorScheme.secondary,
+ children: children,
+ );
+ },
+ );
+ }
+
+ Size get getSize => MediaQuery.of(this!).size;
+
+ double get getHeight => MediaQuery.of(this!).size.height;
+
+ double get getWidth => MediaQuery.of(this!).size.width;
+
+ TextTheme get textTheme => Theme.of(this!).textTheme;
+
+ ThemeData get themeData => Theme.of(this!);
+
+ bool get isSmall => MediaQuery.of(this!).size.height <= 690;
+
+ bool get isVSmall => MediaQuery.of(this!).size.height <= 550;
+
+ bool get isMedium => MediaQuery.of(this!).size.height < 750;
+}
diff --git a/lib/app/core/local_stoarge/app_storage.dart b/lib/app/core/local_stoarge/app_storage.dart
new file mode 100644
index 0000000..67d1bbb
--- /dev/null
+++ b/lib/app/core/local_stoarge/app_storage.dart
@@ -0,0 +1,169 @@
+import 'dart:convert';
+import 'package:hive/hive.dart';
+
+class AppStorage {
+ // static const _storage = FlutterSecureStorage();
+ // static Future