mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 12:07:28 +00:00
Use presenter factory
This commit is contained in:
committed by
Benoit Marty
parent
9c6bc8d872
commit
08fa22069b
+9
-8
@@ -30,25 +30,26 @@ import com.google.accompanist.permissions.PermissionStatus
|
||||
import com.google.accompanist.permissions.isGranted
|
||||
import com.google.accompanist.permissions.shouldShowRationale
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import io.element.android.libraries.permissions.api.PermissionsEvents
|
||||
import io.element.android.libraries.permissions.api.PermissionsPresenter
|
||||
import io.element.android.libraries.permissions.api.PermissionsState
|
||||
import kotlinx.coroutines.launch
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultPermissionsPresenter @Inject constructor(
|
||||
class DefaultPermissionsPresenter @AssistedInject constructor(
|
||||
@Assisted val permission: String,
|
||||
private val permissionsStore: PermissionsStore,
|
||||
private val permissionStateProvider: PermissionStateProvider,
|
||||
) : PermissionsPresenter {
|
||||
|
||||
private lateinit var permission: String
|
||||
|
||||
// TODO Move to the constructor.
|
||||
override fun setParameter(permission: String) {
|
||||
this.permission = permission
|
||||
@AssistedFactory
|
||||
@ContributesBinding(AppScope::class)
|
||||
interface Factory : PermissionsPresenter.Factory {
|
||||
override fun create(permission: String): DefaultPermissionsPresenter
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalPermissionsApi::class)
|
||||
|
||||
+6
-6
@@ -38,11 +38,11 @@ class DefaultPermissionsPresenterTest {
|
||||
val permissionState = FakePermissionState(A_PERMISSION, PermissionStatus.Granted)
|
||||
val permissionStateProvider = FakePermissionStateProvider(permissionState)
|
||||
val presenter = DefaultPermissionsPresenter(
|
||||
A_PERMISSION,
|
||||
permissionsStore,
|
||||
permissionStateProvider
|
||||
)
|
||||
moleculeFlow(RecompositionClock.Immediate) {
|
||||
presenter.setParameter(A_PERMISSION)
|
||||
presenter.present()
|
||||
}.test {
|
||||
val initialState = awaitItem()
|
||||
@@ -61,11 +61,11 @@ class DefaultPermissionsPresenterTest {
|
||||
val permissionState = FakePermissionState(A_PERMISSION, PermissionStatus.Denied(shouldShowRationale = false))
|
||||
val permissionStateProvider = FakePermissionStateProvider(permissionState)
|
||||
val presenter = DefaultPermissionsPresenter(
|
||||
A_PERMISSION,
|
||||
permissionsStore,
|
||||
permissionStateProvider
|
||||
)
|
||||
moleculeFlow(RecompositionClock.Immediate) {
|
||||
presenter.setParameter(A_PERMISSION)
|
||||
presenter.present()
|
||||
}.test {
|
||||
val initialState = awaitItem()
|
||||
@@ -81,11 +81,11 @@ class DefaultPermissionsPresenterTest {
|
||||
val permissionState = FakePermissionState(A_PERMISSION, PermissionStatus.Denied(shouldShowRationale = false))
|
||||
val permissionStateProvider = FakePermissionStateProvider(permissionState)
|
||||
val presenter = DefaultPermissionsPresenter(
|
||||
A_PERMISSION,
|
||||
permissionsStore,
|
||||
permissionStateProvider
|
||||
)
|
||||
moleculeFlow(RecompositionClock.Immediate) {
|
||||
presenter.setParameter(A_PERMISSION)
|
||||
presenter.present()
|
||||
}.test {
|
||||
val initialState = awaitItem()
|
||||
@@ -110,11 +110,11 @@ class DefaultPermissionsPresenterTest {
|
||||
val permissionState = FakePermissionState(A_PERMISSION, PermissionStatus.Denied(shouldShowRationale = true))
|
||||
val permissionStateProvider = FakePermissionStateProvider(permissionState)
|
||||
val presenter = DefaultPermissionsPresenter(
|
||||
A_PERMISSION,
|
||||
permissionsStore,
|
||||
permissionStateProvider
|
||||
)
|
||||
moleculeFlow(RecompositionClock.Immediate) {
|
||||
presenter.setParameter(A_PERMISSION)
|
||||
presenter.present()
|
||||
}.test {
|
||||
val initialState = awaitItem()
|
||||
@@ -139,11 +139,11 @@ class DefaultPermissionsPresenterTest {
|
||||
val permissionState = FakePermissionState(A_PERMISSION, PermissionStatus.Denied(shouldShowRationale = false))
|
||||
val permissionStateProvider = FakePermissionStateProvider(permissionState)
|
||||
val presenter = DefaultPermissionsPresenter(
|
||||
A_PERMISSION,
|
||||
permissionsStore,
|
||||
permissionStateProvider
|
||||
)
|
||||
moleculeFlow(RecompositionClock.Immediate) {
|
||||
presenter.setParameter(A_PERMISSION)
|
||||
presenter.present()
|
||||
}.test {
|
||||
skipItems(1)
|
||||
@@ -161,11 +161,11 @@ class DefaultPermissionsPresenterTest {
|
||||
val permissionState = FakePermissionState(A_PERMISSION, PermissionStatus.Denied(shouldShowRationale = false))
|
||||
val permissionStateProvider = FakePermissionStateProvider(permissionState)
|
||||
val presenter = DefaultPermissionsPresenter(
|
||||
A_PERMISSION,
|
||||
permissionsStore,
|
||||
permissionStateProvider
|
||||
)
|
||||
moleculeFlow(RecompositionClock.Immediate) {
|
||||
presenter.setParameter(A_PERMISSION)
|
||||
presenter.present()
|
||||
}.test {
|
||||
val initialState = awaitItem()
|
||||
|
||||
Reference in New Issue
Block a user