Add catchingExceptions method to replace runCatching (#4797)
- Add `runCatchingExceptions` and `mapCatchingExceptions` to replace `runCatching` and `mapCatching`.
- Make `tryOrNull { ... }` catch only exceptions too.
- Apply the changes to the whole project.
- Add new Rust fakes for tests to handle the code that's now unblocked - previously it just threw an `UnsatisfiedLinkError` which we ignored.
- Add a new `detekt-rules` project with a `RunCatchingRule` to prevent `runCatching` and `mapCatching` usages.
This commit is contained in:
parent
7816529fd7
commit
efdc10e60a
144 changed files with 716 additions and 375 deletions
|
|
@ -8,6 +8,7 @@
|
|||
package io.element.android.libraries.pushproviders.firebase
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import io.element.android.libraries.core.extensions.runCatchingExceptions
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import javax.inject.Inject
|
||||
|
||||
|
|
@ -24,7 +25,7 @@ class DefaultFirebaseTokenRotator @Inject constructor(
|
|||
private val firebaseTokenGetter: FirebaseTokenGetter,
|
||||
) : FirebaseTokenRotator {
|
||||
override suspend fun rotate(): Result<Unit> {
|
||||
return runCatching {
|
||||
return runCatchingExceptions {
|
||||
firebaseTokenDeleter.delete()
|
||||
firebaseTokenGetter.get()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
package io.element.android.libraries.pushproviders.firebase
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import io.element.android.libraries.core.extensions.runCatchingExceptions
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import javax.inject.Inject
|
||||
|
||||
|
|
@ -24,7 +25,7 @@ class DefaultFirebaseTroubleshooter @Inject constructor(
|
|||
private val firebaseTokenGetter: FirebaseTokenGetter,
|
||||
) : FirebaseTroubleshooter {
|
||||
override suspend fun troubleshoot(): Result<Unit> {
|
||||
return runCatching {
|
||||
return runCatchingExceptions {
|
||||
val token = firebaseTokenGetter.get()
|
||||
newTokenHandler.handle(token)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ class DefaultRegisterUnifiedPushUseCase @Inject constructor(
|
|||
// VectorUnifiedPushMessagingReceiver.onNewEndpoint
|
||||
UnifiedPush.register(context = context, instance = clientSecret)
|
||||
// Wait for VectorUnifiedPushMessagingReceiver.onNewEndpoint to proceed
|
||||
@Suppress("RunCatchingNotAllowed")
|
||||
return runCatching {
|
||||
withTimeout(30.seconds) {
|
||||
val result = endpointRegistrationHandler.state
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ class DefaultUnifiedPushGatewayResolver @Inject constructor(
|
|||
) : UnifiedPushGatewayResolver {
|
||||
override suspend fun getGateway(endpoint: String): UnifiedPushGatewayResolverResult {
|
||||
val url = tryOrNull(
|
||||
onError = { Timber.tag("DefaultUnifiedPushGatewayResolver").d(it, "Cannot parse endpoint as an URL") }
|
||||
onException = { Timber.tag("DefaultUnifiedPushGatewayResolver").d(it, "Cannot parse endpoint as an URL") }
|
||||
) {
|
||||
URL(endpoint)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue