BugFix for incorrect caching of NIP95
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
package com.vitorpamplona.amethyst.model
|
package com.vitorpamplona.amethyst.model
|
||||||
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.core.net.toUri
|
|
||||||
import com.fasterxml.jackson.databind.DeserializationFeature
|
import com.fasterxml.jackson.databind.DeserializationFeature
|
||||||
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
||||||
import com.vitorpamplona.amethyst.Amethyst
|
import com.vitorpamplona.amethyst.Amethyst
|
||||||
@@ -763,19 +762,18 @@ object LocalCache {
|
|||||||
note.addRelay(relay)
|
note.addRelay(relay)
|
||||||
}
|
}
|
||||||
|
|
||||||
val file = File(Amethyst.instance.applicationContext.externalCacheDir, "NIP95")
|
try {
|
||||||
|
val cachePath = File(Amethyst.instance.applicationContext.externalCacheDir, "NIP95")
|
||||||
if (!file.exists()) {
|
cachePath.mkdirs()
|
||||||
try {
|
val file = File(cachePath, event.id)
|
||||||
val cachePath = File(Amethyst.instance.applicationContext.externalCacheDir, "NIP95")
|
if (!file.exists()) {
|
||||||
cachePath.mkdirs()
|
val stream = FileOutputStream(file)
|
||||||
val stream = FileOutputStream(File(cachePath, event.id))
|
|
||||||
stream.write(event.decode())
|
stream.write(event.decode())
|
||||||
stream.close()
|
stream.close()
|
||||||
Log.e("EventLogger", "Saved to disk as ${File(cachePath, event.id).toUri()}")
|
// Log.i("FileStorageEvent", "Saved to disk as ${File(cachePath, event.id).toUri()}")
|
||||||
} catch (e: IOException) {
|
|
||||||
Log.e("FileSotrageEvent", "FileStorageEvent save to disk error: " + event.id, e)
|
|
||||||
}
|
}
|
||||||
|
} catch (e: IOException) {
|
||||||
|
Log.e("FileStorageEvent", "FileStorageEvent save to disk error: " + event.id, e)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Already processed this event.
|
// Already processed this event.
|
||||||
|
|||||||
@@ -1657,45 +1657,47 @@ fun FileStorageHeaderDisplay(baseNote: Note) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val noteState = fileNote?.live()?.metadata?.observeAsState()
|
fileNote?.let { fileNote2 ->
|
||||||
val note = noteState?.value?.note
|
val noteState by fileNote2.live().metadata.observeAsState()
|
||||||
|
val note = remember(noteState) { noteState?.note }
|
||||||
|
|
||||||
var content by remember { mutableStateOf<ZoomableContent?>(null) }
|
var content by remember { mutableStateOf<ZoomableContent?>(null) }
|
||||||
|
|
||||||
LaunchedEffect(key1 = eventHeader.id, key2 = noteState, key3 = note?.event) {
|
LaunchedEffect(key1 = eventHeader.id, key2 = noteState, key3 = note?.event) {
|
||||||
withContext(Dispatchers.IO) {
|
withContext(Dispatchers.IO) {
|
||||||
val uri = "nostr:" + baseNote.toNEvent()
|
val uri = "nostr:" + baseNote.toNEvent()
|
||||||
val localDir = note?.idHex?.let { File(File(appContext.externalCacheDir, "NIP95"), it) }
|
val localDir = note?.idHex?.let { File(File(appContext.externalCacheDir, "NIP95"), it) }
|
||||||
val blurHash = eventHeader.blurhash()
|
val blurHash = eventHeader.blurhash()
|
||||||
val dimensions = eventHeader.dimensions()
|
val dimensions = eventHeader.dimensions()
|
||||||
val description = eventHeader.content
|
val description = eventHeader.content
|
||||||
val mimeType = eventHeader.mimeType()
|
val mimeType = eventHeader.mimeType()
|
||||||
|
|
||||||
content = if (mimeType?.startsWith("image") == true) {
|
content = if (mimeType?.startsWith("image") == true) {
|
||||||
ZoomableLocalImage(
|
ZoomableLocalImage(
|
||||||
localFile = localDir,
|
localFile = localDir,
|
||||||
mimeType = mimeType,
|
mimeType = mimeType,
|
||||||
description = description,
|
description = description,
|
||||||
blurhash = blurHash,
|
blurhash = blurHash,
|
||||||
dim = dimensions,
|
dim = dimensions,
|
||||||
isVerified = true,
|
isVerified = true,
|
||||||
uri = uri
|
uri = uri
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
ZoomableLocalVideo(
|
ZoomableLocalVideo(
|
||||||
localFile = localDir,
|
localFile = localDir,
|
||||||
mimeType = mimeType,
|
mimeType = mimeType,
|
||||||
description = description,
|
description = description,
|
||||||
dim = dimensions,
|
dim = dimensions,
|
||||||
isVerified = true,
|
isVerified = true,
|
||||||
uri = uri
|
uri = uri
|
||||||
)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
content?.let {
|
content?.let {
|
||||||
ZoomableContentView(content = it, listOf(it))
|
ZoomableContentView(content = it, listOf(it))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user