mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
ChangeServerEvents -> ChangeServerEvent
This commit is contained in:
+5
-5
@@ -10,9 +10,9 @@ package io.element.android.features.login.impl.changeserver
|
|||||||
|
|
||||||
import io.element.android.features.login.impl.accountprovider.AccountProvider
|
import io.element.android.features.login.impl.accountprovider.AccountProvider
|
||||||
|
|
||||||
sealed interface ChangeServerEvents {
|
sealed interface ChangeServerEvent {
|
||||||
data class ChangeServer(val accountProvider: AccountProvider) : ChangeServerEvents
|
data class ChangeServer(val accountProvider: AccountProvider) : ChangeServerEvent
|
||||||
data object ClearError : ChangeServerEvents
|
data object ClearError : ChangeServerEvent
|
||||||
data object RequestLocalNetworkPermission : ChangeServerEvents
|
data object RequestLocalNetworkPermission : ChangeServerEvent
|
||||||
data object DismissLocalNetworkPermission : ChangeServerEvents
|
data object DismissLocalNetworkPermission : ChangeServerEvent
|
||||||
}
|
}
|
||||||
+5
-5
@@ -42,12 +42,12 @@ class ChangeServerPresenter(
|
|||||||
onProceed = { provider -> changeServer(provider, changeServerAction) },
|
onProceed = { provider -> changeServer(provider, changeServerAction) },
|
||||||
)
|
)
|
||||||
|
|
||||||
fun handleEvent(event: ChangeServerEvents) {
|
fun handleEvent(event: ChangeServerEvent) {
|
||||||
when (event) {
|
when (event) {
|
||||||
ChangeServerEvents.ClearError -> changeServerAction.value = AsyncData.Uninitialized
|
ChangeServerEvent.ClearError -> changeServerAction.value = AsyncData.Uninitialized
|
||||||
is ChangeServerEvents.ChangeServer -> gateState.submit(event.accountProvider)
|
is ChangeServerEvent.ChangeServer -> gateState.submit(event.accountProvider)
|
||||||
ChangeServerEvents.DismissLocalNetworkPermission -> gateState.abort()
|
ChangeServerEvent.DismissLocalNetworkPermission -> gateState.abort()
|
||||||
ChangeServerEvents.RequestLocalNetworkPermission -> gateState.requestPermission()
|
ChangeServerEvent.RequestLocalNetworkPermission -> gateState.requestPermission()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -17,5 +17,5 @@ data class ChangeServerState(
|
|||||||
// configuring (and re-networking) the homeserver a second time.
|
// configuring (and re-networking) the homeserver a second time.
|
||||||
val changeServerAction: AsyncData<MatrixHomeServerDetails>,
|
val changeServerAction: AsyncData<MatrixHomeServerDetails>,
|
||||||
val localNetworkPermissionDialog: LocalNetworkPermissionDialog,
|
val localNetworkPermissionDialog: LocalNetworkPermissionDialog,
|
||||||
val eventSink: (ChangeServerEvents) -> Unit
|
val eventSink: (ChangeServerEvent) -> Unit
|
||||||
)
|
)
|
||||||
|
|||||||
+10
-10
@@ -47,7 +47,7 @@ fun ChangeServerView(
|
|||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
content = stringResource(R.string.screen_change_server_error_invalid_homeserver),
|
content = stringResource(R.string.screen_change_server_error_invalid_homeserver),
|
||||||
onSubmit = {
|
onSubmit = {
|
||||||
eventSink.invoke(ChangeServerEvents.ClearError)
|
eventSink.invoke(ChangeServerEvent.ClearError)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
ChangeServerError.UnsupportedServer ->
|
ChangeServerError.UnsupportedServer ->
|
||||||
@@ -55,7 +55,7 @@ fun ChangeServerView(
|
|||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
content = stringResource(R.string.screen_login_error_unsupported_authentication),
|
content = stringResource(R.string.screen_login_error_unsupported_authentication),
|
||||||
onSubmit = {
|
onSubmit = {
|
||||||
eventSink.invoke(ChangeServerEvents.ClearError)
|
eventSink.invoke(ChangeServerEvent.ClearError)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
is ChangeServerError.Error -> {
|
is ChangeServerError.Error -> {
|
||||||
@@ -63,7 +63,7 @@ fun ChangeServerView(
|
|||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
content = error.messageStr ?: stringResource(CommonStrings.error_unknown),
|
content = error.messageStr ?: stringResource(CommonStrings.error_unknown),
|
||||||
onSubmit = {
|
onSubmit = {
|
||||||
eventSink.invoke(ChangeServerEvents.ClearError)
|
eventSink.invoke(ChangeServerEvent.ClearError)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -72,10 +72,10 @@ fun ChangeServerView(
|
|||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
onLearnMoreClick = {
|
onLearnMoreClick = {
|
||||||
onLearnMoreClick()
|
onLearnMoreClick()
|
||||||
eventSink.invoke(ChangeServerEvents.ClearError)
|
eventSink.invoke(ChangeServerEvent.ClearError)
|
||||||
},
|
},
|
||||||
onDismiss = {
|
onDismiss = {
|
||||||
eventSink.invoke(ChangeServerEvents.ClearError)
|
eventSink.invoke(ChangeServerEvent.ClearError)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -90,10 +90,10 @@ fun ChangeServerView(
|
|||||||
submitText = stringResource(R.string.screen_change_server_error_element_pro_required_action_android),
|
submitText = stringResource(R.string.screen_change_server_error_element_pro_required_action_android),
|
||||||
onSubmitClick = {
|
onSubmitClick = {
|
||||||
context.openGooglePlay(error.applicationId)
|
context.openGooglePlay(error.applicationId)
|
||||||
eventSink.invoke(ChangeServerEvents.ClearError)
|
eventSink.invoke(ChangeServerEvent.ClearError)
|
||||||
},
|
},
|
||||||
onDismiss = {
|
onDismiss = {
|
||||||
eventSink.invoke(ChangeServerEvents.ClearError)
|
eventSink.invoke(ChangeServerEvent.ClearError)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -106,7 +106,7 @@ fun ChangeServerView(
|
|||||||
error.unauthorisedAccountProviderTitle,
|
error.unauthorisedAccountProviderTitle,
|
||||||
),
|
),
|
||||||
onSubmit = {
|
onSubmit = {
|
||||||
eventSink.invoke(ChangeServerEvents.ClearError)
|
eventSink.invoke(ChangeServerEvent.ClearError)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -125,10 +125,10 @@ fun ChangeServerView(
|
|||||||
LocalNetworkPermissionDialogView(
|
LocalNetworkPermissionDialogView(
|
||||||
dialog = state.localNetworkPermissionDialog,
|
dialog = state.localNetworkPermissionDialog,
|
||||||
onSubmit = {
|
onSubmit = {
|
||||||
eventSink.invoke(ChangeServerEvents.RequestLocalNetworkPermission)
|
eventSink.invoke(ChangeServerEvent.RequestLocalNetworkPermission)
|
||||||
},
|
},
|
||||||
onDismiss = {
|
onDismiss = {
|
||||||
eventSink.invoke(ChangeServerEvents.DismissLocalNetworkPermission)
|
eventSink.invoke(ChangeServerEvent.DismissLocalNetworkPermission)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -24,7 +24,7 @@ import io.element.android.appconfig.AuthenticationConfig
|
|||||||
import io.element.android.features.enterprise.api.EnterpriseService
|
import io.element.android.features.enterprise.api.EnterpriseService
|
||||||
import io.element.android.features.login.impl.accountprovider.AccountProvider
|
import io.element.android.features.login.impl.accountprovider.AccountProvider
|
||||||
import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource
|
import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource
|
||||||
import io.element.android.features.login.impl.changeserver.ChangeServerEvents
|
import io.element.android.features.login.impl.changeserver.ChangeServerEvent
|
||||||
import io.element.android.features.login.impl.changeserver.ChangeServerState
|
import io.element.android.features.login.impl.changeserver.ChangeServerState
|
||||||
import io.element.android.features.login.impl.login.LoginModeEvent
|
import io.element.android.features.login.impl.login.LoginModeEvent
|
||||||
import io.element.android.features.login.impl.login.LoginModeState
|
import io.element.android.features.login.impl.login.LoginModeState
|
||||||
@@ -134,12 +134,12 @@ class ConfirmAccountProviderPresenter(
|
|||||||
val accountProviderUrl = host.ensureProtocol()
|
val accountProviderUrl = host.ensureProtocol()
|
||||||
submittedAccountProvider = accountProviderUrl
|
submittedAccountProvider = accountProviderUrl
|
||||||
changeServerState.eventSink(
|
changeServerState.eventSink(
|
||||||
ChangeServerEvents.ChangeServer(AccountProvider(url = accountProviderUrl))
|
ChangeServerEvent.ChangeServer(AccountProvider(url = accountProviderUrl))
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
ConfirmAccountProviderEvents.ClearError -> {
|
ConfirmAccountProviderEvents.ClearError -> {
|
||||||
loginModeState.eventSink(LoginModeEvent.ClearError)
|
loginModeState.eventSink(LoginModeEvent.ClearError)
|
||||||
changeServerState.eventSink(ChangeServerEvents.ClearError)
|
changeServerState.eventSink(ChangeServerEvent.ClearError)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-10
@@ -63,7 +63,7 @@ class ChangeServerPresenterTest {
|
|||||||
).test {
|
).test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
assertThat(initialState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
||||||
initialState.eventSink.invoke(ChangeServerEvents.ChangeServer(AccountProvider(url = A_HOMESERVER_URL)))
|
initialState.eventSink.invoke(ChangeServerEvent.ChangeServer(AccountProvider(url = A_HOMESERVER_URL)))
|
||||||
val loadingState = awaitItem()
|
val loadingState = awaitItem()
|
||||||
assertThat(loadingState.changeServerAction).isInstanceOf(AsyncData.Loading::class.java)
|
assertThat(loadingState.changeServerAction).isInstanceOf(AsyncData.Loading::class.java)
|
||||||
val successState = awaitItem()
|
val successState = awaitItem()
|
||||||
@@ -87,13 +87,13 @@ class ChangeServerPresenterTest {
|
|||||||
).test {
|
).test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
assertThat(initialState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
||||||
initialState.eventSink.invoke(ChangeServerEvents.ChangeServer(AccountProvider(url = A_HOMESERVER_URL)))
|
initialState.eventSink.invoke(ChangeServerEvent.ChangeServer(AccountProvider(url = A_HOMESERVER_URL)))
|
||||||
val loadingState = awaitItem()
|
val loadingState = awaitItem()
|
||||||
assertThat(loadingState.changeServerAction).isInstanceOf(AsyncData.Loading::class.java)
|
assertThat(loadingState.changeServerAction).isInstanceOf(AsyncData.Loading::class.java)
|
||||||
val failureState = awaitItem()
|
val failureState = awaitItem()
|
||||||
assertThat(failureState.changeServerAction).isInstanceOf(AsyncData.Failure::class.java)
|
assertThat(failureState.changeServerAction).isInstanceOf(AsyncData.Failure::class.java)
|
||||||
// Clear error
|
// Clear error
|
||||||
failureState.eventSink.invoke(ChangeServerEvents.ClearError)
|
failureState.eventSink.invoke(ChangeServerEvent.ClearError)
|
||||||
val finalState = awaitItem()
|
val finalState = awaitItem()
|
||||||
assertThat(finalState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
assertThat(finalState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
||||||
}
|
}
|
||||||
@@ -115,7 +115,7 @@ class ChangeServerPresenterTest {
|
|||||||
).test {
|
).test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
assertThat(initialState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
||||||
initialState.eventSink.invoke(ChangeServerEvents.ChangeServer(AccountProvider(url = A_HOMESERVER_URL)))
|
initialState.eventSink.invoke(ChangeServerEvent.ChangeServer(AccountProvider(url = A_HOMESERVER_URL)))
|
||||||
val loadingState = awaitItem()
|
val loadingState = awaitItem()
|
||||||
assertThat(loadingState.changeServerAction).isInstanceOf(AsyncData.Loading::class.java)
|
assertThat(loadingState.changeServerAction).isInstanceOf(AsyncData.Loading::class.java)
|
||||||
val failureState = awaitItem()
|
val failureState = awaitItem()
|
||||||
@@ -139,7 +139,7 @@ class ChangeServerPresenterTest {
|
|||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
assertThat(initialState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
||||||
val anAccountProvider = AccountProvider(url = A_HOMESERVER_URL)
|
val anAccountProvider = AccountProvider(url = A_HOMESERVER_URL)
|
||||||
initialState.eventSink.invoke(ChangeServerEvents.ChangeServer(anAccountProvider))
|
initialState.eventSink.invoke(ChangeServerEvent.ChangeServer(anAccountProvider))
|
||||||
val loadingState = awaitItem()
|
val loadingState = awaitItem()
|
||||||
assertThat(loadingState.changeServerAction).isInstanceOf(AsyncData.Loading::class.java)
|
assertThat(loadingState.changeServerAction).isInstanceOf(AsyncData.Loading::class.java)
|
||||||
val failureState = awaitItem()
|
val failureState = awaitItem()
|
||||||
@@ -167,7 +167,7 @@ class ChangeServerPresenterTest {
|
|||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
assertThat(initialState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
||||||
val anAccountProvider = AccountProvider(url = A_HOMESERVER_URL)
|
val anAccountProvider = AccountProvider(url = A_HOMESERVER_URL)
|
||||||
initialState.eventSink.invoke(ChangeServerEvents.ChangeServer(anAccountProvider))
|
initialState.eventSink.invoke(ChangeServerEvent.ChangeServer(anAccountProvider))
|
||||||
// Skip loading state
|
// Skip loading state
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val failureState = awaitItem()
|
val failureState = awaitItem()
|
||||||
@@ -194,7 +194,7 @@ class ChangeServerPresenterTest {
|
|||||||
).test {
|
).test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.localNetworkPermissionDialog).isEqualTo(LocalNetworkPermissionDialog.None)
|
assertThat(initialState.localNetworkPermissionDialog).isEqualTo(LocalNetworkPermissionDialog.None)
|
||||||
initialState.eventSink.invoke(ChangeServerEvents.ChangeServer(AccountProvider(url = A_HOMESERVER_URL)))
|
initialState.eventSink.invoke(ChangeServerEvent.ChangeServer(AccountProvider(url = A_HOMESERVER_URL)))
|
||||||
val promptState = expectMostRecentItem()
|
val promptState = expectMostRecentItem()
|
||||||
// Dialog is shown, permission has not been requested yet, setHomeserver has not been called.
|
// Dialog is shown, permission has not been requested yet, setHomeserver has not been called.
|
||||||
assertThat(promptState.localNetworkPermissionDialog).isNotEqualTo(LocalNetworkPermissionDialog.None)
|
assertThat(promptState.localNetworkPermissionDialog).isNotEqualTo(LocalNetworkPermissionDialog.None)
|
||||||
@@ -213,10 +213,10 @@ class ChangeServerPresenterTest {
|
|||||||
permissionsPresenter = FakePermissionsPresenter(),
|
permissionsPresenter = FakePermissionsPresenter(),
|
||||||
).test {
|
).test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink.invoke(ChangeServerEvents.ChangeServer(AccountProvider(url = A_HOMESERVER_URL)))
|
initialState.eventSink.invoke(ChangeServerEvent.ChangeServer(AccountProvider(url = A_HOMESERVER_URL)))
|
||||||
val promptState = expectMostRecentItem()
|
val promptState = expectMostRecentItem()
|
||||||
assertThat(promptState.localNetworkPermissionDialog).isNotEqualTo(LocalNetworkPermissionDialog.None)
|
assertThat(promptState.localNetworkPermissionDialog).isNotEqualTo(LocalNetworkPermissionDialog.None)
|
||||||
promptState.eventSink.invoke(ChangeServerEvents.DismissLocalNetworkPermission)
|
promptState.eventSink.invoke(ChangeServerEvent.DismissLocalNetworkPermission)
|
||||||
val dismissedState = expectMostRecentItem()
|
val dismissedState = expectMostRecentItem()
|
||||||
assertThat(dismissedState.localNetworkPermissionDialog).isEqualTo(LocalNetworkPermissionDialog.None)
|
assertThat(dismissedState.localNetworkPermissionDialog).isEqualTo(LocalNetworkPermissionDialog.None)
|
||||||
assertThat(dismissedState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
assertThat(dismissedState.changeServerAction).isEqualTo(AsyncData.Uninitialized)
|
||||||
@@ -236,7 +236,7 @@ class ChangeServerPresenterTest {
|
|||||||
permissionsPresenter = permissionsPresenter,
|
permissionsPresenter = permissionsPresenter,
|
||||||
).test {
|
).test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink.invoke(ChangeServerEvents.ChangeServer(AccountProvider(url = A_HOMESERVER_URL)))
|
initialState.eventSink.invoke(ChangeServerEvent.ChangeServer(AccountProvider(url = A_HOMESERVER_URL)))
|
||||||
val promptState = expectMostRecentItem()
|
val promptState = expectMostRecentItem()
|
||||||
assertThat(promptState.localNetworkPermissionDialog).isNotEqualTo(LocalNetworkPermissionDialog.None)
|
assertThat(promptState.localNetworkPermissionDialog).isNotEqualTo(LocalNetworkPermissionDialog.None)
|
||||||
permissionsPresenter.setPermissionGranted()
|
permissionsPresenter.setPermissionGranted()
|
||||||
|
|||||||
Reference in New Issue
Block a user