mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
Fallback to the default push gateway on error (#5742)
* Add more HTTP response code returning NoMatrixGateway Fix Push notifications with Mozilla's autopush that returns 406 * Update gateway resolver tests to match new known errors * Use default gateway on error if no gateway is recorded yet * Update gateway resolver tests to return default gateway on error
This commit is contained in:
+3
-2
@@ -29,8 +29,9 @@ class DefaultUnifiedPushGatewayUrlResolver(
|
|||||||
): String {
|
): String {
|
||||||
return when (gatewayResult) {
|
return when (gatewayResult) {
|
||||||
is UnifiedPushGatewayResolverResult.Error -> {
|
is UnifiedPushGatewayResolverResult.Error -> {
|
||||||
// Use previous gateway if any, or the provided one
|
// Use previous gateway if any, or the default one
|
||||||
unifiedPushStore.getPushGateway(instance) ?: gatewayResult.gateway
|
unifiedPushStore.getPushGateway(instance)
|
||||||
|
?: defaultPushGatewayHttpUrlProvider.provide()
|
||||||
}
|
}
|
||||||
UnifiedPushGatewayResolverResult.ErrorInvalidUrl,
|
UnifiedPushGatewayResolverResult.ErrorInvalidUrl,
|
||||||
UnifiedPushGatewayResolverResult.NoMatrixGateway -> {
|
UnifiedPushGatewayResolverResult.NoMatrixGateway -> {
|
||||||
|
|||||||
+2
-2
@@ -60,7 +60,7 @@ class DefaultUnifiedPushGatewayUrlResolverTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `resolve Error returns the url if no current url is available`() {
|
fun `resolve Error returns the default gateway url if no current url is available`() {
|
||||||
val sut = createDefaultUnifiedPushGatewayUrlResolver(
|
val sut = createDefaultUnifiedPushGatewayUrlResolver(
|
||||||
unifiedPushStore = FakeUnifiedPushStore(
|
unifiedPushStore = FakeUnifiedPushStore(
|
||||||
getPushGatewayResult = { instance ->
|
getPushGatewayResult = { instance ->
|
||||||
@@ -73,7 +73,7 @@ class DefaultUnifiedPushGatewayUrlResolverTest {
|
|||||||
gatewayResult = UnifiedPushGatewayResolverResult.Error("aUrl"),
|
gatewayResult = UnifiedPushGatewayResolverResult.Error("aUrl"),
|
||||||
instance = "instance",
|
instance = "instance",
|
||||||
)
|
)
|
||||||
assertThat(result).isEqualTo("aUrl")
|
assertThat(result).isEqualTo(FakeDefaultPushGatewayHttpUrlProvider().provide())
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createDefaultUnifiedPushGatewayUrlResolver(
|
private fun createDefaultUnifiedPushGatewayUrlResolver(
|
||||||
|
|||||||
Reference in New Issue
Block a user