From e75db7f705fc454d89e98cf987e50d5badeec4b8 Mon Sep 17 00:00:00 2001 From: evance-mose <evasmose@gmail.com> Date: Wed, 27 Mar 2024 11:27:34 +0200 Subject: [PATCH 1/3] Add auditEvent --- .../engine/auditEvent/AuditEventWorker.kt | 84 +++++++++++++++++++ .../engine/configuration/app/ConfigService.kt | 11 +++ .../fhircore/quest/ui/main/AppMainActivity.kt | 15 +++- 3 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventWorker.kt diff --git a/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventWorker.kt b/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventWorker.kt new file mode 100644 index 0000000000..4deb87410b --- /dev/null +++ b/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventWorker.kt @@ -0,0 +1,84 @@ +package org.smartregister.fhircore.engine.auditEvent + +import android.content.Context +import androidx.hilt.work.HiltWorker +import androidx.work.CoroutineWorker +import androidx.work.WorkerParameters +import com.google.android.fhir.FhirEngine +import com.google.android.fhir.logicalId +import dagger.assisted.Assisted +import dagger.assisted.AssistedInject +import dagger.hilt.android.qualifiers.ApplicationContext +import org.hl7.fhir.r4.model.AuditEvent +import org.hl7.fhir.r4.model.Coding +import org.hl7.fhir.r4.model.Practitioner +import org.smartregister.fhircore.engine.data.local.DefaultRepository +import org.smartregister.fhircore.engine.util.SharedPreferenceKey +import org.smartregister.fhircore.engine.util.SharedPreferencesHelper +import org.smartregister.fhircore.engine.util.extension.asReference +import timber.log.Timber +import java.util.Date +import java.util.UUID + +@HiltWorker +class AuditEventWorker +@AssistedInject +constructor( + @Assisted val appContext: Context, + @Assisted workerParameters: WorkerParameters, + val fhirEngine: FhirEngine, + val sharedPreferences: SharedPreferencesHelper, + val defaultRepository: DefaultRepository + ) : CoroutineWorker(appContext, workerParameters) { + + override suspend fun doWork(): Result { + Timber.e("AuditEventWorker is running") + createAuditEvent() + return Result.success() + } + + private suspend fun createAuditEvent(){ + // Get Practitioner Resource + val practitionerID = + sharedPreferences.read(key = SharedPreferenceKey.PRACTITIONER_ID.name, defaultValue = null) + val practitioner = defaultRepository.loadResource<Practitioner>(practitionerID!!) + + // Create AuditEvent Resource + val auditEvent = AuditEvent().apply { + id = UUID.randomUUID().toString() + type = Coding().apply { + system = "http://dicom.nema.org/resources/ontology/DCM" + code ="110114" + display = "User Authentication" + } + subtype = listOf( + Coding().apply { + system = "http://dicom.nema.org/resources/ontology/DCM" + code = "110122" + display = "Login" + } + ) + outcome = AuditEvent.AuditEventOutcome._0 + action = AuditEvent.AuditEventAction.C + recorded = Date() + agent = listOf( + AuditEvent.AuditEventAgentComponent().apply { + who = practitioner?.asReference() + requestor = true + } + ) + source = AuditEvent.AuditEventSourceComponent().apply { + site = "https://d-tree.org" + observer = practitioner?.asReference() + } + } + + // Save AuditEvent Resource + defaultRepository.addOrUpdate(true, auditEvent,) + } + + companion object{ + const val NAME = "AuditEventWorker" + } + +} \ No newline at end of file diff --git a/android/engine/src/main/java/org/smartregister/fhircore/engine/configuration/app/ConfigService.kt b/android/engine/src/main/java/org/smartregister/fhircore/engine/configuration/app/ConfigService.kt index 10bace2ec2..c3b3a0cd33 100644 --- a/android/engine/src/main/java/org/smartregister/fhircore/engine/configuration/app/ConfigService.kt +++ b/android/engine/src/main/java/org/smartregister/fhircore/engine/configuration/app/ConfigService.kt @@ -18,17 +18,21 @@ package org.smartregister.fhircore.engine.configuration.app import android.content.Context import androidx.work.ExistingPeriodicWorkPolicy +import androidx.work.OneTimeWorkRequestBuilder import androidx.work.PeriodicWorkRequestBuilder import androidx.work.WorkManager +import dagger.hilt.android.qualifiers.ApplicationContext import java.util.concurrent.TimeUnit import org.hl7.fhir.r4.model.Coding import org.smartregister.fhircore.engine.appointment.MissedFHIRAppointmentsWorker import org.smartregister.fhircore.engine.appointment.ProposedWelcomeServiceAppointmentsWorker +import org.smartregister.fhircore.engine.auditEvent.AuditEventWorker import org.smartregister.fhircore.engine.sync.ResourceTag import org.smartregister.fhircore.engine.task.FhirTaskPlanWorker import org.smartregister.fhircore.engine.task.WelcomeServiceBackToCarePlanWorker import org.smartregister.fhircore.engine.util.SharedPreferencesHelper import org.smartregister.fhircore.engine.util.extension.extractLogicalIdUuid +import javax.inject.Inject /** An interface that provides the application configurations. */ interface ConfigService { @@ -119,4 +123,11 @@ interface ConfigService { workRequest, ) } + + fun scheduleAuditEvent(context: Context) { + val workRequest = OneTimeWorkRequestBuilder<AuditEventWorker>().build() + + WorkManager.getInstance(context) + .enqueue(workRequest) + } } diff --git a/android/quest/src/main/java/org/smartregister/fhircore/quest/ui/main/AppMainActivity.kt b/android/quest/src/main/java/org/smartregister/fhircore/quest/ui/main/AppMainActivity.kt index 31bf881041..50286e701d 100644 --- a/android/quest/src/main/java/org/smartregister/fhircore/quest/ui/main/AppMainActivity.kt +++ b/android/quest/src/main/java/org/smartregister/fhircore/quest/ui/main/AppMainActivity.kt @@ -34,6 +34,7 @@ import org.hl7.fhir.r4.model.Encounter import org.hl7.fhir.r4.model.ResourceType import org.smartregister.fhircore.engine.R import org.smartregister.fhircore.engine.configuration.app.ConfigService +import org.smartregister.fhircore.engine.data.remote.shared.TokenAuthenticator import org.smartregister.fhircore.engine.sync.OnSyncListener import org.smartregister.fhircore.engine.sync.SyncBroadcaster import org.smartregister.fhircore.engine.task.FhirCarePlanGenerator @@ -61,9 +62,11 @@ open class AppMainActivity : BaseMultiLanguageActivity(), OnSyncListener { @Inject lateinit var configService: ConfigService + @Inject lateinit var tokenAuthenticator: TokenAuthenticator + val appMainViewModel by viewModels<AppMainViewModel>() - val authActivityLauncherForResult = + private val authActivityLauncherForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { res -> if (res.resultCode == Activity.RESULT_OK) { appMainViewModel.onEvent(AppMainEvent.ResumeSync) @@ -75,6 +78,7 @@ open class AppMainActivity : BaseMultiLanguageActivity(), OnSyncListener { setupTimeOutListener() setContent { AppTheme { MainScreen(appMainViewModel = appMainViewModel) } } syncBroadcaster.registerSyncListener(this, lifecycleScope) + scheduleAuthWorkers() } override fun onResume() { @@ -171,6 +175,15 @@ open class AppMainActivity : BaseMultiLanguageActivity(), OnSyncListener { } } + private fun scheduleAuthWorkers() { + val isAuthenticated = tokenAuthenticator.sessionActive() + if(isAuthenticated){ + with(configService) { + scheduleAuditEvent(applicationContext) + } + } + } + private fun setupTimeOutListener() { if (application is QuestApplication) { (application as QuestApplication).onInActivityListener = From 148a2b04bd3e06424844914310d01dda6b826c91 Mon Sep 17 00:00:00 2001 From: evance-mose <evasmose@gmail.com> Date: Thu, 28 Mar 2024 10:20:48 +0200 Subject: [PATCH 2/3] add repository for auditEvent --- .../engine/auditEvent/AuditEventRepository.kt | 69 +++++++++++++++++++ .../engine/auditEvent/AuditEventWorker.kt | 46 +------------ .../fhircore/engine/di/CoreModule.kt | 8 +++ 3 files changed, 79 insertions(+), 44 deletions(-) create mode 100644 android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventRepository.kt diff --git a/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventRepository.kt b/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventRepository.kt new file mode 100644 index 0000000000..60524509ba --- /dev/null +++ b/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventRepository.kt @@ -0,0 +1,69 @@ +package org.smartregister.fhircore.engine.auditEvent + +import com.google.android.fhir.FhirEngine +import org.hl7.fhir.r4.model.AuditEvent +import org.hl7.fhir.r4.model.Coding +import org.hl7.fhir.r4.model.Practitioner +import org.smartregister.fhircore.engine.data.local.DefaultRepository +import org.smartregister.fhircore.engine.util.SharedPreferenceKey +import org.smartregister.fhircore.engine.util.SharedPreferencesHelper +import org.smartregister.fhircore.engine.util.extension.asReference +import java.util.Date +import java.util.UUID +import javax.inject.Inject +import javax.inject.Singleton + + +@Singleton +class AuditEventRepository +@Inject +constructor( + val defaultRepository: DefaultRepository, + val sharedPreferences: SharedPreferencesHelper, +): IAuditEventRepository { + override suspend fun createAuditEvent() { + // Get Practitioner Resource + val practitionerID = + sharedPreferences.read(key = SharedPreferenceKey.PRACTITIONER_ID.name, defaultValue = null) + val practitioner = defaultRepository.loadResource<Practitioner>(practitionerID!!) + + // Create AuditEvent Resource + val auditEvent = AuditEvent().apply { + id = UUID.randomUUID().toString() + type = Coding().apply { + system = "http://dicom.nema.org/resources/ontology/DCM" + code ="110114" + display = "User Authentication" + } + subtype = listOf( + Coding().apply { + system = "http://dicom.nema.org/resources/ontology/DCM" + code = "110122" + display = "Login" + } + ) + outcome = AuditEvent.AuditEventOutcome._0 + action = AuditEvent.AuditEventAction.C + recorded = Date() + agent = listOf( + AuditEvent.AuditEventAgentComponent().apply { + who = practitioner?.asReference() + requestor = true + } + ) + source = AuditEvent.AuditEventSourceComponent().apply { + site = "https://d-tree.org" + observer = practitioner?.asReference() + } + } + + // Save AuditEvent Resource + defaultRepository.addOrUpdate(true, auditEvent,) + } +} + + + +interface IAuditEventRepository { + suspend fun createAuditEvent() +} \ No newline at end of file diff --git a/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventWorker.kt b/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventWorker.kt index 4deb87410b..69b7f00a8d 100644 --- a/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventWorker.kt +++ b/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventWorker.kt @@ -26,57 +26,15 @@ class AuditEventWorker constructor( @Assisted val appContext: Context, @Assisted workerParameters: WorkerParameters, - val fhirEngine: FhirEngine, - val sharedPreferences: SharedPreferencesHelper, - val defaultRepository: DefaultRepository + private val auditEventRepository: AuditEventRepository ) : CoroutineWorker(appContext, workerParameters) { override suspend fun doWork(): Result { Timber.e("AuditEventWorker is running") - createAuditEvent() + auditEventRepository.createAuditEvent() return Result.success() } - private suspend fun createAuditEvent(){ - // Get Practitioner Resource - val practitionerID = - sharedPreferences.read(key = SharedPreferenceKey.PRACTITIONER_ID.name, defaultValue = null) - val practitioner = defaultRepository.loadResource<Practitioner>(practitionerID!!) - - // Create AuditEvent Resource - val auditEvent = AuditEvent().apply { - id = UUID.randomUUID().toString() - type = Coding().apply { - system = "http://dicom.nema.org/resources/ontology/DCM" - code ="110114" - display = "User Authentication" - } - subtype = listOf( - Coding().apply { - system = "http://dicom.nema.org/resources/ontology/DCM" - code = "110122" - display = "Login" - } - ) - outcome = AuditEvent.AuditEventOutcome._0 - action = AuditEvent.AuditEventAction.C - recorded = Date() - agent = listOf( - AuditEvent.AuditEventAgentComponent().apply { - who = practitioner?.asReference() - requestor = true - } - ) - source = AuditEvent.AuditEventSourceComponent().apply { - site = "https://d-tree.org" - observer = practitioner?.asReference() - } - } - - // Save AuditEvent Resource - defaultRepository.addOrUpdate(true, auditEvent,) - } - companion object{ const val NAME = "AuditEventWorker" } diff --git a/android/engine/src/main/java/org/smartregister/fhircore/engine/di/CoreModule.kt b/android/engine/src/main/java/org/smartregister/fhircore/engine/di/CoreModule.kt index ca29e8e5e7..3abad23558 100644 --- a/android/engine/src/main/java/org/smartregister/fhircore/engine/di/CoreModule.kt +++ b/android/engine/src/main/java/org/smartregister/fhircore/engine/di/CoreModule.kt @@ -30,6 +30,7 @@ import dagger.hilt.components.SingletonComponent import javax.inject.Singleton import org.hl7.fhir.r4.context.SimpleWorkerContext import org.hl7.fhir.r4.model.Parameters +import org.smartregister.fhircore.engine.auditEvent.AuditEventRepository import org.smartregister.fhircore.engine.configuration.ConfigurationRegistry import org.smartregister.fhircore.engine.configuration.app.ConfigService import org.smartregister.fhircore.engine.data.local.DefaultRepository @@ -91,4 +92,11 @@ class CoreModule { defaultRepository: DefaultRepository, configurationRegistry: ConfigurationRegistry, ): PatientDao = HivRegisterDao(fhirEngine, defaultRepository, configurationRegistry) + + @Singleton + @Provides + fun provideAudiEventRepository( + defaultRepository: DefaultRepository, + sharedPreferencesHelper: SharedPreferencesHelper + ): AuditEventRepository = AuditEventRepository(defaultRepository, sharedPreferencesHelper) } From 3b51f415e124a10602ff410ee67cc2d329e5def0 Mon Sep 17 00:00:00 2001 From: evance-mose <evasmose@gmail.com> Date: Thu, 28 Mar 2024 14:35:11 +0200 Subject: [PATCH 3/3] spotless --- .../engine/auditEvent/AuditEventRepository.kt | 117 ++++++++++-------- .../engine/auditEvent/AuditEventWorker.kt | 55 ++++---- .../engine/configuration/app/ConfigService.kt | 5 +- .../fhircore/engine/di/CoreModule.kt | 2 +- .../engine/src/main/res/values/strings.xml | 1 + .../fhircore/quest/ui/main/AppMainActivity.kt | 6 +- 6 files changed, 102 insertions(+), 84 deletions(-) diff --git a/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventRepository.kt b/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventRepository.kt index 60524509ba..3ad1be229b 100644 --- a/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventRepository.kt +++ b/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventRepository.kt @@ -1,69 +1,88 @@ +/* + * Copyright 2021 Ona Systems, Inc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.smartregister.fhircore.engine.auditEvent -import com.google.android.fhir.FhirEngine +import java.util.Date +import java.util.UUID +import javax.inject.Inject +import javax.inject.Singleton import org.hl7.fhir.r4.model.AuditEvent import org.hl7.fhir.r4.model.Coding import org.hl7.fhir.r4.model.Practitioner +import org.smartregister.fhircore.engine.R import org.smartregister.fhircore.engine.data.local.DefaultRepository import org.smartregister.fhircore.engine.util.SharedPreferenceKey import org.smartregister.fhircore.engine.util.SharedPreferencesHelper import org.smartregister.fhircore.engine.util.extension.asReference -import java.util.Date -import java.util.UUID -import javax.inject.Inject -import javax.inject.Singleton - @Singleton class AuditEventRepository @Inject constructor( - val defaultRepository: DefaultRepository, - val sharedPreferences: SharedPreferencesHelper, -): IAuditEventRepository { - override suspend fun createAuditEvent() { - // Get Practitioner Resource - val practitionerID = - sharedPreferences.read(key = SharedPreferenceKey.PRACTITIONER_ID.name, defaultValue = null) - val practitioner = defaultRepository.loadResource<Practitioner>(practitionerID!!) + val defaultRepository: DefaultRepository, + val sharedPreferences: SharedPreferencesHelper, +) : IAuditEventRepository { + override suspend fun createAuditEvent() { + // Get Practitioner Resource + val practitionerID = + sharedPreferences.read(key = SharedPreferenceKey.PRACTITIONER_ID.name, defaultValue = null) + ?: return - // Create AuditEvent Resource - val auditEvent = AuditEvent().apply { - id = UUID.randomUUID().toString() - type = Coding().apply { - system = "http://dicom.nema.org/resources/ontology/DCM" - code ="110114" - display = "User Authentication" - } - subtype = listOf( - Coding().apply { - system = "http://dicom.nema.org/resources/ontology/DCM" - code = "110122" - display = "Login" - } - ) - outcome = AuditEvent.AuditEventOutcome._0 - action = AuditEvent.AuditEventAction.C - recorded = Date() - agent = listOf( - AuditEvent.AuditEventAgentComponent().apply { - who = practitioner?.asReference() - requestor = true - } - ) - source = AuditEvent.AuditEventSourceComponent().apply { - site = "https://d-tree.org" - observer = practitioner?.asReference() - } - } + val practitioner = defaultRepository.loadResource<Practitioner>(practitionerID!!) - // Save AuditEvent Resource - defaultRepository.addOrUpdate(true, auditEvent,) - } -} + val context = sharedPreferences.context + // Create AuditEvent Resource + val auditEvent = + AuditEvent().apply { + id = UUID.randomUUID().toString() + type = + Coding().apply { + system = context.getString(R.string.audit_event_system) + code = "110114" + display = "User Authentication" + } + subtype = + listOf( + Coding().apply { + system = context.getString(R.string.audit_event_system) + code = "110122" + display = "Login" + }, + ) + outcome = AuditEvent.AuditEventOutcome._0 + action = AuditEvent.AuditEventAction.C + recorded = Date() + agent = + listOf( + AuditEvent.AuditEventAgentComponent().apply { + who = practitioner?.asReference() + requestor = true + }, + ) + source = + AuditEvent.AuditEventSourceComponent().apply { observer = practitioner?.asReference() } + } + // Save AuditEvent Resource + defaultRepository.addOrUpdate(true, auditEvent) + } +} interface IAuditEventRepository { - suspend fun createAuditEvent() -} \ No newline at end of file + suspend fun createAuditEvent() +} diff --git a/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventWorker.kt b/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventWorker.kt index 69b7f00a8d..90a32c97e2 100644 --- a/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventWorker.kt +++ b/android/engine/src/main/java/org/smartregister/fhircore/engine/auditEvent/AuditEventWorker.kt @@ -1,42 +1,45 @@ +/* + * Copyright 2021 Ona Systems, Inc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.smartregister.fhircore.engine.auditEvent import android.content.Context import androidx.hilt.work.HiltWorker import androidx.work.CoroutineWorker import androidx.work.WorkerParameters -import com.google.android.fhir.FhirEngine -import com.google.android.fhir.logicalId import dagger.assisted.Assisted import dagger.assisted.AssistedInject -import dagger.hilt.android.qualifiers.ApplicationContext -import org.hl7.fhir.r4.model.AuditEvent -import org.hl7.fhir.r4.model.Coding -import org.hl7.fhir.r4.model.Practitioner -import org.smartregister.fhircore.engine.data.local.DefaultRepository -import org.smartregister.fhircore.engine.util.SharedPreferenceKey -import org.smartregister.fhircore.engine.util.SharedPreferencesHelper -import org.smartregister.fhircore.engine.util.extension.asReference import timber.log.Timber -import java.util.Date -import java.util.UUID @HiltWorker class AuditEventWorker @AssistedInject constructor( - @Assisted val appContext: Context, - @Assisted workerParameters: WorkerParameters, - private val auditEventRepository: AuditEventRepository - ) : CoroutineWorker(appContext, workerParameters) { - - override suspend fun doWork(): Result { - Timber.e("AuditEventWorker is running") - auditEventRepository.createAuditEvent() - return Result.success() - } + @Assisted val appContext: Context, + @Assisted workerParameters: WorkerParameters, + private val auditEventRepository: AuditEventRepository, +) : CoroutineWorker(appContext, workerParameters) { - companion object{ - const val NAME = "AuditEventWorker" - } + override suspend fun doWork(): Result { + Timber.e("AuditEventWorker is running") + auditEventRepository.createAuditEvent() + return Result.success() + } -} \ No newline at end of file + companion object { + const val NAME = "AuditEventWorker" + } +} diff --git a/android/engine/src/main/java/org/smartregister/fhircore/engine/configuration/app/ConfigService.kt b/android/engine/src/main/java/org/smartregister/fhircore/engine/configuration/app/ConfigService.kt index c3b3a0cd33..fc6077c3cd 100644 --- a/android/engine/src/main/java/org/smartregister/fhircore/engine/configuration/app/ConfigService.kt +++ b/android/engine/src/main/java/org/smartregister/fhircore/engine/configuration/app/ConfigService.kt @@ -21,7 +21,6 @@ import androidx.work.ExistingPeriodicWorkPolicy import androidx.work.OneTimeWorkRequestBuilder import androidx.work.PeriodicWorkRequestBuilder import androidx.work.WorkManager -import dagger.hilt.android.qualifiers.ApplicationContext import java.util.concurrent.TimeUnit import org.hl7.fhir.r4.model.Coding import org.smartregister.fhircore.engine.appointment.MissedFHIRAppointmentsWorker @@ -32,7 +31,6 @@ import org.smartregister.fhircore.engine.task.FhirTaskPlanWorker import org.smartregister.fhircore.engine.task.WelcomeServiceBackToCarePlanWorker import org.smartregister.fhircore.engine.util.SharedPreferencesHelper import org.smartregister.fhircore.engine.util.extension.extractLogicalIdUuid -import javax.inject.Inject /** An interface that provides the application configurations. */ interface ConfigService { @@ -127,7 +125,6 @@ interface ConfigService { fun scheduleAuditEvent(context: Context) { val workRequest = OneTimeWorkRequestBuilder<AuditEventWorker>().build() - WorkManager.getInstance(context) - .enqueue(workRequest) + WorkManager.getInstance(context).enqueue(workRequest) } } diff --git a/android/engine/src/main/java/org/smartregister/fhircore/engine/di/CoreModule.kt b/android/engine/src/main/java/org/smartregister/fhircore/engine/di/CoreModule.kt index 3abad23558..e32e09ec55 100644 --- a/android/engine/src/main/java/org/smartregister/fhircore/engine/di/CoreModule.kt +++ b/android/engine/src/main/java/org/smartregister/fhircore/engine/di/CoreModule.kt @@ -97,6 +97,6 @@ class CoreModule { @Provides fun provideAudiEventRepository( defaultRepository: DefaultRepository, - sharedPreferencesHelper: SharedPreferencesHelper + sharedPreferencesHelper: SharedPreferencesHelper, ): AuditEventRepository = AuditEventRepository(defaultRepository, sharedPreferencesHelper) } diff --git a/android/engine/src/main/res/values/strings.xml b/android/engine/src/main/res/values/strings.xml index df30809186..6b537661db 100644 --- a/android/engine/src/main/res/values/strings.xml +++ b/android/engine/src/main/res/values/strings.xml @@ -155,4 +155,5 @@ <string name="error_loading_config_general">Error connecting to the server. Please contact the system administrator</string> <string name="re_fetch_practitioner">Re-fetch Practitioner</string> <string name="dev_menu">Dev Menu</string> + <string name="audit_event_system">http://dicom.nema.org/resources/ontology/DCM</string> </resources> diff --git a/android/quest/src/main/java/org/smartregister/fhircore/quest/ui/main/AppMainActivity.kt b/android/quest/src/main/java/org/smartregister/fhircore/quest/ui/main/AppMainActivity.kt index 50286e701d..2d79dd8fae 100644 --- a/android/quest/src/main/java/org/smartregister/fhircore/quest/ui/main/AppMainActivity.kt +++ b/android/quest/src/main/java/org/smartregister/fhircore/quest/ui/main/AppMainActivity.kt @@ -177,10 +177,8 @@ open class AppMainActivity : BaseMultiLanguageActivity(), OnSyncListener { private fun scheduleAuthWorkers() { val isAuthenticated = tokenAuthenticator.sessionActive() - if(isAuthenticated){ - with(configService) { - scheduleAuditEvent(applicationContext) - } + if (isAuthenticated) { + with(configService) { scheduleAuditEvent(applicationContext) } } }