diff --git a/app/src/main/java/com/futo/circles/glide/LocalFileHelper.kt b/app/src/main/java/com/futo/circles/glide/LocalFileHelper.kt new file mode 100644 index 0000000000000000000000000000000000000000..ff0c3588dc8bedc86d84a5c6c429cce1a96d074b --- /dev/null +++ b/app/src/main/java/com/futo/circles/glide/LocalFileHelper.kt @@ -0,0 +1,25 @@ +package com.futo.circles.glide + +import android.content.Context +import android.net.Uri +import androidx.documentfile.provider.DocumentFile +import org.matrix.android.sdk.api.extensions.orFalse +import java.io.InputStream + +class LocalFileHelper(private val context: Context) { + + fun isLocalFile(fileUri: String?): Boolean { + return fileUri + ?.let { Uri.parse(it) } + ?.let { DocumentFile.fromSingleUri(context, it) } + ?.exists() + .orFalse() + } + + fun openInputStream(fileUri: String?): InputStream? { + return fileUri + ?.takeIf { isLocalFile(it) } + ?.let { Uri.parse(it) } + ?.let { context.contentResolver.openInputStream(it) } + } +}