diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt index 4973cac35..7c70b64ac 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt @@ -1,7 +1,6 @@ package com.vitorpamplona.amethyst.model import android.util.Log -import androidx.core.net.toUri import com.fasterxml.jackson.databind.DeserializationFeature import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper import com.vitorpamplona.amethyst.Amethyst @@ -763,19 +762,18 @@ object LocalCache { note.addRelay(relay) } - val file = File(Amethyst.instance.applicationContext.externalCacheDir, "NIP95") - - if (!file.exists()) { - try { - val cachePath = File(Amethyst.instance.applicationContext.externalCacheDir, "NIP95") - cachePath.mkdirs() - val stream = FileOutputStream(File(cachePath, event.id)) + try { + val cachePath = File(Amethyst.instance.applicationContext.externalCacheDir, "NIP95") + cachePath.mkdirs() + val file = File(cachePath, event.id) + if (!file.exists()) { + val stream = FileOutputStream(file) stream.write(event.decode()) stream.close() - Log.e("EventLogger", "Saved to disk as ${File(cachePath, event.id).toUri()}") - } catch (e: IOException) { - Log.e("FileSotrageEvent", "FileStorageEvent save to disk error: " + event.id, e) + // Log.i("FileStorageEvent", "Saved to disk as ${File(cachePath, event.id).toUri()}") } + } catch (e: IOException) { + Log.e("FileStorageEvent", "FileStorageEvent save to disk error: " + event.id, e) } // Already processed this event. diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt index da08295a0..cc7723a6f 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt @@ -1657,45 +1657,47 @@ fun FileStorageHeaderDisplay(baseNote: Note) { } } - val noteState = fileNote?.live()?.metadata?.observeAsState() - val note = noteState?.value?.note + fileNote?.let { fileNote2 -> + val noteState by fileNote2.live().metadata.observeAsState() + val note = remember(noteState) { noteState?.note } - var content by remember { mutableStateOf(null) } + var content by remember { mutableStateOf(null) } - LaunchedEffect(key1 = eventHeader.id, key2 = noteState, key3 = note?.event) { - withContext(Dispatchers.IO) { - val uri = "nostr:" + baseNote.toNEvent() - val localDir = note?.idHex?.let { File(File(appContext.externalCacheDir, "NIP95"), it) } - val blurHash = eventHeader.blurhash() - val dimensions = eventHeader.dimensions() - val description = eventHeader.content - val mimeType = eventHeader.mimeType() + LaunchedEffect(key1 = eventHeader.id, key2 = noteState, key3 = note?.event) { + withContext(Dispatchers.IO) { + val uri = "nostr:" + baseNote.toNEvent() + val localDir = note?.idHex?.let { File(File(appContext.externalCacheDir, "NIP95"), it) } + val blurHash = eventHeader.blurhash() + val dimensions = eventHeader.dimensions() + val description = eventHeader.content + val mimeType = eventHeader.mimeType() - content = if (mimeType?.startsWith("image") == true) { - ZoomableLocalImage( - localFile = localDir, - mimeType = mimeType, - description = description, - blurhash = blurHash, - dim = dimensions, - isVerified = true, - uri = uri - ) - } else { - ZoomableLocalVideo( - localFile = localDir, - mimeType = mimeType, - description = description, - dim = dimensions, - isVerified = true, - uri = uri - ) + content = if (mimeType?.startsWith("image") == true) { + ZoomableLocalImage( + localFile = localDir, + mimeType = mimeType, + description = description, + blurhash = blurHash, + dim = dimensions, + isVerified = true, + uri = uri + ) + } else { + ZoomableLocalVideo( + localFile = localDir, + mimeType = mimeType, + description = description, + dim = dimensions, + isVerified = true, + uri = uri + ) + } } } - } - content?.let { - ZoomableContentView(content = it, listOf(it)) + content?.let { + ZoomableContentView(content = it, listOf(it)) + } } }