From acbf4b8998a45067e888a453b1a38b9bab099b9a Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Sun, 26 Oct 2025 11:04:21 +0800 Subject: [PATCH] [+] Save to file --- .../app/src/main/java/aza/instant/MainActivity.kt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/android/app/src/main/java/aza/instant/MainActivity.kt b/android/app/src/main/java/aza/instant/MainActivity.kt index fef15e1..06171a4 100644 --- a/android/app/src/main/java/aza/instant/MainActivity.kt +++ b/android/app/src/main/java/aza/instant/MainActivity.kt @@ -2,6 +2,7 @@ package aza.instant import android.Manifest import android.content.pm.PackageManager +import android.graphics.Bitmap import android.graphics.Picture import android.os.Bundle import android.util.Log @@ -109,13 +110,23 @@ fun FileListerScreen(modifier: Modifier = Modifier) { coroutineScope.launch { feedbackText = "Rendering..." val imageDir = File("/storage/emulated/0/DCIM/CA_IMAGES/") - val latestImage = imageDir.listFiles()?.maxByOrNull { it.lastModified() } + val latestImage = imageDir.listFiles() + ?.filter { !it.name.contains(".framed.") } + ?.maxByOrNull { it.lastModified() } if (latestImage != null) { try { val templateStream = context.resources.openRawResource(R.raw.postcard4) val template = BufferedReader(InputStreamReader(templateStream)).readText() val svg = genSvg(template, latestImage.absolutePath) - picture = renderSvgAndroid(svg) + picture = renderSvgAndroid(context, svg) + + // Save picture to file + val file = File(latestImage.parent, "${latestImage.nameWithoutExtension}.framed.png") + file.createNewFile() + file.outputStream().use { outputStream -> + Bitmap.createBitmap(picture!!).compress(Bitmap.CompressFormat.PNG, 90, outputStream) + } + feedbackText = "Rendered ${latestImage.name}" } catch (e: Exception) { feedbackText = "Error rendering: ${e.message}"