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
|
|
@ -41,7 +41,7 @@ fun AudioManager.enableExternalAudioDevice() {
|
|||
selectedDevice?.let { device ->
|
||||
Timber.d("Audio device selected, type: ${device.type}")
|
||||
tryOrNull(
|
||||
onError = { failure ->
|
||||
onException = { failure ->
|
||||
Timber.e(failure, "Audio: exception when setting communication device")
|
||||
}
|
||||
) {
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import android.content.Context
|
|||
import android.net.Uri
|
||||
import android.provider.OpenableColumns
|
||||
import androidx.core.net.toFile
|
||||
import io.element.android.libraries.core.extensions.runCatchingExceptions
|
||||
|
||||
fun Context.getMimeType(uri: Uri): String? = when (uri.scheme) {
|
||||
ContentResolver.SCHEME_CONTENT -> contentResolver.getType(uri)
|
||||
|
|
@ -32,14 +33,14 @@ fun Context.getFileSize(uri: Uri): Long {
|
|||
} ?: 0
|
||||
}
|
||||
|
||||
private fun Context.getContentFileSize(uri: Uri): Long? = runCatching {
|
||||
private fun Context.getContentFileSize(uri: Uri): Long? = runCatchingExceptions {
|
||||
contentResolver.query(uri, null, null, null, null)?.use { cursor ->
|
||||
cursor.moveToFirst()
|
||||
return@use cursor.getColumnIndexOrThrow(OpenableColumns.SIZE).let(cursor::getLong)
|
||||
}
|
||||
}.getOrNull()
|
||||
|
||||
private fun Context.getContentFileName(uri: Uri): String? = runCatching {
|
||||
private fun Context.getContentFileName(uri: Uri): String? = runCatchingExceptions {
|
||||
contentResolver.query(uri, null, null, null, null)?.use { cursor ->
|
||||
cursor.moveToFirst()
|
||||
return@use cursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME).let(cursor::getString)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import java.util.UUID
|
|||
fun File.safeDelete() {
|
||||
if (exists().not()) return
|
||||
tryOrNull(
|
||||
onError = {
|
||||
onException = {
|
||||
Timber.e(it, "Error, unable to delete file $path")
|
||||
},
|
||||
operation = {
|
||||
|
|
@ -30,7 +30,7 @@ fun File.safeDelete() {
|
|||
|
||||
fun File.safeRenameTo(dest: File) {
|
||||
tryOrNull(
|
||||
onError = {
|
||||
onException = {
|
||||
Timber.e(it, "Error, unable to rename file $path to ${dest.path}")
|
||||
},
|
||||
operation = {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import android.text.util.Linkify
|
|||
import androidx.core.text.getSpans
|
||||
import androidx.core.text.toSpannable
|
||||
import androidx.core.text.util.LinkifyCompat
|
||||
import io.element.android.libraries.core.extensions.runCatchingExceptions
|
||||
import timber.log.Timber
|
||||
import kotlin.collections.component1
|
||||
import kotlin.collections.component2
|
||||
|
|
@ -48,7 +49,7 @@ object LinkifyHelper {
|
|||
|
||||
// Try to avoid including trailing punctuation in the link.
|
||||
// Since this might fail in some edge cases, we catch the exception and just use the original end index.
|
||||
val newEnd = runCatching {
|
||||
val newEnd = runCatchingExceptions {
|
||||
adjustLinkifiedUrlSpanEndIndex(spannable, start, end)
|
||||
}.onFailure {
|
||||
Timber.e(it, "Failed to adjust end index for link span")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue