Browse Source

Create noop version for the minimal sample and test.

test/jme/compound-poc
Benoit Marty 2 years ago committed by Benoit Marty
parent
commit
9c6bc8d872
  1. 1
      features/roomlist/impl/build.gradle.kts
  2. 8
      features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListPresenterTests.kt
  3. 30
      libraries/permissions/noop/build.gradle.kts
  4. 39
      libraries/permissions/noop/src/main/kotlin/io/element/android/libraries/permissions/noop/NoopPermissionsPresenter.kt
  5. 1
      samples/minimal/build.gradle.kts
  6. 3
      samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt

1
features/roomlist/impl/build.gradle.kts

@ -63,6 +63,7 @@ dependencies { @@ -63,6 +63,7 @@ dependencies {
testImplementation(libs.test.robolectric)
testImplementation(projects.libraries.matrix.test)
testImplementation(projects.libraries.dateformatter.test)
testImplementation(projects.libraries.permissions.noop)
androidTestImplementation(libs.test.junitext)
}

8
features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListPresenterTests.kt

@ -37,6 +37,7 @@ import io.element.android.libraries.matrix.test.FakeMatrixClient @@ -37,6 +37,7 @@ import io.element.android.libraries.matrix.test.FakeMatrixClient
import io.element.android.libraries.matrix.test.room.FakeRoomSummaryDataSource
import io.element.android.libraries.matrix.test.room.aRoomSummaryFilled
import io.element.android.libraries.matrix.test.verification.FakeSessionVerificationService
import io.element.android.libraries.permissions.noop.NoopPermissionsPresenter
import kotlinx.coroutines.test.runTest
import org.junit.Test
@ -50,6 +51,7 @@ class RoomListPresenterTests { @@ -50,6 +51,7 @@ class RoomListPresenterTests {
FakeRoomLastMessageFormatter(),
FakeSessionVerificationService(),
SnackbarDispatcher(),
NoopPermissionsPresenter(),
)
moleculeFlow(RecompositionClock.Immediate) {
presenter.present()
@ -77,6 +79,7 @@ class RoomListPresenterTests { @@ -77,6 +79,7 @@ class RoomListPresenterTests {
FakeRoomLastMessageFormatter(),
FakeSessionVerificationService(),
SnackbarDispatcher(),
NoopPermissionsPresenter(),
)
moleculeFlow(RecompositionClock.Immediate) {
presenter.present()
@ -98,6 +101,7 @@ class RoomListPresenterTests { @@ -98,6 +101,7 @@ class RoomListPresenterTests {
FakeRoomLastMessageFormatter(),
FakeSessionVerificationService(),
SnackbarDispatcher(),
NoopPermissionsPresenter(),
)
moleculeFlow(RecompositionClock.Immediate) {
presenter.present()
@ -123,6 +127,7 @@ class RoomListPresenterTests { @@ -123,6 +127,7 @@ class RoomListPresenterTests {
FakeRoomLastMessageFormatter(),
FakeSessionVerificationService(),
SnackbarDispatcher(),
NoopPermissionsPresenter(),
)
moleculeFlow(RecompositionClock.Immediate) {
presenter.present()
@ -153,6 +158,7 @@ class RoomListPresenterTests { @@ -153,6 +158,7 @@ class RoomListPresenterTests {
FakeRoomLastMessageFormatter(),
FakeSessionVerificationService(),
SnackbarDispatcher(),
NoopPermissionsPresenter(),
)
moleculeFlow(RecompositionClock.Immediate) {
presenter.present()
@ -188,6 +194,7 @@ class RoomListPresenterTests { @@ -188,6 +194,7 @@ class RoomListPresenterTests {
FakeRoomLastMessageFormatter(),
FakeSessionVerificationService(),
SnackbarDispatcher(),
NoopPermissionsPresenter(),
)
moleculeFlow(RecompositionClock.Immediate) {
presenter.present()
@ -237,6 +244,7 @@ class RoomListPresenterTests { @@ -237,6 +244,7 @@ class RoomListPresenterTests {
givenVerifiedStatus(SessionVerifiedStatus.NotVerified)
},
SnackbarDispatcher(),
NoopPermissionsPresenter(),
)
moleculeFlow(RecompositionClock.Immediate) {
presenter.present()

30
libraries/permissions/noop/build.gradle.kts

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
/*
* 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.
*/
// TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed
@Suppress("DSL_SCOPE_VIOLATION")
plugins {
id("io.element.android-compose-library")
}
android {
namespace = "io.element.android.libraries.permissions.noop"
}
dependencies {
implementation(projects.libraries.architecture)
api(projects.libraries.permissions.api)
}

39
libraries/permissions/noop/src/main/kotlin/io/element/android/libraries/permissions/noop/NoopPermissionsPresenter.kt

@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
/*
* 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.libraries.permissions.noop
import androidx.compose.runtime.Composable
import io.element.android.libraries.permissions.api.PermissionsPresenter
import io.element.android.libraries.permissions.api.PermissionsState
class NoopPermissionsPresenter: PermissionsPresenter {
override fun setParameter(permission: String) = Unit
@Composable
override fun present(): PermissionsState {
return PermissionsState(
permission = "",
permissionGranted = false,
shouldShowRationale = false,
showDialog = false,
permissionAlreadyAsked = false,
permissionAlreadyDenied = false,
eventSink = {},
)
}
}

1
samples/minimal/build.gradle.kts

@ -49,6 +49,7 @@ dependencies { @@ -49,6 +49,7 @@ dependencies {
implementation(libs.androidx.activity.compose)
implementation(projects.libraries.matrix.api)
implementation(projects.libraries.matrix.impl)
implementation(projects.libraries.permissions.noop)
implementation(projects.libraries.sessionStorage.implMemory)
implementation(projects.libraries.designsystem)
implementation(projects.libraries.architecture)

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

@ -29,6 +29,7 @@ import io.element.android.libraries.dateformatter.impl.LocalDateTimeProvider @@ -29,6 +29,7 @@ import io.element.android.libraries.dateformatter.impl.LocalDateTimeProvider
import io.element.android.libraries.designsystem.utils.SnackbarDispatcher
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.permissions.noop.NoopPermissionsPresenter
import kotlinx.coroutines.launch
import kotlinx.datetime.Clock
import kotlinx.datetime.TimeZone
@ -44,12 +45,14 @@ class RoomListScreen( @@ -44,12 +45,14 @@ class RoomListScreen(
private val dateTimeProvider = LocalDateTimeProvider(clock, timeZone)
private val dateFormatters = DateFormatters(locale, clock, timeZone)
private val sessionVerificationService = matrixClient.sessionVerificationService()
private val permissionsPresenter = NoopPermissionsPresenter()
private val presenter = RoomListPresenter(
matrixClient,
DefaultLastMessageTimestampFormatter(dateTimeProvider, dateFormatters),
DefaultRoomLastMessageFormatter(context, matrixClient),
sessionVerificationService,
SnackbarDispatcher(),
permissionsPresenter,
)
@Composable

Loading…
Cancel
Save