diff --git a/.github/workflows/flutter-build-apk.yml b/.github/workflows/flutter-build-apk.yml index 076e96a606..36aeb0df5a 100644 --- a/.github/workflows/flutter-build-apk.yml +++ b/.github/workflows/flutter-build-apk.yml @@ -78,13 +78,13 @@ jobs: # Archive the APK as a build artifact so it can be downloaded - name: Upload APKs - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: app-release-apk path: apps/health_campaign_field_worker_app/build/app/outputs/apk/release/app-release.apk - name: Upload .env as artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: env-file path: apps/health_campaign_field_worker_app/.env diff --git a/apps/health_campaign_field_worker_app/lib/app.dart b/apps/health_campaign_field_worker_app/lib/app.dart index c754f75636..0da8badf9d 100644 --- a/apps/health_campaign_field_worker_app/lib/app.dart +++ b/apps/health_campaign_field_worker_app/lib/app.dart @@ -185,7 +185,7 @@ class MainApplicationState extends State ..add( LocalizationEvent.onLoadLocalization( module: - "hcm-boundary-${envConfig.variables.hierarchyType.toLowerCase()},${localizationModulesList.interfaces.where((element) => element.type == Modules.localizationModule).map((e) => e.name.toString()).join(',')}", + "${localizationModulesList.interfaces.where((element) => element.type == Modules.localizationModule).map((e) => e.name.toString()).join(',')}", tenantId: appConfig.tenantId.toString(), locale: firstLanguage, path: Constants.localizationApiPath, diff --git a/apps/health_campaign_field_worker_app/lib/blocs/localization/localization.dart b/apps/health_campaign_field_worker_app/lib/blocs/localization/localization.dart index 5784ce14de..fecb533fd2 100644 --- a/apps/health_campaign_field_worker_app/lib/blocs/localization/localization.dart +++ b/apps/health_campaign_field_worker_app/lib/blocs/localization/localization.dart @@ -6,6 +6,7 @@ import 'package:freezed_annotation/freezed_annotation.dart'; import '../../data/local_store/app_shared_preferences.dart'; import '../../data/repositories/local/localization.dart'; import '../../data/repositories/remote/localization.dart'; +import '../../utils/environment_config.dart'; import '../../utils/utils.dart'; import 'app_localization.dart'; @@ -51,7 +52,7 @@ class LocalizationBloc extends Bloc { var localResults = await LocalizationLocalRepository() .fetchLocalization( sql: sql, locale: event.locale, module: allModules.join(',')); - if (localResults.isEmpty) { + if (localResults.isEmpty || event.module == "hcm-boundary-${envConfig.variables.hierarchyType.toLowerCase()}") { var results = await localizationRepository.loadLocalization( path: event.path, locale: event.locale, diff --git a/apps/health_campaign_field_worker_app/lib/blocs/project/project.dart b/apps/health_campaign_field_worker_app/lib/blocs/project/project.dart index 19b2ec9db4..3eb6ad3b84 100644 --- a/apps/health_campaign_field_worker_app/lib/blocs/project/project.dart +++ b/apps/health_campaign_field_worker_app/lib/blocs/project/project.dart @@ -546,9 +546,9 @@ class ProjectBloc extends Bloc { boundaryRefetched) { boundaries = await boundaryRemoteRepository.search( BoundarySearchModel( - boundaryType: event.model.address?.boundaryType, - codes: event.model.address?.boundary, - ), + boundaryType: event.model.address?.boundaryType, + codes: event.model.address?.boundary, + hierarchyType: event.model.address?.boundary?.split('_')[0]), ); await boundaryLocalRepository.bulkCreate(boundaries); await localSecureStore.setSelectedProject(event.model); @@ -571,15 +571,16 @@ class ProjectBloc extends Bloc { } else { boundaries = await boundaryLocalRepository.search( BoundarySearchModel( - boundaryType: event.model.address?.boundaryType, - codes: event.model.address?.boundary, - ), + boundaryType: event.model.address?.boundaryType, + codes: event.model.address?.boundary, + hierarchyType: event.model.address?.boundary?.split('_')[0]), ); if (boundaries.isEmpty) { boundaries = await boundaryRemoteRepository.search( BoundarySearchModel( boundaryType: event.model.address?.boundaryType, codes: event.model.address?.boundary, + hierarchyType: event.model.address?.boundary?.split('_')[0], ), ); } diff --git a/apps/health_campaign_field_worker_app/lib/pages/project_selection.dart b/apps/health_campaign_field_worker_app/lib/pages/project_selection.dart index 825cea2bc6..539d48e6db 100644 --- a/apps/health_campaign_field_worker_app/lib/pages/project_selection.dart +++ b/apps/health_campaign_field_worker_app/lib/pages/project_selection.dart @@ -3,16 +3,22 @@ import 'package:digit_components/widgets/atoms/digit_toaster.dart'; import 'package:digit_components/widgets/digit_project_cell.dart'; import 'package:digit_components/widgets/digit_sync_dialog.dart'; import 'package:digit_data_model/data_model.dart'; +import 'package:digit_data_model/utils/utils.dart'; import 'package:digit_location_tracker/location_tracker.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:isar/isar.dart'; +import '../blocs/app_initialization/app_initialization.dart'; import '../blocs/auth/auth.dart'; +import '../blocs/localization/localization.dart'; import '../blocs/project/project.dart'; +import '../data/local_store/app_shared_preferences.dart'; import '../data/local_store/no_sql/schema/app_configuration.dart'; +import '../data/local_store/no_sql/schema/entity_mapper.dart'; import '../router/app_router.dart'; import '../utils/constants.dart'; +import '../utils/environment_config.dart'; import '../utils/extensions/extensions.dart'; import '../utils/i18_key_constants.dart' as i18; import '../widgets/header/back_navigation_help_header.dart'; @@ -141,11 +147,42 @@ class _ProjectSelectionPageState extends LocalizedState { Navigator.of(context).push(syncDialogRoute!); } - final selectedProject = state.selectedProject; + final selectedProject = state. selectedProject; if (selectedProject != null) { final boundary = selectedProject.address?.boundary; if (boundary != null) { + List parts = boundary.split('_'); + envConfig.variables.hierarchyType = parts[0]; + + var appConfigState = context.read().state; + + var appConfig, localizationModulesList, firstLanguage; + if (appConfigState is AppInitialized) { + appConfig = appConfigState.appConfiguration; + localizationModulesList = appConfig.backendInterface; + firstLanguage = appConfig.languages?.isNotEmpty == true + ? appConfig.languages!.first.value + : null; + } + + context.read().add( + LocalizationEvent.onLoadLocalization( + module: + "hcm-boundary-${envConfig.variables.hierarchyType.toLowerCase()}", + tenantId: appConfig.tenantId.toString(), + locale: AppSharedPreferences() + .getSelectedLocale + .toString(), + path: Constants.localizationApiPath, + ), + ); + DigitDataModelSingleton().setData(syncDownRetryCount: envConfig.variables.syncDownRetryCount, + retryTimeInterval: envConfig.variables.retryTimeInterval, + tenantId: envConfig.variables.tenantId, + entityMapper: EntityMapper(), + errorDumpApiPath: envConfig.variables.dumpErrorApiPath, + hierarchyType: parts[0]); triggerLocationTracking(state.selectedProject!); navigateToBoundary(boundary); } else { diff --git a/apps/health_campaign_field_worker_app/lib/utils/environment_config.dart b/apps/health_campaign_field_worker_app/lib/utils/environment_config.dart index 52b383d455..ed3a237389 100644 --- a/apps/health_campaign_field_worker_app/lib/utils/environment_config.dart +++ b/apps/health_campaign_field_worker_app/lib/utils/environment_config.dart @@ -49,6 +49,8 @@ class Variables { final DotEnv _dotEnv; final bool useFallbackValues; + String? _customHierarchyType; + static const _connectTimeoutValue = 6000; static const _receiveTimeoutValue = 6000; static const _sendTimeoutValue = 6000; @@ -119,7 +121,7 @@ class Variables { 'ADMIN', ); - const Variables({ + Variables({ this.useFallbackValues = false, required DotEnv dotEnv, }) : _dotEnv = dotEnv; @@ -136,9 +138,11 @@ class Variables { ? _mdmsApi.value : _dotEnv.get(_mdmsApi.key, fallback: _mdmsApi.value); - String get hierarchyType => useFallbackValues - ? _hierarchyType.value - : _dotEnv.get(_hierarchyType.key, fallback: _hierarchyType.value); + String get hierarchyType => _customHierarchyType ?? _hierarchyType.value; + + set hierarchyType(String value) { + _customHierarchyType = value; + } String get actionMapApiPath => useFallbackValues ? _actionMapUrl.value diff --git a/apps/health_campaign_field_worker_app/pubspec.lock b/apps/health_campaign_field_worker_app/pubspec.lock index ffe674b125..e809711f95 100644 --- a/apps/health_campaign_field_worker_app/pubspec.lock +++ b/apps/health_campaign_field_worker_app/pubspec.lock @@ -265,7 +265,7 @@ packages: source: hosted version: "0.11.0+2" camera_android_camerax: - dependency: "direct overridden" + dependency: transitive description: name: camera_android_camerax sha256: "594b40a5ea0e144fdfe49e4036abe4ec9bd578b2ce3aabdb0668a02db376a1e8" @@ -522,10 +522,9 @@ packages: digit_dss: dependency: "direct main" description: - name: digit_dss - sha256: cb5ae888503260dff1df2d4785ba2cac39a20348cfcd660e2212a8965b948dba - url: "https://pub.dev" - source: hosted + path: "../../packages/digit_dss" + relative: true + source: path version: "1.0.3" digit_firebase_services: dependency: "direct main" @@ -1844,11 +1843,10 @@ packages: referral_reconciliation: dependency: "direct main" description: - name: referral_reconciliation - sha256: "0b7e439b105b7cc4c89cff822b801ab8eecce497031be1572e5415aa1e871208" - url: "https://pub.dev" - source: hosted - version: "1.0.3" + path: "../../packages/referral_reconciliation" + relative: true + source: path + version: "1.0.3+1" registration_delivery: dependency: "direct main" description: @@ -2075,7 +2073,7 @@ packages: path: "../../packages/survey_form" relative: true source: path - version: "1.0.0" + version: "1.0.0+1" sync_http: dependency: transitive description: diff --git a/apps/health_campaign_field_worker_app/pubspec.yaml b/apps/health_campaign_field_worker_app/pubspec.yaml index 35e6eb2025..9bf544a8de 100644 --- a/apps/health_campaign_field_worker_app/pubspec.yaml +++ b/apps/health_campaign_field_worker_app/pubspec.yaml @@ -114,3 +114,12 @@ flutter: fonts: - asset: assets/fonts/Roboto/RobotoCondensed-Regular.ttf uses-material-design: true + + + + + + + + + diff --git a/melos.yaml b/melos.yaml index b2010b9185..e7d7126076 100644 --- a/melos.yaml +++ b/melos.yaml @@ -23,7 +23,7 @@ scripts: generate-flutter: description: Generate code for all Flutter packages. - run: flutter packages run build_runner build --delete-conflicting-outputs + run: flutter packages run build_runner build --delete-conflicting-outputs --no-concurrency exec: concurrency: 1 packageFilters: @@ -33,7 +33,7 @@ scripts: generate-hooks: description: Generate hooks for all packages. - run: dart run build_runner build --delete-conflicting-outputs + run: dart run build_runner build --delete-conflicting-outputs --no-concurrency exec: concurrency: 1 packageFilters: diff --git a/packages/attendance_management/pubspec.lock b/packages/attendance_management/pubspec.lock index 8091eeedff..da005d69f2 100644 --- a/packages/attendance_management/pubspec.lock +++ b/packages/attendance_management/pubspec.lock @@ -341,11 +341,10 @@ packages: digit_data_model: dependency: "direct main" description: - name: digit_data_model - sha256: c3bc7299a7d927ebb83d8e91c1d7a8a51f6a1d1295dafeacb642012b72b99a2f - url: "https://pub.dev" - source: hosted - version: "1.0.5" + path: "../digit_data_model" + relative: true + source: path + version: "1.0.5+1" digit_ui_components: dependency: "direct main" description: diff --git a/packages/attendance_management/pubspec.yaml b/packages/attendance_management/pubspec.yaml index 20af700ad8..14ab59d30c 100644 --- a/packages/attendance_management/pubspec.yaml +++ b/packages/attendance_management/pubspec.yaml @@ -28,7 +28,7 @@ dependencies: path_provider: ^2.0.11 path: ^1.8.2 drift_db_viewer: ^2.0.0 - digit_data_model: ^1.0.5 + digit_data_model: ^1.0.5-dev.2 reactive_forms: ^17.0.0 dev_dependencies: diff --git a/packages/digit_dss/pubspec.lock b/packages/digit_dss/pubspec.lock index 82ead67eb6..3b9b6e55c3 100644 --- a/packages/digit_dss/pubspec.lock +++ b/packages/digit_dss/pubspec.lock @@ -9,14 +9,6 @@ packages: url: "https://pub.dev" source: hosted version: "61.0.0" - _flutterfire_internals: - dependency: transitive - description: - name: _flutterfire_internals - sha256: "37a42d06068e2fe3deddb2da079a8c4d105f241225ba27b7122b37e9865fd8f7" - url: "https://pub.dev" - source: hosted - version: "1.3.35" analyzer: dependency: transitive description: @@ -68,10 +60,11 @@ packages: attendance_management: dependency: "direct main" description: - path: "../attendance_management" - relative: true - source: path - version: "1.0.3" + name: attendance_management + sha256: a1d8809efafe1afe509737f5de3695aec32c28b7c30064072d883d140f9dc274 + url: "https://pub.dev" + source: hosted + version: "1.0.3-dev.1" auto_route: dependency: "direct main" description: @@ -323,9 +316,11 @@ packages: dart_mappable_builder: dependency: "direct dev" description: - path: "../dart_mappable_builder" - relative: true - source: path + path: "packages/dart_mappable_builder" + ref: master + resolved-ref: ab088b8fc21a07ed7a56bf81c935ee51481ad253 + url: "https://github.com/egovernments/health-campaign-field-worker-app/" + source: git version: "4.2.3" dart_style: dependency: transitive @@ -362,25 +357,19 @@ packages: digit_data_model: dependency: "direct main" description: - path: "../digit_data_model" - relative: true - source: path - version: "1.0.5+1" - digit_firebase_services: - dependency: "direct overridden" - description: - path: "../digit_firebase_services" - relative: true - source: path - version: "0.0.1" + name: digit_data_model + sha256: c3bc7299a7d927ebb83d8e91c1d7a8a51f6a1d1295dafeacb642012b72b99a2f + url: "https://pub.dev" + source: hosted + version: "1.0.5" digit_ui_components: dependency: "direct main" description: name: digit_ui_components - sha256: "57c4da5237be6025783e7357a02b6b492f02e38f711d674bf46f5f8c8a93ad76" + sha256: "4d79a36d9a3bfce4616066f2bf5c5d6dfb6c301315e6fa21a1d6d0f76d98dbeb" url: "https://pub.dev" source: hosted - version: "0.0.2-dev.4" + version: "0.0.2-dev.6" dio: dependency: "direct main" description: @@ -493,46 +482,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.9.3+3" - firebase_core: - dependency: transitive - description: - name: firebase_core - sha256: "26de145bb9688a90962faec6f838247377b0b0d32cc0abecd9a4e43525fc856c" - url: "https://pub.dev" - source: hosted - version: "2.32.0" - firebase_core_platform_interface: - dependency: transitive - description: - name: firebase_core_platform_interface - sha256: b94b217e3ad745e784960603d33d99471621ecca151c99c670869b76e50ad2a6 - url: "https://pub.dev" - source: hosted - version: "5.3.1" - firebase_core_web: - dependency: transitive - description: - name: firebase_core_web - sha256: "362e52457ed2b7b180964769c1e04d1e0ea0259fdf7025fdfedd019d4ae2bd88" - url: "https://pub.dev" - source: hosted - version: "2.17.5" - firebase_crashlytics: - dependency: transitive - description: - name: firebase_crashlytics - sha256: "9897c01efaa950d2f6da8317d12452749a74dc45f33b46390a14cfe28067f271" - url: "https://pub.dev" - source: hosted - version: "3.5.7" - firebase_crashlytics_platform_interface: - dependency: transitive - description: - name: firebase_crashlytics_platform_interface - sha256: "16a71e08fbf6e00382816e1b13397898c29a54fa0ad969c2c2a3b82a704877f0" - url: "https://pub.dev" - source: hosted - version: "3.6.35" fixnum: dependency: transitive description: diff --git a/packages/digit_dss/pubspec.yaml b/packages/digit_dss/pubspec.yaml index e7f72853a5..b6a3cfeee4 100644 --- a/packages/digit_dss/pubspec.yaml +++ b/packages/digit_dss/pubspec.yaml @@ -26,7 +26,7 @@ dependencies: dio: ^5.4.3+1 isar: ^3.1.0+1 isar_flutter_libs: ^3.1.0+1 - attendance_management: ^1.0.3 + attendance_management: 1.0.3-dev.1 dev_dependencies: flutter_test: diff --git a/packages/referral_reconciliation/pubspec.lock b/packages/referral_reconciliation/pubspec.lock index b1d040e174..814d2f3aef 100644 --- a/packages/referral_reconciliation/pubspec.lock +++ b/packages/referral_reconciliation/pubspec.lock @@ -1408,7 +1408,7 @@ packages: path: "../survey_form" relative: true source: path - version: "1.0.0" + version: "1.0.0+1" synchronized: dependency: transitive description: diff --git a/packages/referral_reconciliation/pubspec.yaml b/packages/referral_reconciliation/pubspec.yaml index 8f93edbddf..700bbdf21d 100644 --- a/packages/referral_reconciliation/pubspec.yaml +++ b/packages/referral_reconciliation/pubspec.yaml @@ -36,7 +36,8 @@ dependencies: flutter_keyboard_visibility: ^5.4.1 digit_data_model: ^1.0.5 stream_transform: ^2.1.0 - survey_form: ^1.0.0 + survey_form: + path: ../../packages/survey_form dev_dependencies: diff --git a/packages/registration_delivery/pubspec.lock b/packages/registration_delivery/pubspec.lock index e0462c9a6b..f33755bb50 100644 --- a/packages/registration_delivery/pubspec.lock +++ b/packages/registration_delivery/pubspec.lock @@ -405,10 +405,11 @@ packages: digit_data_model: dependency: "direct main" description: - path: "../digit_data_model" - relative: true - source: path - version: "1.0.5+1" + name: digit_data_model + sha256: c3bc7299a7d927ebb83d8e91c1d7a8a51f6a1d1295dafeacb642012b72b99a2f + url: "https://pub.dev" + source: hosted + version: "1.0.5" digit_scanner: dependency: "direct main" description: @@ -1464,7 +1465,7 @@ packages: path: "../survey_form" relative: true source: path - version: "1.0.0" + version: "1.0.0+1" synchronized: dependency: transitive description: diff --git a/packages/registration_delivery/pubspec.yaml b/packages/registration_delivery/pubspec.yaml index 2a0445e718..5d2b0c7e0f 100644 --- a/packages/registration_delivery/pubspec.yaml +++ b/packages/registration_delivery/pubspec.yaml @@ -42,7 +42,7 @@ dependencies: formula_parser: ^2.0.1 flutter_keyboard_visibility: ^5.4.1 survey_form: - path: ../survey_form + path: ../../packages/survey_form group_radio_button: ^1.3.0 dev_dependencies: diff --git a/packages/survey_form/example/pubspec.lock b/packages/survey_form/example/pubspec.lock index b71a66a16c..1fdf174803 100644 --- a/packages/survey_form/example/pubspec.lock +++ b/packages/survey_form/example/pubspec.lock @@ -1112,7 +1112,7 @@ packages: path: ".." relative: true source: path - version: "1.0.0" + version: "1.0.0+1" term_glyph: dependency: transitive description: diff --git a/packages/survey_form/pubspec.yaml b/packages/survey_form/pubspec.yaml index ebefb99636..7b8cb7fdbe 100644 --- a/packages/survey_form/pubspec.yaml +++ b/packages/survey_form/pubspec.yaml @@ -22,7 +22,7 @@ dependencies: dart_mappable: ^4.2.0 drift: ^2.0.0 auto_route: ^8.1.3 - digit_data_model: ^1.0.5 + digit_data_model: ^1.0.5-dev.2 collection: ^1.16.0 location: ^6.0.2 dio: ^5.1.2 diff --git a/tools/generate-apk.sh b/tools/generate-apk.sh index 4d578fa4cd..699baf0835 100755 --- a/tools/generate-apk.sh +++ b/tools/generate-apk.sh @@ -31,7 +31,7 @@ build_config="${build_config:-release}" # env_list=("$env") # fi -./tools/install_bricks.sh + ./tools/install_bricks.sh cd "$APP_DIR" || exit