From b6606577d500f5837dea89a1eb8265813cab3b3d Mon Sep 17 00:00:00 2001 From: ganfra Date: Tue, 28 Feb 2023 15:19:33 +0100 Subject: [PATCH] Should fix CI --- .../fakes/FakeDaySeparatorFormatter.kt | 32 +++++++++++++++++++ .../messages/fixtures/timelineItemsFactory.kt | 5 ++- .../android/samples/minimal/MainActivity.kt | 2 +- .../android/samples/minimal/RoomListScreen.kt | 12 +++++-- 4 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 features/messages/src/test/kotlin/io/element/android/features/messages/fakes/FakeDaySeparatorFormatter.kt diff --git a/features/messages/src/test/kotlin/io/element/android/features/messages/fakes/FakeDaySeparatorFormatter.kt b/features/messages/src/test/kotlin/io/element/android/features/messages/fakes/FakeDaySeparatorFormatter.kt new file mode 100644 index 0000000000..40a52c640c --- /dev/null +++ b/features/messages/src/test/kotlin/io/element/android/features/messages/fakes/FakeDaySeparatorFormatter.kt @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * 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 io.element.android.features.messages.fakes + +import io.element.android.libraries.dateformatter.DaySeparatorFormatter + +class FakeDaySeparatorFormatter : DaySeparatorFormatter { + + private var format = "" + + fun givenFormat(format: String) { + this.format = format + } + + override fun format(timestamp: Long): String { + return format + } +} diff --git a/features/messages/src/test/kotlin/io/element/android/features/messages/fixtures/timelineItemsFactory.kt b/features/messages/src/test/kotlin/io/element/android/features/messages/fixtures/timelineItemsFactory.kt index d63c85eb0b..fc4cecf203 100644 --- a/features/messages/src/test/kotlin/io/element/android/features/messages/fixtures/timelineItemsFactory.kt +++ b/features/messages/src/test/kotlin/io/element/android/features/messages/fixtures/timelineItemsFactory.kt @@ -16,6 +16,7 @@ package io.element.android.features.messages.fixtures +import io.element.android.features.messages.fakes.FakeDaySeparatorFormatter import io.element.android.features.messages.timeline.factories.TimelineItemsFactory import io.element.android.features.messages.timeline.factories.event.TimelineItemContentFactory import io.element.android.features.messages.timeline.factories.event.TimelineItemContentFailedToParseMessageFactory @@ -47,6 +48,8 @@ internal fun aTimelineItemsFactory() = TimelineItemsFactory( ) ), virtualItemFactory = TimelineItemVirtualFactory( - daySeparatorFactory = TimelineItemDaySeparatorFactory(), + daySeparatorFactory = TimelineItemDaySeparatorFactory( + FakeDaySeparatorFormatter() + ), ) ) diff --git a/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/MainActivity.kt b/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/MainActivity.kt index 1b6c79f518..c93fe2b268 100644 --- a/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/MainActivity.kt +++ b/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/MainActivity.kt @@ -74,7 +74,7 @@ class MainActivity : ComponentActivity() { val sessionId = matrixAuthenticationService.getLatestSessionId()!! matrixAuthenticationService.restoreSession(sessionId) } - RoomListScreen(matrixClient = matrixClient!!).Content(modifier) + RoomListScreen(context = applicationContext, matrixClient = matrixClient!!).Content(modifier) } } } diff --git a/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt b/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt index 78ebb2aa9c..eb167f1d09 100644 --- a/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt +++ b/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt @@ -16,12 +16,15 @@ package io.element.android.samples.minimal +import android.content.Context import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.ui.Modifier import io.element.android.features.roomlist.RoomListPresenter import io.element.android.features.roomlist.RoomListView +import io.element.android.libraries.dateformatter.impl.DateFormatters import io.element.android.libraries.dateformatter.impl.DefaultLastMessageFormatter +import io.element.android.libraries.dateformatter.impl.LocalDateTimeProvider import io.element.android.libraries.matrix.MatrixClient import io.element.android.libraries.matrix.core.RoomId import kotlinx.coroutines.launch @@ -29,12 +32,17 @@ import kotlinx.datetime.Clock import kotlinx.datetime.TimeZone import java.util.Locale -class RoomListScreen(private val matrixClient: MatrixClient) { +class RoomListScreen( + private val context: Context, + private val matrixClient: MatrixClient +) { private val clock = Clock.System private val locale = Locale.getDefault() private val timeZone = TimeZone.currentSystemDefault() - private val presenter = RoomListPresenter(matrixClient, DefaultLastMessageFormatter(clock, locale, timeZone)) + private val dateTimeProvider = LocalDateTimeProvider(clock, timeZone) + private val dateFormatters = DateFormatters(context, locale, clock, timeZone) + private val presenter = RoomListPresenter(matrixClient, DefaultLastMessageFormatter(dateTimeProvider, dateFormatters)) @Composable fun Content(modifier: Modifier = Modifier) {