Skip to content

Commit

Permalink
Release 1.27.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Gematik-Entwicklung committed Feb 13, 2025
1 parent 05174a0 commit 9d20247
Show file tree
Hide file tree
Showing 1,946 changed files with 33,573 additions and 4,708 deletions.
8 changes: 8 additions & 0 deletions ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Release 1.27.0
- changed: main color of the app became darker to allow for more contrast
- changed: optimized messages
- added: spanish and irish are now supported
- Bug fixes
- infrastructure/ project improvements
- UX improvements

# Release 1.26.0
- added: link to organ donation register in settings
- added: in-app notification about the latest changes
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/material_dynamic_primary10" />
<background android:drawable="@mipmap/ic_launcher_background" />
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
</adaptive-icon>
</adaptive-icon>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/material_dynamic_primary10" />
<background android:drawable="@mipmap/ic_launcher_background" />
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
</adaptive-icon>
</adaptive-icon>
2 changes: 1 addition & 1 deletion app/android/src/main/assets/open_source_licenses.json

Large diffs are not rendered by default.

Binary file removed app/android/src/main/ic_launcher-playstore.png
Binary file not shown.
Binary file modified app/android/src/main/res/mipmap-xhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/android/src/main/res/mipmap-xhdpi/ic_launcher_background.webp
Binary file not shown.
Binary file not shown.
Binary file modified app/android/src/main/res/mipmap-xxhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/android/src/main/res/mipmap-xxhdpi/ic_launcher_background.webp
Binary file not shown.
Binary file not shown.
Binary file modified app/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ object MessageMocks {
start = null
)

private val MOCK_PRESCRIPTION_01 = Prescription.SyncedPrescription(
val MOCK_PRESCRIPTION_01 = Prescription.SyncedPrescription(
taskId = MOCK_TASK_ID_01,
name = null,
redeemedOn = null,
Expand All @@ -101,7 +101,7 @@ object MessageMocks {
prescriptionChipInformation = MOCK_CHIP_INFO
)

private val MOCK_PRESCRIPTION_02 = Prescription.SyncedPrescription(
val MOCK_PRESCRIPTION_02 = Prescription.SyncedPrescription(
taskId = MOCK_TASK_ID_02,
name = null,
redeemedOn = null,
Expand Down Expand Up @@ -333,7 +333,8 @@ object MessageMocks {
pickUpCodeDMC = "Test_01___Rezept_01___abcdefg12345",
pickUpCodeHR = "T01__R01",
link = "https://www.tree.fm/forest/33",
consumed = false
consumed = false,
prescriptions = listOf(MOCK_PRESCRIPTION_01)
)

internal val MOCK_MESSAGE_02 = OrderUseCaseData.Message(
Expand All @@ -343,7 +344,8 @@ object MessageMocks {
pickUpCodeDMC = "Test_01___Rezept_02___abcdefg12345",
pickUpCodeHR = "T01__R02",
link = "https://www.tree.fm/forest/35",
consumed = false
consumed = false,
prescriptions = listOf(MOCK_PRESCRIPTION_02)
)

internal val MOCK_PROFILE = ProfilesData.Profile(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@
package de.gematik.ti.erp.app.messages.usecase

import de.gematik.ti.erp.app.invoice.repository.InvoiceRepository
import de.gematik.ti.erp.app.messages.domain.model.OrderUseCaseData
import de.gematik.ti.erp.app.messages.domain.usecase.GetMessagesUseCase
import de.gematik.ti.erp.app.messages.mocks.MessageMocks.MOCK_DISP_REQ_COMMUNICATION_01
import de.gematik.ti.erp.app.messages.mocks.MessageMocks.MOCK_ORDER_01
import de.gematik.ti.erp.app.messages.mocks.MessageMocks.MOCK_PHARMACY_O1
import de.gematik.ti.erp.app.messages.mocks.MessageMocks.MOCK_PROFILE
import de.gematik.ti.erp.app.messages.mocks.MessageMocks.MOCK_TASK_ID_01
import de.gematik.ti.erp.app.messages.repository.CommunicationRepository
import de.gematik.ti.erp.app.messages.domain.model.OrderUseCaseData
import de.gematik.ti.erp.app.messages.domain.usecase.GetMessagesUseCase
import de.gematik.ti.erp.app.profiles.repository.ProfileRepository
import io.mockk.coEvery
import io.mockk.impl.annotations.InjectMockKs
Expand Down Expand Up @@ -58,7 +58,7 @@ class GetMessagesUseCaseTest {
coEvery { profileRepository.profiles() } returns flowOf(listOf(MOCK_PROFILE))

coEvery {
communicationRepository.loadFirstDispReqCommunications(any())
communicationRepository.loadDispReqCommunicationsByProfileId(any())
} returns flowOf(listOf(MOCK_DISP_REQ_COMMUNICATION_01))

coEvery {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,28 +18,21 @@

package de.gematik.ti.erp.app.messages.usecase

import de.gematik.ti.erp.app.messages.domain.usecase.GetRepliedMessagesUseCase
import de.gematik.ti.erp.app.messages.mocks.MessageMocks.MOCK_DISP_REPLY_COMMUNICATION_01
import de.gematik.ti.erp.app.messages.mocks.MessageMocks.MOCK_DISP_REPLY_COMMUNICATION_02
import de.gematik.ti.erp.app.messages.mocks.MessageMocks.MOCK_MESSAGE_01
import de.gematik.ti.erp.app.messages.mocks.MessageMocks.MOCK_MESSAGE_02
import de.gematik.ti.erp.app.messages.mocks.MessageMocks.MOCK_ORDER_ID
import de.gematik.ti.erp.app.messages.mocks.MessageMocks.MOCK_TASK_ID_01
import de.gematik.ti.erp.app.messages.mocks.MessageMocks.MOCK_TASK_ID_02
import de.gematik.ti.erp.app.messages.repository.CommunicationRepository
import de.gematik.ti.erp.app.messages.domain.model.OrderUseCaseData
import de.gematik.ti.erp.app.messages.domain.usecase.GetRepliedMessagesUseCase
import io.mockk.coEvery
import io.mockk.impl.annotations.InjectMockKs
import io.mockk.mockk
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
import kotlin.test.assertEquals

@ExperimentalCoroutinesApi
class GetRepliedMessagesUseCaseTest {
Expand Down Expand Up @@ -69,11 +62,13 @@ class GetRepliedMessagesUseCaseTest {

@Test
fun `invoke should return list of replied messages`() = runTest(dispatcher) {
/*TODO fix with ERA-11877
val expectedRepliedMessages = listOf(MOCK_MESSAGE_01, MOCK_MESSAGE_02)
val resultRepliedMessages: Flow<List<OrderUseCaseData.Message>> =
useCase(MOCK_ORDER_ID, "")
assertEquals(expectedRepliedMessages, resultRepliedMessages.first())
*/
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,11 @@ class GetUnreadMessagesCountUseCaseTest {

@Before
fun setup() {
coEvery { communicationRepository.unreadMessagesCount(any()) } returns flowOf(15L)
coEvery { communicationRepository.unreadMessagesCount() } returns flowOf(Companion.COUNTER_NUMBER)
coEvery {
invoiceRepository.getInvoiceTaskIdAndConsumedStatus(any())
} returns flowOf(listOf(InvoiceData.InvoiceStatus(taskId = "taskId1", consumed = false)))
coEvery { communicationRepository.loadFirstDispReqCommunications(any()) } returns flowOf(emptyList())
coEvery { communicationRepository.loadDispReqCommunicationsByProfileId(any()) } returns flowOf(emptyList())
coEvery { communicationRepository.loadRepliedCommunications(any(), any()) } returns flowOf(emptyList())
coEvery { inAppMessageRepository.counter } returns flowOf(0L)
useCase = GetUnreadMessagesCountUseCase(communicationRepository, inAppMessageRepository, invoiceRepository, dispatcher)
Expand All @@ -74,4 +74,8 @@ class GetUnreadMessagesCountUseCaseTest {

assertEquals(expectedUnreadCount, resultOrders)
}

companion object {
private const val COUNTER_NUMBER = 15L
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,10 @@ class MessageUseCaseTest {
pickUpCodeDMC = null,
pickUpCodeHR = null,
link = "https://example.org",
consumed = false
consumed = false,
prescriptions = emptyList(),
taskIds = emptyList(),
isTaskIdCountMatching = false
)
assertEquals(expected, communication.toMessage())
}
Expand All @@ -84,7 +87,11 @@ class MessageUseCaseTest {
pickUpCodeDMC = null,
pickUpCodeHR = null,
link = null,
consumed = false
consumed = false,
prescriptions = emptyList(),
taskIds = emptyList(),
isTaskIdCountMatching = false

)
assertEquals(expected, communication.toMessage())
}
Expand All @@ -109,7 +116,10 @@ class MessageUseCaseTest {
pickUpCodeDMC = null,
pickUpCodeHR = null,
link = null,
consumed = false
consumed = false,
prescriptions = emptyList(),
taskIds = emptyList(),
isTaskIdCountMatching = false
)
assertEquals(expected, communication.toMessage())
}
Expand All @@ -134,7 +144,10 @@ class MessageUseCaseTest {
pickUpCodeDMC = null,
pickUpCodeHR = null,
link = null,
consumed = false
consumed = false,
prescriptions = emptyList(),
taskIds = emptyList(),
isTaskIdCountMatching = false
)
assertEquals(expected, communication.toMessage())
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

package de.gematik.ti.erp.app.messages.usecase

import de.gematik.ti.erp.app.messages.domain.usecase.UpdateCommunicationByOrderIdAndCommunicationIdUseCase
import de.gematik.ti.erp.app.messages.domain.usecase.UpdateCommunicationConsumedStatusUseCase
import de.gematik.ti.erp.app.messages.mocks.MessageMocks
import de.gematik.ti.erp.app.messages.repository.CommunicationRepository
import io.mockk.coEvery
Expand All @@ -40,7 +40,7 @@ class UpdateCommunicationByOrderIdUseCaseTest {
private val repository: CommunicationRepository = mockk()

@InjectMockKs
private lateinit var useCase: UpdateCommunicationByOrderIdAndCommunicationIdUseCase
private lateinit var useCase: UpdateCommunicationConsumedStatusUseCase

@Before
fun setup() {
Expand All @@ -57,7 +57,7 @@ class UpdateCommunicationByOrderIdUseCaseTest {
repository.setCommunicationStatus(any(), any())
} returns Unit

useCase = UpdateCommunicationByOrderIdAndCommunicationIdUseCase(repository, dispatcher)
useCase = UpdateCommunicationConsumedStatusUseCase(repository, dispatcher)
}

@Test
Expand All @@ -72,12 +72,19 @@ class UpdateCommunicationByOrderIdUseCaseTest {
MessageMocks.MOCK_DISP_REQ_COMMUNICATION_02
)
)
coEvery {
repository.taskIdsByOrder(any())
} returns flowOf(listOf(MessageMocks.MOCK_TASK_ID_01, MessageMocks.MOCK_TASK_ID_02))

coEvery {
repository.loadAllRepliedCommunications(any())
} returns flowOf(listOf())

coEvery {
repository.setCommunicationStatus(capture(communicationIdsCaptured), true)
} returns Unit

useCase(MessageMocks.MOCK_ORDER_ID)
useCase(UpdateCommunicationConsumedStatusUseCase.Companion.CommunicationIdentifier.Order(MessageMocks.MOCK_ORDER_ID))

assertEquals(
communicationIdsCaptured,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@

package de.gematik.ti.erp.app.messages.usecase

import de.gematik.ti.erp.app.messages.domain.usecase.UpdateCommunicationByCommunicationIdUseCase
import de.gematik.ti.erp.app.messages.domain.usecase.UpdateCommunicationConsumedStatusUseCase
import de.gematik.ti.erp.app.messages.domain.usecase.UpdateCommunicationConsumedStatusUseCase.Companion.CommunicationIdentifier.Communication
import de.gematik.ti.erp.app.messages.mocks.MessageMocks
import de.gematik.ti.erp.app.messages.repository.CommunicationRepository
import io.mockk.coEvery
Expand All @@ -32,18 +33,18 @@ import org.junit.Before
import org.junit.Test

@ExperimentalCoroutinesApi
class UpdateCommunicationByCommunicationIdUseCaseTest {
class UpdateCommunicationConsumedStatusUseCaseTest {

private val dispatcher = StandardTestDispatcher()

private val communicationRepository: CommunicationRepository = mockk()

@InjectMockKs
private lateinit var useCase: UpdateCommunicationByCommunicationIdUseCase
private lateinit var useCase: UpdateCommunicationConsumedStatusUseCase

@Before
fun setup() {
useCase = UpdateCommunicationByCommunicationIdUseCase(
useCase = UpdateCommunicationConsumedStatusUseCase(
repository = communicationRepository,
dispatcher = dispatcher
)
Expand All @@ -56,7 +57,7 @@ class UpdateCommunicationByCommunicationIdUseCaseTest {
communicationRepository.setCommunicationStatus(communicationId, true)
} returns Unit

useCase(communicationId)
useCase(Communication(communicationId))

coVerify(exactly = 1) {
communicationRepository.setCommunicationStatus(communicationId, true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

package de.gematik.ti.erp.app.demomode.datasource

import de.gematik.ti.erp.app.db.entities.v1.changelogs.InAppMessageEntity
import de.gematik.ti.erp.app.db.entities.v1.InAppMessageEntity
import de.gematik.ti.erp.app.demomode.datasource.data.DemoAuditEventInfo
import de.gematik.ti.erp.app.demomode.datasource.data.DemoPharmacyInfo.demoFavouritePharmacy
import de.gematik.ti.erp.app.demomode.datasource.data.DemoPrescriptionInfo.DemoScannedPrescription.demoScannedTask01
Expand All @@ -40,6 +40,7 @@ import de.gematik.ti.erp.app.prescription.model.SyncedTaskData
import de.gematik.ti.erp.app.protocol.model.AuditEventData
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.datetime.Clock
import kotlinx.datetime.Instant
import java.util.UUID
import kotlin.time.Duration.Companion.days
import kotlin.time.Duration.Companion.hours
Expand Down Expand Up @@ -146,17 +147,20 @@ class DemoModeDataSource {
MutableStateFlow(mutableListOf(inAppMessageEntity))

val counter: MutableStateFlow<Long> =
MutableStateFlow(1)
MutableStateFlow(0)

val lastVersion: MutableStateFlow<String> =
MutableStateFlow("1.26.0")
MutableStateFlow("demo.version")

val lastUpdatedVersion: MutableStateFlow<String> =
MutableStateFlow("1.26.0")
MutableStateFlow("demo.version")

val showWelcomeMessage: MutableStateFlow<Boolean> =
MutableStateFlow(false)

val welcomeMessageTimeStamp: MutableStateFlow<Instant> =
MutableStateFlow(Clock.System.now().minus(12.hours))

/**
* Data source for the a [profileCommunicationLog] communication log that a particular profile has downloaded the information
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@

package de.gematik.ti.erp.app.demomode.datasource.data

import de.gematik.ti.erp.app.db.entities.v1.changelogs.InAppMessageEntity
import de.gematik.ti.erp.app.db.entities.v1.InAppMessageEntity

val inAppMessageEntity = InAppMessageEntity().apply {
id = "01"
this.version = "1.27.1"
this.version = "2.27.1"
}
Loading

0 comments on commit 9d20247

Please sign in to comment.