diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 0f5ba569ff..80df2d1392 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -199,6 +199,7 @@ dependencies {
allLibraries()
allFeatures()
implementation(projects.libraries.matrix.impl)
+ implementation(projects.libraries.dateformatter.impl)
implementation(projects.tests.uitests)
implementation(projects.anvilannotations)
anvil(projects.anvilcodegen)
diff --git a/features/messages/build.gradle.kts b/features/messages/build.gradle.kts
index eb73115c8a..316bb1e5c3 100644
--- a/features/messages/build.gradle.kts
+++ b/features/messages/build.gradle.kts
@@ -39,7 +39,7 @@ dependencies {
implementation(projects.libraries.matrixui)
implementation(projects.libraries.designsystem)
implementation(projects.libraries.textcomposer)
- implementation(projects.libraries.dateformatter)
+ implementation(projects.libraries.dateformatter.api)
implementation(libs.coil.compose)
implementation(libs.datetime)
implementation(libs.accompanist.flowlayout)
@@ -52,6 +52,7 @@ dependencies {
testImplementation(libs.test.truth)
testImplementation(libs.test.turbine)
testImplementation(projects.libraries.matrix.test)
+ testImplementation(projects.libraries.dateformatter.test)
androidTestImplementation(libs.test.junitext)
ksp(libs.showkase.processor)
diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/factories/virtual/TimelineItemDaySeparatorFactory.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/factories/virtual/TimelineItemDaySeparatorFactory.kt
index 43a6beada7..0f2a9f7ede 100644
--- a/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/factories/virtual/TimelineItemDaySeparatorFactory.kt
+++ b/features/messages/src/main/kotlin/io/element/android/features/messages/timeline/factories/virtual/TimelineItemDaySeparatorFactory.kt
@@ -18,7 +18,7 @@ package io.element.android.features.messages.timeline.factories.virtual
import io.element.android.features.messages.timeline.model.virtual.TimelineItemDaySeparatorModel
import io.element.android.features.messages.timeline.model.virtual.TimelineItemVirtualModel
-import io.element.android.libraries.dateformatter.DaySeparatorFormatter
+import io.element.android.libraries.dateformatter.api.DaySeparatorFormatter
import org.matrix.rustcomponents.sdk.VirtualTimelineItem
import javax.inject.Inject
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 fc4cecf203..7cf4b3b766 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,7 +16,6 @@
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
@@ -31,6 +30,7 @@ import io.element.android.features.messages.timeline.factories.event.TimelineIte
import io.element.android.features.messages.timeline.factories.event.TimelineItemEventFactory
import io.element.android.features.messages.timeline.factories.virtual.TimelineItemDaySeparatorFactory
import io.element.android.features.messages.timeline.factories.virtual.TimelineItemVirtualFactory
+import io.element.android.libraries.dateformatter.test.FakeDaySeparatorFormatter
internal fun aTimelineItemsFactory() = TimelineItemsFactory(
dispatchers = testCoroutineDispatchers(),
diff --git a/features/roomlist/build.gradle.kts b/features/roomlist/build.gradle.kts
index 9999262c40..89d66744bb 100644
--- a/features/roomlist/build.gradle.kts
+++ b/features/roomlist/build.gradle.kts
@@ -41,7 +41,7 @@ dependencies {
implementation(projects.libraries.designsystem)
implementation(projects.libraries.elementresources)
implementation(projects.libraries.uiStrings)
- implementation(projects.libraries.dateformatter)
+ implementation(projects.libraries.dateformatter.api)
implementation(libs.accompanist.placeholder)
testImplementation(libs.test.junit)
diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListPresenter.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListPresenter.kt
index 905b1746b0..49e53075f9 100644
--- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListPresenter.kt
+++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListPresenter.kt
@@ -31,7 +31,7 @@ import io.element.android.features.roomlist.model.RoomListRoomSummaryPlaceholder
import io.element.android.features.roomlist.model.RoomListState
import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.core.coroutine.parallelMap
-import io.element.android.libraries.dateformatter.LastMessageFormatter
+import io.element.android.libraries.dateformatter.api.LastMessageFormatter
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.matrix.api.MatrixClient
diff --git a/features/roomlist/src/test/kotlin/io/element/android/features/roomlist/FakeLastMessageFormatter.kt b/features/roomlist/src/test/kotlin/io/element/android/features/roomlist/FakeLastMessageFormatter.kt
index 997846056a..0040b9f480 100644
--- a/features/roomlist/src/test/kotlin/io/element/android/features/roomlist/FakeLastMessageFormatter.kt
+++ b/features/roomlist/src/test/kotlin/io/element/android/features/roomlist/FakeLastMessageFormatter.kt
@@ -16,7 +16,7 @@
package io.element.android.features.roomlist
-import io.element.android.libraries.dateformatter.LastMessageFormatter
+import io.element.android.libraries.dateformatter.api.LastMessageFormatter
class FakeLastMessageFormatter : LastMessageFormatter {
private var format = ""
diff --git a/features/roomlist/src/test/kotlin/io/element/android/features/roomlist/RoomListPresenterTests.kt b/features/roomlist/src/test/kotlin/io/element/android/features/roomlist/RoomListPresenterTests.kt
index 377af91261..77e7f236be 100644
--- a/features/roomlist/src/test/kotlin/io/element/android/features/roomlist/RoomListPresenterTests.kt
+++ b/features/roomlist/src/test/kotlin/io/element/android/features/roomlist/RoomListPresenterTests.kt
@@ -24,7 +24,7 @@ import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
import io.element.android.features.roomlist.model.RoomListEvents
import io.element.android.features.roomlist.model.RoomListRoomSummary
-import io.element.android.libraries.dateformatter.LastMessageFormatter
+import io.element.android.libraries.dateformatter.api.LastMessageFormatter
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.matrix.test.AN_AVATAR_URL
import io.element.android.libraries.matrix.test.AN_EXCEPTION
diff --git a/libraries/dateformatter/.gitignore b/libraries/dateformatter/api/.gitignore
similarity index 100%
rename from libraries/dateformatter/.gitignore
rename to libraries/dateformatter/api/.gitignore
diff --git a/libraries/dateformatter/api/build.gradle.kts b/libraries/dateformatter/api/build.gradle.kts
new file mode 100644
index 0000000000..45f1ada80a
--- /dev/null
+++ b/libraries/dateformatter/api/build.gradle.kts
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2022 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.
+ */
+
+// TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed
+@Suppress("DSL_SCOPE_VIOLATION")
+plugins {
+ id("io.element.android-library")
+}
+
+android {
+ namespace = "io.element.android.libraries.dateformatter.api"
+}
diff --git a/libraries/dateformatter/consumer-rules.pro b/libraries/dateformatter/api/consumer-rules.pro
similarity index 100%
rename from libraries/dateformatter/consumer-rules.pro
rename to libraries/dateformatter/api/consumer-rules.pro
diff --git a/libraries/dateformatter/proguard-rules.pro b/libraries/dateformatter/api/proguard-rules.pro
similarity index 100%
rename from libraries/dateformatter/proguard-rules.pro
rename to libraries/dateformatter/api/proguard-rules.pro
diff --git a/libraries/dateformatter/src/main/AndroidManifest.xml b/libraries/dateformatter/api/src/main/AndroidManifest.xml
similarity index 100%
rename from libraries/dateformatter/src/main/AndroidManifest.xml
rename to libraries/dateformatter/api/src/main/AndroidManifest.xml
diff --git a/libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/DaySeparatorFormatter.kt b/libraries/dateformatter/api/src/main/kotlin/io/element/android/libraries/dateformatter/api/DaySeparatorFormatter.kt
similarity index 92%
rename from libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/DaySeparatorFormatter.kt
rename to libraries/dateformatter/api/src/main/kotlin/io/element/android/libraries/dateformatter/api/DaySeparatorFormatter.kt
index 453bbb2154..682f0c5745 100644
--- a/libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/DaySeparatorFormatter.kt
+++ b/libraries/dateformatter/api/src/main/kotlin/io/element/android/libraries/dateformatter/api/DaySeparatorFormatter.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package io.element.android.libraries.dateformatter
+package io.element.android.libraries.dateformatter.api
interface DaySeparatorFormatter {
fun format(timestamp: Long): String
diff --git a/libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/LastMessageFormatter.kt b/libraries/dateformatter/api/src/main/kotlin/io/element/android/libraries/dateformatter/api/LastMessageFormatter.kt
similarity index 92%
rename from libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/LastMessageFormatter.kt
rename to libraries/dateformatter/api/src/main/kotlin/io/element/android/libraries/dateformatter/api/LastMessageFormatter.kt
index caa5886cf9..7f61dfac5d 100644
--- a/libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/LastMessageFormatter.kt
+++ b/libraries/dateformatter/api/src/main/kotlin/io/element/android/libraries/dateformatter/api/LastMessageFormatter.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package io.element.android.libraries.dateformatter
+package io.element.android.libraries.dateformatter.api
interface LastMessageFormatter {
fun format(timestamp: Long?): String
diff --git a/libraries/dateformatter/impl/.gitignore b/libraries/dateformatter/impl/.gitignore
new file mode 100644
index 0000000000..42afabfd2a
--- /dev/null
+++ b/libraries/dateformatter/impl/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/libraries/dateformatter/build.gradle.kts b/libraries/dateformatter/impl/build.gradle.kts
similarity index 86%
rename from libraries/dateformatter/build.gradle.kts
rename to libraries/dateformatter/impl/build.gradle.kts
index 60ecd95052..3e7f698c1f 100644
--- a/libraries/dateformatter/build.gradle.kts
+++ b/libraries/dateformatter/impl/build.gradle.kts
@@ -27,17 +27,19 @@ anvil {
}
android {
- namespace = "io.element.android.libraries.dateformatter"
+ namespace = "io.element.android.libraries.dateformatter.impl"
dependencies {
anvil(projects.anvilcodegen)
implementation(libs.dagger)
implementation(projects.libraries.di)
implementation(projects.anvilannotations)
+
+ implementation(projects.libraries.dateformatter.api)
api(libs.datetime)
- ksp(libs.showkase.processor)
testImplementation(libs.test.junit)
testImplementation(libs.test.truth)
+ testImplementation(projects.libraries.dateformatter.test)
}
}
diff --git a/libraries/dateformatter/impl/consumer-rules.pro b/libraries/dateformatter/impl/consumer-rules.pro
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/dateformatter/impl/proguard-rules.pro b/libraries/dateformatter/impl/proguard-rules.pro
new file mode 100644
index 0000000000..ff59496d81
--- /dev/null
+++ b/libraries/dateformatter/impl/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.kts.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/libraries/dateformatter/impl/src/main/AndroidManifest.xml b/libraries/dateformatter/impl/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..cf0e6386de
--- /dev/null
+++ b/libraries/dateformatter/impl/src/main/AndroidManifest.xml
@@ -0,0 +1,16 @@
+
+
diff --git a/libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DateFormatters.kt b/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DateFormatters.kt
similarity index 100%
rename from libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DateFormatters.kt
rename to libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DateFormatters.kt
diff --git a/libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultDaySeparatorFormatter.kt b/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultDaySeparatorFormatter.kt
similarity index 94%
rename from libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultDaySeparatorFormatter.kt
rename to libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultDaySeparatorFormatter.kt
index 29e2c87221..4c6ebbbde0 100644
--- a/libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultDaySeparatorFormatter.kt
+++ b/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultDaySeparatorFormatter.kt
@@ -17,7 +17,7 @@
package io.element.android.libraries.dateformatter.impl
import com.squareup.anvil.annotations.ContributesBinding
-import io.element.android.libraries.dateformatter.DaySeparatorFormatter
+import io.element.android.libraries.dateformatter.api.DaySeparatorFormatter
import io.element.android.libraries.di.AppScope
import javax.inject.Inject
diff --git a/libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageFormatter.kt b/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageFormatter.kt
similarity index 95%
rename from libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageFormatter.kt
rename to libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageFormatter.kt
index 753457c48f..fd7afe55e7 100644
--- a/libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageFormatter.kt
+++ b/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageFormatter.kt
@@ -17,7 +17,7 @@
package io.element.android.libraries.dateformatter.impl
import com.squareup.anvil.annotations.ContributesBinding
-import io.element.android.libraries.dateformatter.LastMessageFormatter
+import io.element.android.libraries.dateformatter.api.LastMessageFormatter
import io.element.android.libraries.di.AppScope
import javax.inject.Inject
diff --git a/libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/impl/LocalDateTimeProvider.kt b/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/LocalDateTimeProvider.kt
similarity index 100%
rename from libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/impl/LocalDateTimeProvider.kt
rename to libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/LocalDateTimeProvider.kt
diff --git a/libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/di/DateFormatterModule.kt b/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/di/DateFormatterModule.kt
similarity index 94%
rename from libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/di/DateFormatterModule.kt
rename to libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/di/DateFormatterModule.kt
index feab851a8b..352306da65 100644
--- a/libraries/dateformatter/src/main/kotlin/io/element/android/libraries/dateformatter/di/DateFormatterModule.kt
+++ b/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/di/DateFormatterModule.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package io.element.android.libraries.dateformatter.di
+package io.element.android.libraries.dateformatter.impl.di
import com.squareup.anvil.annotations.ContributesTo
import dagger.Module
diff --git a/libraries/dateformatter/src/test/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageFormatterTest.kt b/libraries/dateformatter/impl/src/test/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageFormatterTest.kt
similarity index 96%
rename from libraries/dateformatter/src/test/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageFormatterTest.kt
rename to libraries/dateformatter/impl/src/test/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageFormatterTest.kt
index cfe3e40fce..1d8390ec9f 100644
--- a/libraries/dateformatter/src/test/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageFormatterTest.kt
+++ b/libraries/dateformatter/impl/src/test/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageFormatterTest.kt
@@ -17,7 +17,8 @@
package io.element.android.libraries.dateformatter.impl
import com.google.common.truth.Truth.assertThat
-import io.element.android.libraries.dateformatter.LastMessageFormatter
+import io.element.android.libraries.dateformatter.api.LastMessageFormatter
+import io.element.android.libraries.dateformatter.test.FakeClock
import kotlinx.datetime.Instant
import kotlinx.datetime.TimeZone
import org.junit.Test
diff --git a/libraries/dateformatter/test/.gitignore b/libraries/dateformatter/test/.gitignore
new file mode 100644
index 0000000000..42afabfd2a
--- /dev/null
+++ b/libraries/dateformatter/test/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/libraries/dateformatter/test/build.gradle.kts b/libraries/dateformatter/test/build.gradle.kts
new file mode 100644
index 0000000000..afc7e66059
--- /dev/null
+++ b/libraries/dateformatter/test/build.gradle.kts
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2022 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.
+ */
+
+// TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed
+@Suppress("DSL_SCOPE_VIOLATION")
+plugins {
+ id("io.element.android-library")
+}
+
+android {
+ namespace = "io.element.android.libraries.dateformatter.test"
+
+ dependencies {
+ implementation(projects.libraries.dateformatter.api)
+ api(libs.datetime)
+ }
+}
diff --git a/libraries/dateformatter/test/consumer-rules.pro b/libraries/dateformatter/test/consumer-rules.pro
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/dateformatter/test/proguard-rules.pro b/libraries/dateformatter/test/proguard-rules.pro
new file mode 100644
index 0000000000..ff59496d81
--- /dev/null
+++ b/libraries/dateformatter/test/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.kts.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/libraries/dateformatter/test/src/main/AndroidManifest.xml b/libraries/dateformatter/test/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..cf0e6386de
--- /dev/null
+++ b/libraries/dateformatter/test/src/main/AndroidManifest.xml
@@ -0,0 +1,16 @@
+
+
diff --git a/libraries/dateformatter/src/test/kotlin/io/element/android/libraries/dateformatter/impl/FakeClock.kt b/libraries/dateformatter/test/src/main/kotlin/io/element/android/libraries/dateformatter/test/FakeClock.kt
similarity index 94%
rename from libraries/dateformatter/src/test/kotlin/io/element/android/libraries/dateformatter/impl/FakeClock.kt
rename to libraries/dateformatter/test/src/main/kotlin/io/element/android/libraries/dateformatter/test/FakeClock.kt
index 58a5495218..4716b0f5f0 100644
--- a/libraries/dateformatter/src/test/kotlin/io/element/android/libraries/dateformatter/impl/FakeClock.kt
+++ b/libraries/dateformatter/test/src/main/kotlin/io/element/android/libraries/dateformatter/test/FakeClock.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package io.element.android.libraries.dateformatter.impl
+package io.element.android.libraries.dateformatter.test
import kotlinx.datetime.Clock
import kotlinx.datetime.Instant
diff --git a/features/messages/src/test/kotlin/io/element/android/features/messages/fakes/FakeDaySeparatorFormatter.kt b/libraries/dateformatter/test/src/main/kotlin/io/element/android/libraries/dateformatter/test/FakeDaySeparatorFormatter.kt
similarity index 86%
rename from features/messages/src/test/kotlin/io/element/android/features/messages/fakes/FakeDaySeparatorFormatter.kt
rename to libraries/dateformatter/test/src/main/kotlin/io/element/android/libraries/dateformatter/test/FakeDaySeparatorFormatter.kt
index 40a52c640c..202e3ee5ae 100644
--- a/features/messages/src/test/kotlin/io/element/android/features/messages/fakes/FakeDaySeparatorFormatter.kt
+++ b/libraries/dateformatter/test/src/main/kotlin/io/element/android/libraries/dateformatter/test/FakeDaySeparatorFormatter.kt
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package io.element.android.features.messages.fakes
+package io.element.android.libraries.dateformatter.test
-import io.element.android.libraries.dateformatter.DaySeparatorFormatter
+import io.element.android.libraries.dateformatter.api.DaySeparatorFormatter
class FakeDaySeparatorFormatter : DaySeparatorFormatter {
diff --git a/plugins/src/main/kotlin/extension/DependencyHandleScope.kt b/plugins/src/main/kotlin/extension/DependencyHandleScope.kt
index 8d8f574cb1..87e6b41094 100644
--- a/plugins/src/main/kotlin/extension/DependencyHandleScope.kt
+++ b/plugins/src/main/kotlin/extension/DependencyHandleScope.kt
@@ -55,7 +55,7 @@ fun DependencyHandlerScope.allLibraries() {
implementation(project(":libraries:matrixui"))
implementation(project(":libraries:core"))
implementation(project(":libraries:architecture"))
- implementation(project(":libraries:dateformatter"))
+ implementation(project(":libraries:dateformatter:api"))
implementation(project(":libraries:di"))
}
diff --git a/samples/minimal/build.gradle.kts b/samples/minimal/build.gradle.kts
index 13686e7e61..7271b295e5 100644
--- a/samples/minimal/build.gradle.kts
+++ b/samples/minimal/build.gradle.kts
@@ -52,7 +52,8 @@ dependencies {
implementation(projects.libraries.designsystem)
implementation(projects.libraries.architecture)
implementation(projects.libraries.core)
- implementation(projects.libraries.dateformatter)
+ implementation(projects.libraries.dateformatter.api)
+ implementation(projects.libraries.dateformatter.impl)
implementation(projects.features.roomlist)
implementation(projects.features.login)
implementation(libs.coroutines.core)
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 2e5312a9f4..928fc5b4a4 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -44,7 +44,9 @@ include(":libraries:matrix:impl")
include(":libraries:matrix:test")
include(":libraries:matrixui")
include(":libraries:textcomposer")
-include(":libraries:dateformatter")
+include(":libraries:dateformatter:api")
+include(":libraries:dateformatter:impl")
+include(":libraries:dateformatter:test")
include(":libraries:elementresources")
include(":libraries:ui-strings")
include(":libraries:testtags")