Browse Source

Merge pull request #2957 from element-hq/feature/bma/konsistClassName

Konsist class name
pull/2961/head
Benoit Marty 4 months ago committed by GitHub
parent
commit
e29f919abc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      app/src/main/kotlin/io/element/android/x/di/AppModule.kt
  2. 4
      app/src/main/kotlin/io/element/android/x/initializer/TracingInitializer.kt
  3. 2
      app/src/main/kotlin/io/element/android/x/intent/DefaultIntentProvider.kt
  4. 12
      app/src/test/kotlin/io/element/android/x/intent/DefaultIntentProviderTest.kt
  5. 7
      features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/welcome/state/SharedPreferencesWelcomeScreenState.kt
  6. 2
      features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/welcome/state/WelcomeScreenStore.kt
  7. 2
      features/ftue/impl/src/test/kotlin/io/element/android/features/ftue/impl/welcome/state/InMemoryWelcomeScreenState.kt
  8. 2
      features/invite/impl/src/main/kotlin/io/element/android/features/invite/impl/response/DefaultAcceptDeclineInviteView.kt
  9. 5
      features/leaveroom/impl/src/main/kotlin/io/element/android/features/leaveroom/impl/DefaultLeaveRoomPresenter.kt
  10. 30
      features/leaveroom/impl/src/main/kotlin/io/element/android/features/leaveroom/impl/LeaveRoomPresenterImplModule.kt
  11. 25
      features/leaveroom/impl/src/test/kotlin/io/element/android/features/leaveroom/impl/DefaultLeaveRoomPresenterTest.kt
  12. 5
      features/location/impl/src/main/kotlin/io/element/android/features/location/impl/common/permissions/DefaultPermissionsPresenter.kt
  13. 2
      features/location/impl/src/main/kotlin/io/element/android/features/location/impl/send/DefaultSendLocationEntryPoint.kt
  14. 2
      features/location/impl/src/main/kotlin/io/element/android/features/location/impl/show/DefaultShowLocationEntryPoint.kt
  15. 4
      features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt
  16. 2
      features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/DefaultMessageComposerContext.kt
  17. 2
      features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt
  18. 2
      features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/utils/messagesummary/DefaultMessageSummaryFormatter.kt
  19. 4
      features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt
  20. 4
      features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/textcomposer/MessageComposerPresenterTest.kt
  21. 2
      features/networkmonitor/impl/src/main/kotlin/io/element/android/features/networkmonitor/impl/DefaultNetworkMonitor.kt
  22. 5
      features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/TracingConfigurationStore.kt
  23. 5
      features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/migration/SharedPreferencesMigrationScreenStore.kt
  24. 21
      libraries/di/src/main/kotlin/io/element/android/libraries/di/DefaultPreferences.kt
  25. 2
      libraries/mediapickers/impl/src/main/kotlin/io/element/android/libraries/mediapickers/impl/DefaultPickerProvider.kt
  26. 2
      libraries/mediaplayer/impl/src/main/kotlin/io/element/android/libraries/mediaplayer/impl/DefaultMediaPlayer.kt
  27. 4
      libraries/mediaplayer/impl/src/main/kotlin/io/element/android/libraries/mediaplayer/impl/SimplePlayer.kt
  28. 2
      libraries/mediaplayer/impl/src/test/kotlin/io/element/android/libraries/mediaplayer/impl/DefaultMediaPlayerTest.kt
  29. 9
      libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/FirebaseStore.kt
  30. 17
      libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnifiedPushStore.kt
  31. 2
      libraries/pushstore/impl/src/main/kotlin/io/element/android/libraries/pushstore/impl/clientsecret/DataStorePushClientSecretStore.kt
  32. 2
      libraries/pushstore/impl/src/main/kotlin/io/element/android/libraries/pushstore/impl/clientsecret/DefaultPushClientSecret.kt
  33. 2
      libraries/pushstore/impl/src/main/kotlin/io/element/android/libraries/pushstore/impl/clientsecret/DefaultPushClientSecretFactory.kt
  34. 4
      libraries/pushstore/impl/src/test/kotlin/io/element/android/libraries/pushstore/impl/clientsecret/DefaultPushClientSecretTest.kt
  35. 2
      libraries/voicerecorder/impl/src/main/kotlin/io/element/android/libraries/voicerecorder/impl/DefaultVoiceRecorder.kt
  36. 16
      libraries/voicerecorder/impl/src/test/kotlin/io/element/android/libraries/voicerecorder/impl/DefaultVoiceRecorderTest.kt
  37. 2
      plugins/src/main/kotlin/extension/KoverExtension.kt
  38. 12
      samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt
  39. 41
      tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistClassNameTest.kt

4
app/src/main/kotlin/io/element/android/x/di/AppModule.kt

@ -34,7 +34,6 @@ import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatch @@ -34,7 +34,6 @@ import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatch
import io.element.android.libraries.di.AppScope
import io.element.android.libraries.di.ApplicationContext
import io.element.android.libraries.di.CacheDirectory
import io.element.android.libraries.di.DefaultPreferences
import io.element.android.libraries.di.SingleIn
import io.element.android.x.BuildConfig
import io.element.android.x.R
@ -97,8 +96,7 @@ object AppModule { @@ -97,8 +96,7 @@ object AppModule {
@Provides
@SingleIn(AppScope::class)
@DefaultPreferences
fun providesDefaultSharedPreferences(@ApplicationContext context: Context): SharedPreferences {
fun providesSharedPreferences(@ApplicationContext context: Context): SharedPreferences {
return PreferenceManager.getDefaultSharedPreferences(context)
}

4
app/src/main/kotlin/io/element/android/x/initializer/TracingInitializer.kt

@ -20,7 +20,7 @@ import android.content.Context @@ -20,7 +20,7 @@ import android.content.Context
import android.system.Os
import androidx.preference.PreferenceManager
import androidx.startup.Initializer
import io.element.android.features.preferences.impl.developer.tracing.SharedPrefTracingConfigurationStore
import io.element.android.features.preferences.impl.developer.tracing.SharedPreferencesTracingConfigurationStore
import io.element.android.features.preferences.impl.developer.tracing.TargetLogLevelMapBuilder
import io.element.android.libraries.architecture.bindings
import io.element.android.libraries.matrix.api.tracing.TracingConfiguration
@ -38,7 +38,7 @@ class TracingInitializer : Initializer<Unit> { @@ -38,7 +38,7 @@ class TracingInitializer : Initializer<Unit> {
Timber.plant(tracingService.createTimberTree())
val tracingConfiguration = if (BuildConfig.DEBUG) {
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
val store = SharedPrefTracingConfigurationStore(prefs)
val store = SharedPreferencesTracingConfigurationStore(prefs)
val builder = TargetLogLevelMapBuilder(store)
TracingConfiguration(
filterConfiguration = TracingFilterConfigurations.custom(builder.getCurrentMap()),

2
app/src/main/kotlin/io/element/android/x/intent/IntentProviderImpl.kt → app/src/main/kotlin/io/element/android/x/intent/DefaultIntentProvider.kt

@ -31,7 +31,7 @@ import io.element.android.x.MainActivity @@ -31,7 +31,7 @@ import io.element.android.x.MainActivity
import javax.inject.Inject
@ContributesBinding(AppScope::class)
class IntentProviderImpl @Inject constructor(
class DefaultIntentProvider @Inject constructor(
@ApplicationContext private val context: Context,
private val deepLinkCreator: DeepLinkCreator,
) : IntentProvider {

12
app/src/test/kotlin/io/element/android/x/intent/IntentProviderImplTest.kt → app/src/test/kotlin/io/element/android/x/intent/DefaultIntentProviderTest.kt

@ -30,10 +30,10 @@ import org.robolectric.RobolectricTestRunner @@ -30,10 +30,10 @@ import org.robolectric.RobolectricTestRunner
import org.robolectric.RuntimeEnvironment
@RunWith(RobolectricTestRunner::class)
class IntentProviderImplTest {
class DefaultIntentProviderTest {
@Test
fun `test getViewRoomIntent with Session`() {
val sut = createIntentProviderImpl()
val sut = createDefaultIntentProvider()
val result = sut.getViewRoomIntent(
sessionId = A_SESSION_ID,
roomId = null,
@ -45,7 +45,7 @@ class IntentProviderImplTest { @@ -45,7 +45,7 @@ class IntentProviderImplTest {
@Test
fun `test getViewRoomIntent with Session and Room`() {
val sut = createIntentProviderImpl()
val sut = createDefaultIntentProvider()
val result = sut.getViewRoomIntent(
sessionId = A_SESSION_ID,
roomId = A_ROOM_ID,
@ -57,7 +57,7 @@ class IntentProviderImplTest { @@ -57,7 +57,7 @@ class IntentProviderImplTest {
@Test
fun `test getViewRoomIntent with Session, Room and Thread`() {
val sut = createIntentProviderImpl()
val sut = createDefaultIntentProvider()
val result = sut.getViewRoomIntent(
sessionId = A_SESSION_ID,
roomId = A_ROOM_ID,
@ -67,8 +67,8 @@ class IntentProviderImplTest { @@ -67,8 +67,8 @@ class IntentProviderImplTest {
assertThat(result.data.toString()).isEqualTo("elementx://open/@alice:server.org/!aRoomId:domain/\$aThreadId")
}
private fun createIntentProviderImpl(): IntentProviderImpl {
return IntentProviderImpl(
private fun createDefaultIntentProvider(): DefaultIntentProvider {
return DefaultIntentProvider(
context = RuntimeEnvironment.getApplication() as Context,
deepLinkCreator = DeepLinkCreator(),
)

7
features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/welcome/state/AndroidWelcomeScreenState.kt → features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/welcome/state/SharedPreferencesWelcomeScreenState.kt

@ -20,15 +20,14 @@ import android.content.SharedPreferences @@ -20,15 +20,14 @@ import android.content.SharedPreferences
import androidx.core.content.edit
import com.squareup.anvil.annotations.ContributesBinding
import io.element.android.libraries.di.AppScope
import io.element.android.libraries.di.DefaultPreferences
import io.element.android.libraries.di.SingleIn
import javax.inject.Inject
@ContributesBinding(AppScope::class)
@SingleIn(AppScope::class)
class AndroidWelcomeScreenState @Inject constructor(
@DefaultPreferences private val sharedPreferences: SharedPreferences,
) : WelcomeScreenState {
class SharedPreferencesWelcomeScreenState @Inject constructor(
private val sharedPreferences: SharedPreferences,
) : WelcomeScreenStore {
companion object {
private const val IS_WELCOME_SCREEN_SHOWN = "is_welcome_screen_shown"
}

2
features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/welcome/state/WelcomeScreenState.kt → features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/welcome/state/WelcomeScreenStore.kt

@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
package io.element.android.features.ftue.impl.welcome.state
interface WelcomeScreenState {
interface WelcomeScreenStore {
fun isWelcomeScreenNeeded(): Boolean
fun setWelcomeScreenShown()
fun reset()

2
features/ftue/impl/src/test/kotlin/io/element/android/features/ftue/impl/welcome/state/FakeWelcomeScreenState.kt → features/ftue/impl/src/test/kotlin/io/element/android/features/ftue/impl/welcome/state/InMemoryWelcomeScreenState.kt

@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
package io.element.android.features.ftue.impl.welcome.state
class FakeWelcomeScreenState : WelcomeScreenState {
class InMemoryWelcomeScreenState : WelcomeScreenStore {
private var isWelcomeScreenNeeded = true
override fun isWelcomeScreenNeeded(): Boolean {

2
features/invite/impl/src/main/kotlin/io/element/android/features/invite/impl/response/AcceptDeclineInviteViewWrapper.kt → features/invite/impl/src/main/kotlin/io/element/android/features/invite/impl/response/DefaultAcceptDeclineInviteView.kt

@ -26,7 +26,7 @@ import io.element.android.libraries.matrix.api.core.RoomId @@ -26,7 +26,7 @@ import io.element.android.libraries.matrix.api.core.RoomId
import javax.inject.Inject
@ContributesBinding(SessionScope::class)
class AcceptDeclineInviteViewWrapper @Inject constructor() : AcceptDeclineInviteView {
class DefaultAcceptDeclineInviteView @Inject constructor() : AcceptDeclineInviteView {
@Composable
override fun Render(
state: AcceptDeclineInviteState,

5
features/leaveroom/impl/src/main/kotlin/io/element/android/features/leaveroom/impl/LeaveRoomPresenterImpl.kt → features/leaveroom/impl/src/main/kotlin/io/element/android/features/leaveroom/impl/DefaultLeaveRoomPresenter.kt

@ -21,6 +21,7 @@ import androidx.compose.runtime.MutableState @@ -21,6 +21,7 @@ import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import com.squareup.anvil.annotations.ContributesBinding
import io.element.android.features.leaveroom.api.LeaveRoomEvent
import io.element.android.features.leaveroom.api.LeaveRoomPresenter
import io.element.android.features.leaveroom.api.LeaveRoomState
@ -29,6 +30,7 @@ import io.element.android.features.leaveroom.api.LeaveRoomState.Confirmation.Gen @@ -29,6 +30,7 @@ import io.element.android.features.leaveroom.api.LeaveRoomState.Confirmation.Gen
import io.element.android.features.leaveroom.api.LeaveRoomState.Confirmation.LastUserInRoom
import io.element.android.features.leaveroom.api.LeaveRoomState.Confirmation.PrivateRoom
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.RoomMembershipObserver
@ -36,7 +38,8 @@ import kotlinx.coroutines.launch @@ -36,7 +38,8 @@ import kotlinx.coroutines.launch
import timber.log.Timber
import javax.inject.Inject
class LeaveRoomPresenterImpl @Inject constructor(
@ContributesBinding(SessionScope::class)
class DefaultLeaveRoomPresenter @Inject constructor(
private val client: MatrixClient,
private val roomMembershipObserver: RoomMembershipObserver,
private val dispatchers: CoroutineDispatchers,

30
features/leaveroom/impl/src/main/kotlin/io/element/android/features/leaveroom/impl/LeaveRoomPresenterImplModule.kt

@ -1,30 +0,0 @@ @@ -1,30 +0,0 @@
/*
* 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.leaveroom.impl
import com.squareup.anvil.annotations.ContributesTo
import dagger.Binds
import dagger.Module
import io.element.android.features.leaveroom.api.LeaveRoomPresenter
import io.element.android.libraries.di.SessionScope
@Module
@ContributesTo(SessionScope::class)
interface LeaveRoomPresenterImplModule {
@Binds
fun leaveRoomPresenter(leaveRoomPresenter: LeaveRoomPresenterImpl): LeaveRoomPresenter
}

25
features/leaveroom/impl/src/test/kotlin/io/element/android/features/leaveroom/impl/LeaveRoomPresenterImplTest.kt → features/leaveroom/impl/src/test/kotlin/io/element/android/features/leaveroom/impl/DefaultLeaveRoomPresenterTest.kt

@ -21,7 +21,6 @@ import app.cash.molecule.moleculeFlow @@ -21,7 +21,6 @@ import app.cash.molecule.moleculeFlow
import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
import io.element.android.features.leaveroom.api.LeaveRoomEvent
import io.element.android.features.leaveroom.api.LeaveRoomPresenter
import io.element.android.features.leaveroom.api.LeaveRoomState
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.room.RoomMembershipObserver
@ -37,13 +36,13 @@ import kotlinx.coroutines.test.runTest @@ -37,13 +36,13 @@ import kotlinx.coroutines.test.runTest
import org.junit.Rule
import org.junit.Test
class LeaveRoomPresenterImplTest {
class DefaultLeaveRoomPresenterTest {
@get:Rule
val warmUpRule = WarmUpRule()
@Test
fun `present - initial state hides all dialogs`() = runTest {
val presenter = createLeaveRoomPresenter()
val presenter = createDefaultLeaveRoomPresenter()
moleculeFlow(RecompositionMode.Immediate) {
presenter.present()
}.test {
@ -56,7 +55,7 @@ class LeaveRoomPresenterImplTest { @@ -56,7 +55,7 @@ class LeaveRoomPresenterImplTest {
@Test
fun `present - show generic confirmation`() = runTest {
val presenter = createLeaveRoomPresenter(
val presenter = createDefaultLeaveRoomPresenter(
client = FakeMatrixClient().apply {
givenGetRoomResult(
roomId = A_ROOM_ID,
@ -76,7 +75,7 @@ class LeaveRoomPresenterImplTest { @@ -76,7 +75,7 @@ class LeaveRoomPresenterImplTest {
@Test
fun `present - show private room confirmation`() = runTest {
val presenter = createLeaveRoomPresenter(
val presenter = createDefaultLeaveRoomPresenter(
client = FakeMatrixClient().apply {
givenGetRoomResult(
roomId = A_ROOM_ID,
@ -96,7 +95,7 @@ class LeaveRoomPresenterImplTest { @@ -96,7 +95,7 @@ class LeaveRoomPresenterImplTest {
@Test
fun `present - show last user in room confirmation`() = runTest {
val presenter = createLeaveRoomPresenter(
val presenter = createDefaultLeaveRoomPresenter(
client = FakeMatrixClient().apply {
givenGetRoomResult(
roomId = A_ROOM_ID,
@ -116,7 +115,7 @@ class LeaveRoomPresenterImplTest { @@ -116,7 +115,7 @@ class LeaveRoomPresenterImplTest {
@Test
fun `present - show DM confirmation`() = runTest {
val presenter = createLeaveRoomPresenter(
val presenter = createDefaultLeaveRoomPresenter(
client = FakeMatrixClient().apply {
givenGetRoomResult(
roomId = A_ROOM_ID,
@ -137,7 +136,7 @@ class LeaveRoomPresenterImplTest { @@ -137,7 +136,7 @@ class LeaveRoomPresenterImplTest {
@Test
fun `present - leaving a room leaves the room`() = runTest {
val roomMembershipObserver = RoomMembershipObserver()
val presenter = createLeaveRoomPresenter(
val presenter = createDefaultLeaveRoomPresenter(
client = FakeMatrixClient().apply {
givenGetRoomResult(
roomId = A_ROOM_ID,
@ -159,7 +158,7 @@ class LeaveRoomPresenterImplTest { @@ -159,7 +158,7 @@ class LeaveRoomPresenterImplTest {
@Test
fun `present - show error if leave room fails`() = runTest {
val presenter = createLeaveRoomPresenter(
val presenter = createDefaultLeaveRoomPresenter(
client = FakeMatrixClient().apply {
givenGetRoomResult(
roomId = A_ROOM_ID,
@ -183,7 +182,7 @@ class LeaveRoomPresenterImplTest { @@ -183,7 +182,7 @@ class LeaveRoomPresenterImplTest {
@Test
fun `present - show progress indicator while leaving a room`() = runTest {
val presenter = createLeaveRoomPresenter(
val presenter = createDefaultLeaveRoomPresenter(
client = FakeMatrixClient().apply {
givenGetRoomResult(
roomId = A_ROOM_ID,
@ -205,7 +204,7 @@ class LeaveRoomPresenterImplTest { @@ -205,7 +204,7 @@ class LeaveRoomPresenterImplTest {
@Test
fun `present - hide error hides the error`() = runTest {
val presenter = createLeaveRoomPresenter(
val presenter = createDefaultLeaveRoomPresenter(
client = FakeMatrixClient().apply {
givenGetRoomResult(
roomId = A_ROOM_ID,
@ -231,10 +230,10 @@ class LeaveRoomPresenterImplTest { @@ -231,10 +230,10 @@ class LeaveRoomPresenterImplTest {
}
}
private fun TestScope.createLeaveRoomPresenter(
private fun TestScope.createDefaultLeaveRoomPresenter(
client: MatrixClient = FakeMatrixClient(),
roomMembershipObserver: RoomMembershipObserver = RoomMembershipObserver(),
): LeaveRoomPresenter = LeaveRoomPresenterImpl(
): DefaultLeaveRoomPresenter = DefaultLeaveRoomPresenter(
client = client,
roomMembershipObserver = roomMembershipObserver,
dispatchers = testCoroutineDispatchers(false),

5
features/location/impl/src/main/kotlin/io/element/android/features/location/impl/common/permissions/PermissionsPresenterImpl.kt → features/location/impl/src/main/kotlin/io/element/android/features/location/impl/common/permissions/DefaultPermissionsPresenter.kt

@ -26,13 +26,14 @@ import dagger.assisted.AssistedFactory @@ -26,13 +26,14 @@ import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import io.element.android.libraries.di.AppScope
class PermissionsPresenterImpl @AssistedInject constructor(
@Suppress("unused")
class DefaultPermissionsPresenter @AssistedInject constructor(
@Assisted private val permissions: List<String>
) : PermissionsPresenter {
@AssistedFactory
@ContributesBinding(AppScope::class)
interface Factory : PermissionsPresenter.Factory {
override fun create(permissions: List<String>): PermissionsPresenterImpl
override fun create(permissions: List<String>): DefaultPermissionsPresenter
}
@OptIn(ExperimentalPermissionsApi::class)

2
features/location/impl/src/main/kotlin/io/element/android/features/location/impl/send/SendLocationEntryPointImpl.kt → features/location/impl/src/main/kotlin/io/element/android/features/location/impl/send/DefaultSendLocationEntryPoint.kt

@ -25,7 +25,7 @@ import io.element.android.libraries.di.AppScope @@ -25,7 +25,7 @@ import io.element.android.libraries.di.AppScope
import javax.inject.Inject
@ContributesBinding(AppScope::class)
class SendLocationEntryPointImpl @Inject constructor() : SendLocationEntryPoint {
class DefaultSendLocationEntryPoint @Inject constructor() : SendLocationEntryPoint {
override fun createNode(
parentNode: Node,
buildContext: BuildContext

2
features/location/impl/src/main/kotlin/io/element/android/features/location/impl/show/ShowLocationEntryPointImpl.kt → features/location/impl/src/main/kotlin/io/element/android/features/location/impl/show/DefaultShowLocationEntryPoint.kt

@ -25,7 +25,7 @@ import io.element.android.libraries.di.AppScope @@ -25,7 +25,7 @@ import io.element.android.libraries.di.AppScope
import javax.inject.Inject
@ContributesBinding(AppScope::class)
class ShowLocationEntryPointImpl @Inject constructor() : ShowLocationEntryPoint {
class DefaultShowLocationEntryPoint @Inject constructor() : ShowLocationEntryPoint {
override fun createNode(parentNode: Node, buildContext: BuildContext, inputs: ShowLocationEntryPoint.Inputs): Node {
return parentNode.createNode<ShowLocationNode>(buildContext, listOf(inputs))
}

4
features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt

@ -72,7 +72,7 @@ import io.element.android.features.messages.impl.timeline.model.event.TimelineIt @@ -72,7 +72,7 @@ import io.element.android.features.messages.impl.timeline.model.event.TimelineIt
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemUnknownContent
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVideoContent
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVoiceContent
import io.element.android.features.messages.impl.utils.messagesummary.MessageSummaryFormatterImpl
import io.element.android.features.messages.impl.utils.messagesummary.DefaultMessageSummaryFormatter
import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.components.list.ListItemContent
@ -229,7 +229,7 @@ private fun MessageSummary(event: TimelineItem.Event, modifier: Modifier = Modif @@ -229,7 +229,7 @@ private fun MessageSummary(event: TimelineItem.Event, modifier: Modifier = Modif
}
val context = LocalContext.current
val formatter = remember(context) { MessageSummaryFormatterImpl(context) }
val formatter = remember(context) { DefaultMessageSummaryFormatter(context) }
val textContent = remember(event.content) { formatter.format(event) }
when (event.content) {

2
features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerContextImpl.kt → features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/DefaultMessageComposerContext.kt

@ -28,7 +28,7 @@ import javax.inject.Inject @@ -28,7 +28,7 @@ import javax.inject.Inject
@SingleIn(RoomScope::class)
@ContributesBinding(RoomScope::class)
class MessageComposerContextImpl @Inject constructor() : MessageComposerContext {
class DefaultMessageComposerContext @Inject constructor() : MessageComposerContext {
override var composerMode: MessageComposerMode by mutableStateOf(MessageComposerMode.Normal)
internal set
}

2
features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt

@ -100,7 +100,7 @@ class MessageComposerPresenter @Inject constructor( @@ -100,7 +100,7 @@ class MessageComposerPresenter @Inject constructor(
private val mediaSender: MediaSender,
private val snackbarDispatcher: SnackbarDispatcher,
private val analyticsService: AnalyticsService,
private val messageComposerContext: MessageComposerContextImpl,
private val messageComposerContext: DefaultMessageComposerContext,
private val richTextEditorStateFactory: RichTextEditorStateFactory,
private val currentSessionIdHolder: CurrentSessionIdHolder,
private val permalinkParser: PermalinkParser,

2
features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/utils/messagesummary/MessageSummaryFormatterImpl.kt → features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/utils/messagesummary/DefaultMessageSummaryFormatter.kt

@ -40,7 +40,7 @@ import io.element.android.libraries.ui.strings.CommonStrings @@ -40,7 +40,7 @@ import io.element.android.libraries.ui.strings.CommonStrings
import javax.inject.Inject
@ContributesBinding(RoomScope::class)
class MessageSummaryFormatterImpl @Inject constructor(
class DefaultMessageSummaryFormatter @Inject constructor(
@ApplicationContext private val context: Context,
) : MessageSummaryFormatter {
companion object {

4
features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt

@ -27,7 +27,7 @@ import io.element.android.features.messages.impl.actionlist.ActionListState @@ -27,7 +27,7 @@ import io.element.android.features.messages.impl.actionlist.ActionListState
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
import io.element.android.features.messages.impl.fixtures.aMessageEvent
import io.element.android.features.messages.impl.fixtures.aTimelineItemsFactory
import io.element.android.features.messages.impl.messagecomposer.MessageComposerContextImpl
import io.element.android.features.messages.impl.messagecomposer.DefaultMessageComposerContext
import io.element.android.features.messages.impl.messagecomposer.MessageComposerPresenter
import io.element.android.features.messages.impl.messagesummary.FakeMessageSummaryFormatter
import io.element.android.features.messages.impl.textcomposer.TestRichTextEditorStateFactory
@ -793,7 +793,7 @@ class MessagesPresenterTest { @@ -793,7 +793,7 @@ class MessagesPresenterTest {
mediaSender = mediaSender,
snackbarDispatcher = SnackbarDispatcher(),
analyticsService = analyticsService,
messageComposerContext = MessageComposerContextImpl(),
messageComposerContext = DefaultMessageComposerContext(),
richTextEditorStateFactory = TestRichTextEditorStateFactory(),
permissionsPresenterFactory = permissionsPresenterFactory,
currentSessionIdHolder = CurrentSessionIdHolder(FakeMatrixClient(A_SESSION_ID)),

4
features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/textcomposer/MessageComposerPresenterTest.kt

@ -27,7 +27,7 @@ import app.cash.turbine.test @@ -27,7 +27,7 @@ import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
import im.vector.app.features.analytics.plan.Composer
import io.element.android.features.messages.impl.messagecomposer.AttachmentsState
import io.element.android.features.messages.impl.messagecomposer.MessageComposerContextImpl
import io.element.android.features.messages.impl.messagecomposer.DefaultMessageComposerContext
import io.element.android.features.messages.impl.messagecomposer.MessageComposerEvents
import io.element.android.features.messages.impl.messagecomposer.MessageComposerPresenter
import io.element.android.features.messages.impl.messagecomposer.MessageComposerState
@ -1049,7 +1049,7 @@ class MessageComposerPresenterTest { @@ -1049,7 +1049,7 @@ class MessageComposerPresenterTest {
MediaSender(mediaPreProcessor, room),
snackbarDispatcher,
analyticsService,
MessageComposerContextImpl(),
DefaultMessageComposerContext(),
TestRichTextEditorStateFactory(),
currentSessionIdHolder = CurrentSessionIdHolder(FakeMatrixClient(A_SESSION_ID)),
permissionsPresenterFactory = FakePermissionsPresenterFactory(permissionPresenter),

2
features/networkmonitor/impl/src/main/kotlin/io/element/android/features/networkmonitor/impl/NetworkMonitorImpl.kt → features/networkmonitor/impl/src/main/kotlin/io/element/android/features/networkmonitor/impl/DefaultNetworkMonitor.kt

@ -46,7 +46,7 @@ import javax.inject.Inject @@ -46,7 +46,7 @@ import javax.inject.Inject
@ContributesBinding(scope = AppScope::class)
@SingleIn(AppScope::class)
class NetworkMonitorImpl @Inject constructor(
class DefaultNetworkMonitor @Inject constructor(
@ApplicationContext context: Context,
appCoroutineScope: CoroutineScope,
) : NetworkMonitor {

5
features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/TracingConfigurationStore.kt

@ -20,7 +20,6 @@ import android.content.SharedPreferences @@ -20,7 +20,6 @@ import android.content.SharedPreferences
import androidx.core.content.edit
import com.squareup.anvil.annotations.ContributesBinding
import io.element.android.libraries.di.AppScope
import io.element.android.libraries.di.DefaultPreferences
import io.element.android.libraries.matrix.api.tracing.LogLevel
import io.element.android.libraries.matrix.api.tracing.Target
import javax.inject.Inject
@ -32,8 +31,8 @@ interface TracingConfigurationStore { @@ -32,8 +31,8 @@ interface TracingConfigurationStore {
}
@ContributesBinding(AppScope::class)
class SharedPrefTracingConfigurationStore @Inject constructor(
@DefaultPreferences private val sharedPreferences: SharedPreferences
class SharedPreferencesTracingConfigurationStore @Inject constructor(
private val sharedPreferences: SharedPreferences
) : TracingConfigurationStore {
override fun getLogLevel(target: Target): LogLevel? {
return sharedPreferences.getString("$KEY_PREFIX${target.name}", null)

5
features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/migration/SharedPrefsMigrationScreenStore.kt → features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/migration/SharedPreferencesMigrationScreenStore.kt

@ -22,13 +22,12 @@ import com.squareup.anvil.annotations.ContributesBinding @@ -22,13 +22,12 @@ import com.squareup.anvil.annotations.ContributesBinding
import io.element.android.features.roomlist.api.migration.MigrationScreenStore
import io.element.android.libraries.androidutils.hash.hash
import io.element.android.libraries.di.AppScope
import io.element.android.libraries.di.DefaultPreferences
import io.element.android.libraries.matrix.api.core.SessionId
import javax.inject.Inject
@ContributesBinding(AppScope::class)
class SharedPrefsMigrationScreenStore @Inject constructor(
@DefaultPreferences private val sharedPreferences: SharedPreferences,
class SharedPreferencesMigrationScreenStore @Inject constructor(
private val sharedPreferences: SharedPreferences,
) : MigrationScreenStore {
override fun isMigrationScreenNeeded(sessionId: SessionId): Boolean {
return sharedPreferences.getBoolean(sessionId.toKey(), false).not()

21
libraries/di/src/main/kotlin/io/element/android/libraries/di/DefaultPreferences.kt

@ -1,21 +0,0 @@ @@ -1,21 +0,0 @@
/*
* 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.
*/
package io.element.android.libraries.di
import javax.inject.Qualifier
@Qualifier annotation class DefaultPreferences

2
libraries/mediapickers/impl/src/main/kotlin/io/element/android/libraries/mediapickers/impl/PickerProviderImpl.kt → libraries/mediapickers/impl/src/main/kotlin/io/element/android/libraries/mediapickers/impl/DefaultPickerProvider.kt

@ -37,7 +37,7 @@ import java.util.UUID @@ -37,7 +37,7 @@ import java.util.UUID
import javax.inject.Inject
@ContributesBinding(AppScope::class)
class PickerProviderImpl(private val isInTest: Boolean) : PickerProvider {
class DefaultPickerProvider(private val isInTest: Boolean) : PickerProvider {
@Inject
constructor() : this(false)

2
libraries/mediaplayer/impl/src/main/kotlin/io/element/android/libraries/mediaplayer/impl/MediaPlayerImpl.kt → libraries/mediaplayer/impl/src/main/kotlin/io/element/android/libraries/mediaplayer/impl/DefaultMediaPlayer.kt

@ -43,7 +43,7 @@ import kotlin.time.Duration.Companion.seconds @@ -43,7 +43,7 @@ import kotlin.time.Duration.Companion.seconds
*/
@ContributesBinding(RoomScope::class)
@SingleIn(RoomScope::class)
class MediaPlayerImpl @Inject constructor(
class DefaultMediaPlayer @Inject constructor(
private val player: SimplePlayer,
) : MediaPlayer {
private val listener = object : SimplePlayer.Listener {

4
libraries/mediaplayer/impl/src/main/kotlin/io/element/android/libraries/mediaplayer/impl/SimplePlayer.kt

@ -55,13 +55,13 @@ object SimplePlayerModule { @@ -55,13 +55,13 @@ object SimplePlayerModule {
@Provides
fun simplePlayerProvider(
@ApplicationContext context: Context,
): SimplePlayer = SimplePlayerImpl(ExoPlayer.Builder(context).build())
): SimplePlayer = DefaultSimplePlayer(ExoPlayer.Builder(context).build())
}
/**
* Default implementation of [SimplePlayer] backed by a media3 [Player].
*/
class SimplePlayerImpl(
class DefaultSimplePlayer(
private val p: Player
) : SimplePlayer {
override fun addListener(listener: SimplePlayer.Listener) {

2
libraries/mediaplayer/impl/src/test/kotlin/io/element/android/libraries/mediaplayer/impl/MediaPlayerImplTest.kt → libraries/mediaplayer/impl/src/test/kotlin/io/element/android/libraries/mediaplayer/impl/DefaultMediaPlayerTest.kt

@ -19,7 +19,7 @@ package io.element.android.libraries.mediaplayer.impl @@ -19,7 +19,7 @@ package io.element.android.libraries.mediaplayer.impl
import kotlinx.coroutines.test.runTest
import org.junit.Test
class MediaPlayerImplTest {
class DefaultMediaPlayerTest {
@Test
fun `default test`() = runTest {
// TODO

9
libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/FirebaseStore.kt

@ -20,7 +20,6 @@ import android.content.SharedPreferences @@ -20,7 +20,6 @@ import android.content.SharedPreferences
import androidx.core.content.edit
import com.squareup.anvil.annotations.ContributesBinding
import io.element.android.libraries.di.AppScope
import io.element.android.libraries.di.DefaultPreferences
import javax.inject.Inject
/**
@ -32,15 +31,15 @@ interface FirebaseStore { @@ -32,15 +31,15 @@ interface FirebaseStore {
}
@ContributesBinding(AppScope::class)
class DefaultFirebaseStore @Inject constructor(
@DefaultPreferences private val sharedPrefs: SharedPreferences,
class SharedPreferencesFirebaseStore @Inject constructor(
private val sharedPreferences: SharedPreferences,
) : FirebaseStore {
override fun getFcmToken(): String? {
return sharedPrefs.getString(PREFS_KEY_FCM_TOKEN, null)
return sharedPreferences.getString(PREFS_KEY_FCM_TOKEN, null)
}
override fun storeFcmToken(token: String?) {
sharedPrefs.edit {
sharedPreferences.edit {
putString(PREFS_KEY_FCM_TOKEN, token)
}
}

17
libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnifiedPushStore.kt

@ -22,7 +22,6 @@ import androidx.core.content.edit @@ -22,7 +22,6 @@ import androidx.core.content.edit
import com.squareup.anvil.annotations.ContributesBinding
import io.element.android.libraries.di.AppScope
import io.element.android.libraries.di.ApplicationContext
import io.element.android.libraries.di.DefaultPreferences
import io.element.android.libraries.matrix.api.core.UserId
import javax.inject.Inject
@ -36,9 +35,9 @@ interface UnifiedPushStore { @@ -36,9 +35,9 @@ interface UnifiedPushStore {
}
@ContributesBinding(AppScope::class)
class DefaultUnifiedPushStore @Inject constructor(
class SharedPreferencesUnifiedPushStore @Inject constructor(
@ApplicationContext val context: Context,
@DefaultPreferences private val defaultPrefs: SharedPreferences,
private val sharedPreferences: SharedPreferences,
) : UnifiedPushStore {
/**
* Retrieves the UnifiedPush Endpoint.
@ -47,7 +46,7 @@ class DefaultUnifiedPushStore @Inject constructor( @@ -47,7 +46,7 @@ class DefaultUnifiedPushStore @Inject constructor(
* @return the UnifiedPush Endpoint or null if not received
*/
override fun getEndpoint(clientSecret: String): String? {
return defaultPrefs.getString(PREFS_ENDPOINT_OR_TOKEN + clientSecret, null)
return sharedPreferences.getString(PREFS_ENDPOINT_OR_TOKEN + clientSecret, null)
}
/**
@ -57,7 +56,7 @@ class DefaultUnifiedPushStore @Inject constructor( @@ -57,7 +56,7 @@ class DefaultUnifiedPushStore @Inject constructor(
* @param endpoint the endpoint to store
*/
override fun storeUpEndpoint(clientSecret: String, endpoint: String?) {
defaultPrefs.edit {
sharedPreferences.edit {
putString(PREFS_ENDPOINT_OR_TOKEN + clientSecret, endpoint)
}
}
@ -69,7 +68,7 @@ class DefaultUnifiedPushStore @Inject constructor( @@ -69,7 +68,7 @@ class DefaultUnifiedPushStore @Inject constructor(
* @return the Push Gateway or null if not defined
*/
override fun getPushGateway(clientSecret: String): String? {
return defaultPrefs.getString(PREFS_PUSH_GATEWAY + clientSecret, null)
return sharedPreferences.getString(PREFS_PUSH_GATEWAY + clientSecret, null)
}
/**
@ -79,17 +78,17 @@ class DefaultUnifiedPushStore @Inject constructor( @@ -79,17 +78,17 @@ class DefaultUnifiedPushStore @Inject constructor(
* @param gateway the push gateway to store
*/
override fun storePushGateway(clientSecret: String, gateway: String?) {
defaultPrefs.edit {
sharedPreferences.edit {
putString(PREFS_PUSH_GATEWAY + clientSecret, gateway)
}
}
override fun getDistributorValue(userId: UserId): String? {
return defaultPrefs.getString(PREFS_DISTRIBUTOR + userId, null)
return sharedPreferences.getString(PREFS_DISTRIBUTOR + userId, null)
}
override fun setDistributorValue(userId: UserId, value: String) {
defaultPrefs.edit {
sharedPreferences.edit {
putString(PREFS_DISTRIBUTOR + userId, value)
}
}

2
libraries/pushstore/impl/src/main/kotlin/io/element/android/libraries/pushstore/impl/clientsecret/PushClientSecretStoreDataStore.kt → libraries/pushstore/impl/src/main/kotlin/io/element/android/libraries/pushstore/impl/clientsecret/DataStorePushClientSecretStore.kt

@ -33,7 +33,7 @@ import javax.inject.Inject @@ -33,7 +33,7 @@ import javax.inject.Inject
private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "push_client_secret_store")
@ContributesBinding(AppScope::class)
class PushClientSecretStoreDataStore @Inject constructor(
class DataStorePushClientSecretStore @Inject constructor(
@ApplicationContext private val context: Context,
) : PushClientSecretStore {
override suspend fun storeSecret(userId: SessionId, clientSecret: String) {

2
libraries/pushstore/impl/src/main/kotlin/io/element/android/libraries/pushstore/impl/clientsecret/PushClientSecretImpl.kt → libraries/pushstore/impl/src/main/kotlin/io/element/android/libraries/pushstore/impl/clientsecret/DefaultPushClientSecret.kt

@ -29,7 +29,7 @@ import javax.inject.Inject @@ -29,7 +29,7 @@ import javax.inject.Inject
@SingleIn(AppScope::class)
@ContributesBinding(AppScope::class, boundType = PushClientSecret::class)
class PushClientSecretImpl @Inject constructor(
class DefaultPushClientSecret @Inject constructor(
private val pushClientSecretFactory: PushClientSecretFactory,
private val pushClientSecretStore: PushClientSecretStore,
private val sessionObserver: SessionObserver,

2
libraries/pushstore/impl/src/main/kotlin/io/element/android/libraries/pushstore/impl/clientsecret/PushClientSecretFactoryImpl.kt → libraries/pushstore/impl/src/main/kotlin/io/element/android/libraries/pushstore/impl/clientsecret/DefaultPushClientSecretFactory.kt

@ -23,7 +23,7 @@ import java.util.UUID @@ -23,7 +23,7 @@ import java.util.UUID
import javax.inject.Inject
@ContributesBinding(AppScope::class)
class PushClientSecretFactoryImpl @Inject constructor() : PushClientSecretFactory {
class DefaultPushClientSecretFactory @Inject constructor() : PushClientSecretFactory {
override fun create(): String {
return UUID.randomUUID().toString()
}

4
libraries/pushstore/impl/src/test/kotlin/io/element/android/libraries/pushstore/impl/clientsecret/PushClientSecretImplTest.kt → libraries/pushstore/impl/src/test/kotlin/io/element/android/libraries/pushstore/impl/clientsecret/DefaultPushClientSecretTest.kt

@ -28,12 +28,12 @@ private val A_USER_ID_1 = SessionId("@A_USER_ID_1:domain") @@ -28,12 +28,12 @@ private val A_USER_ID_1 = SessionId("@A_USER_ID_1:domain")
private const val A_UNKNOWN_SECRET = "A_UNKNOWN_SECRET"
internal class PushClientSecretImplTest {
internal class DefaultPushClientSecretTest {
@Test
fun test() = runTest {
val factory = FakePushClientSecretFactory()
val store = InMemoryPushClientSecretStore()
val sut = PushClientSecretImpl(factory, store, NoOpSessionObserver())
val sut = DefaultPushClientSecret(factory, store, NoOpSessionObserver())
val secret0 = factory.getSecretForUser(0)
val secret1 = factory.getSecretForUser(1)

2
libraries/voicerecorder/impl/src/main/kotlin/io/element/android/libraries/voicerecorder/impl/VoiceRecorderImpl.kt → libraries/voicerecorder/impl/src/main/kotlin/io/element/android/libraries/voicerecorder/impl/DefaultVoiceRecorder.kt

@ -51,7 +51,7 @@ import kotlin.time.TimeSource @@ -51,7 +51,7 @@ import kotlin.time.TimeSource
@SingleIn(RoomScope::class)
@ContributesBinding(RoomScope::class)
class VoiceRecorderImpl @Inject constructor(
class DefaultVoiceRecorder @Inject constructor(
private val dispatchers: CoroutineDispatchers,
private val timeSource: TimeSource,
private val audioReaderFactory: AudioReader.Factory,

16
libraries/voicerecorder/impl/src/test/kotlin/io/element/android/libraries/voicerecorder/impl/VoiceRecorderImplTest.kt → libraries/voicerecorder/impl/src/test/kotlin/io/element/android/libraries/voicerecorder/impl/DefaultVoiceRecorderTest.kt

@ -44,13 +44,13 @@ import kotlin.time.Duration.Companion.minutes @@ -44,13 +44,13 @@ import kotlin.time.Duration.Companion.minutes
import kotlin.time.Duration.Companion.seconds
import kotlin.time.TestTimeSource
class VoiceRecorderImplTest {
class DefaultVoiceRecorderTest {
private val fakeFileSystem = FakeFileSystem()
private val timeSource = TestTimeSource()
@Test
fun `it emits the initial state`() = runTest {
val voiceRecorder = createVoiceRecorder()
val voiceRecorder = createDefaultVoiceRecorder()
voiceRecorder.state.test {
assertThat(awaitItem()).isEqualTo(VoiceRecorderState.Idle)
}
@ -58,7 +58,7 @@ class VoiceRecorderImplTest { @@ -58,7 +58,7 @@ class VoiceRecorderImplTest {
@Test
fun `when recording, it emits the recording state`() = runTest {
val voiceRecorder = createVoiceRecorder()
val voiceRecorder = createDefaultVoiceRecorder()
voiceRecorder.state.test {
assertThat(awaitItem()).isEqualTo(VoiceRecorderState.Idle)
@ -73,7 +73,7 @@ class VoiceRecorderImplTest { @@ -73,7 +73,7 @@ class VoiceRecorderImplTest {
@Test
fun `when elapsed time reaches 30 minutes, it stops recording`() = runTest {
val voiceRecorder = createVoiceRecorder()
val voiceRecorder = createDefaultVoiceRecorder()
voiceRecorder.state.test {
assertThat(awaitItem()).isEqualTo(VoiceRecorderState.Idle)
@ -96,7 +96,7 @@ class VoiceRecorderImplTest { @@ -96,7 +96,7 @@ class VoiceRecorderImplTest {
@Test
fun `when stopped, it provides a file and duration`() = runTest {
val voiceRecorder = createVoiceRecorder()
val voiceRecorder = createDefaultVoiceRecorder()
voiceRecorder.state.test {
assertThat(awaitItem()).isEqualTo(VoiceRecorderState.Idle)
@ -119,7 +119,7 @@ class VoiceRecorderImplTest { @@ -119,7 +119,7 @@ class VoiceRecorderImplTest {
@Test
fun `when cancelled, it deletes the file`() = runTest {
val voiceRecorder = createVoiceRecorder()
val voiceRecorder = createDefaultVoiceRecorder()
voiceRecorder.state.test {
assertThat(awaitItem()).isEqualTo(VoiceRecorderState.Idle)
@ -131,9 +131,9 @@ class VoiceRecorderImplTest { @@ -131,9 +131,9 @@ class VoiceRecorderImplTest {
}
}
private fun TestScope.createVoiceRecorder(): VoiceRecorderImpl {
private fun TestScope.createDefaultVoiceRecorder(): DefaultVoiceRecorder {
val fileConfig = VoiceRecorderModule.provideVoiceFileConfig()
return VoiceRecorderImpl(
return DefaultVoiceRecorder(
dispatchers = testCoroutineDispatchers(),
timeSource = timeSource,
audioReaderFactory = FakeAudioReaderFactory(

2
plugins/src/main/kotlin/extension/KoverExtension.kt

@ -162,6 +162,8 @@ fun Project.setupKover() { @@ -162,6 +162,8 @@ fun Project.setupKover() {
"io.element.android.appnav.loggedin.LoggedInPresenter$*",
// Some options can't be tested at the moment
"io.element.android.features.preferences.impl.developer.DeveloperSettingsPresenter$*",
// Need an Activity to use rememberMultiplePermissionsState
"io.element.android.features.location.impl.common.permissions.DefaultPermissionsPresenter",
"*Presenter\$present\$*",
)
}

12
samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt

@ -22,8 +22,8 @@ import androidx.compose.runtime.DisposableEffect @@ -22,8 +22,8 @@ import androidx.compose.runtime.DisposableEffect
import androidx.compose.ui.Modifier
import io.element.android.features.invite.impl.response.AcceptDeclineInvitePresenter
import io.element.android.features.invite.impl.response.AcceptDeclineInviteView
import io.element.android.features.leaveroom.impl.LeaveRoomPresenterImpl
import io.element.android.features.networkmonitor.impl.NetworkMonitorImpl
import io.element.android.features.leaveroom.impl.DefaultLeaveRoomPresenter
import io.element.android.features.networkmonitor.impl.DefaultNetworkMonitor
import io.element.android.features.roomlist.impl.RoomListPresenter
import io.element.android.features.roomlist.impl.RoomListView
import io.element.android.features.roomlist.impl.datasource.RoomListDataSource
@ -31,7 +31,7 @@ import io.element.android.features.roomlist.impl.datasource.RoomListRoomSummaryF @@ -31,7 +31,7 @@ import io.element.android.features.roomlist.impl.datasource.RoomListRoomSummaryF
import io.element.android.features.roomlist.impl.filters.RoomListFiltersPresenter
import io.element.android.features.roomlist.impl.filters.selection.DefaultFilterSelectionStrategy
import io.element.android.features.roomlist.impl.migration.MigrationScreenPresenter
import io.element.android.features.roomlist.impl.migration.SharedPrefsMigrationScreenStore
import io.element.android.features.roomlist.impl.migration.SharedPreferencesMigrationScreenStore
import io.element.android.features.roomlist.impl.search.RoomListSearchDataSource
import io.element.android.features.roomlist.impl.search.RoomListSearchPresenter
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
@ -97,9 +97,9 @@ class RoomListScreen( @@ -97,9 +97,9 @@ class RoomListScreen(
)
private val presenter = RoomListPresenter(
client = matrixClient,
networkMonitor = NetworkMonitorImpl(context, Singleton.appScope),
networkMonitor = DefaultNetworkMonitor(context, Singleton.appScope),
snackbarDispatcher = SnackbarDispatcher(),
leaveRoomPresenter = LeaveRoomPresenterImpl(matrixClient, RoomMembershipObserver(), coroutineDispatchers),
leaveRoomPresenter = DefaultLeaveRoomPresenter(matrixClient, RoomMembershipObserver(), coroutineDispatchers),
roomListDataSource = RoomListDataSource(
roomListService = matrixClient.roomListService,
roomListRoomSummaryFactory = roomListRoomSummaryFactory,
@ -114,7 +114,7 @@ class RoomListScreen( @@ -114,7 +114,7 @@ class RoomListScreen(
featureFlagService = featureFlagService,
migrationScreenPresenter = MigrationScreenPresenter(
matrixClient = matrixClient,
migrationScreenStore = SharedPrefsMigrationScreenStore(context.getSharedPreferences("migration", Context.MODE_PRIVATE))
migrationScreenStore = SharedPreferencesMigrationScreenStore(context.getSharedPreferences("migration", Context.MODE_PRIVATE))
),
searchPresenter = RoomListSearchPresenter(
RoomListSearchDataSource(

41
tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistClassNameTest.kt

@ -20,8 +20,12 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider @@ -20,8 +20,12 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import com.bumble.appyx.core.node.Node
import com.lemonappdev.konsist.api.Konsist
import com.lemonappdev.konsist.api.ext.list.withAllParentsOf
import com.lemonappdev.konsist.api.ext.list.withAnnotationNamed
import com.lemonappdev.konsist.api.ext.list.withNameContaining
import com.lemonappdev.konsist.api.ext.list.withNameEndingWith
import com.lemonappdev.konsist.api.ext.list.withoutName
import com.lemonappdev.konsist.api.ext.list.withoutNameStartingWith
import com.lemonappdev.konsist.api.verify.assertEmpty
import com.lemonappdev.konsist.api.verify.assertTrue
import io.element.android.libraries.architecture.Presenter
import org.junit.Test
@ -81,4 +85,41 @@ class KonsistClassNameTest { @@ -81,4 +85,41 @@ class KonsistClassNameTest {
it.parents().any { parent -> parent.name.replace(".", "") == interfaceName }
}
}
@Test
fun `Class implementing interface should have name not end with 'Impl' but start with 'Default'`() {
Konsist.scopeFromProject()
.classes()
.withNameEndingWith("Impl")
.withoutName("MediaUploadHandlerImpl")
.assertEmpty(additionalMessage = "Class implementing interface should have name not end with 'Impl' but start with 'Default'")
}
@Test
fun `Class with 'ContributeBinding' annotation should have allowed prefix`() {
Konsist.scopeFromProject()
.classes()
.withAnnotationNamed("ContributesBinding")
.withoutName(
"Factory",
"TimelineController",
)
.withoutNameStartingWith(
"Accompanist",
"AES",
"Android",
"Database",
"DBov",
"Default",
"DataStore",
"FileExtensionExtractor",
"KeyStore",
"Matrix",
"Noop",
"Preferences",
"Rust",
"SharedPreferences",
)
.assertEmpty()
}
}

Loading…
Cancel
Save