From 0a6c2d5d90dc0bef9802f6c70a654e0bde918509 Mon Sep 17 00:00:00 2001 From: vibhutomer Date: Wed, 13 May 2026 12:08:32 +0530 Subject: [PATCH] Fix: Implement deterministic file naming to prevent storage leak --- .../piramalswasthya/sakhi/repositories/MaaMeetingRepo.kt | 6 +++--- .../sakhi/repositories/SaasBahuSammelanRepo.kt | 4 ++-- .../java/org/piramalswasthya/sakhi/repositories/UwinRepo.kt | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/piramalswasthya/sakhi/repositories/MaaMeetingRepo.kt b/app/src/main/java/org/piramalswasthya/sakhi/repositories/MaaMeetingRepo.kt index 83af080d2..617d6af89 100644 --- a/app/src/main/java/org/piramalswasthya/sakhi/repositories/MaaMeetingRepo.kt +++ b/app/src/main/java/org/piramalswasthya/sakhi/repositories/MaaMeetingRepo.kt @@ -143,7 +143,7 @@ class MaaMeetingRepo @Inject constructor( serverList.forEach { item -> - val imageUriList = (item.meetingImages ?: emptyList()).mapNotNull { base64 -> + val imageUriList = withContext(Dispatchers.IO){ (item.meetingImages ?: emptyList()).mapNotNull { base64 -> try { val base64Data = base64.substringAfter(",", base64) val bytes = Base64.decode(base64Data, Base64.DEFAULT) @@ -151,7 +151,7 @@ class MaaMeetingRepo @Inject constructor( val file = File( appContext.cacheDir, - "meeting_${System.currentTimeMillis()}.$ext" + "meeting_${item.id}_img${index}.$ext" ) file.outputStream().use { it.write(bytes) } @@ -164,7 +164,7 @@ class MaaMeetingRepo @Inject constructor( } catch (e: Exception) { null - } + }} } val entity = MaaMeetingEntity( diff --git a/app/src/main/java/org/piramalswasthya/sakhi/repositories/SaasBahuSammelanRepo.kt b/app/src/main/java/org/piramalswasthya/sakhi/repositories/SaasBahuSammelanRepo.kt index dc49fac8b..4d2e08cc7 100644 --- a/app/src/main/java/org/piramalswasthya/sakhi/repositories/SaasBahuSammelanRepo.kt +++ b/app/src/main/java/org/piramalswasthya/sakhi/repositories/SaasBahuSammelanRepo.kt @@ -169,12 +169,12 @@ class SaasBahuSammelanRepo @Inject constructor( saasBahuDao.clearAll() parsed.data?.forEach { item -> val imageBase64List = item.meetingImages ?: emptyList() - val imageUriList = imageBase64List.mapNotNull { base64 -> + val imageUriList = withContext(Dispatchers.IO) {imageBase64List.mapNotNull { base64 -> try { val base64Data = base64.substringAfter(",", base64) val bytes = Base64.decode(base64Data, Base64.DEFAULT) val (ext, _) = detectExtAndMime(bytes) - val file = File(appContext.cacheDir, "saas_bahu_sammelan${System.currentTimeMillis()}.$ext") + val file = File(appContext.cacheDir, "saas_bahu_${item.id}_img${index}.$ext") file.outputStream().use { it.write(bytes) } val uri = FileProvider.getUriForFile( appContext, diff --git a/app/src/main/java/org/piramalswasthya/sakhi/repositories/UwinRepo.kt b/app/src/main/java/org/piramalswasthya/sakhi/repositories/UwinRepo.kt index bdadeca0a..30fec5efe 100644 --- a/app/src/main/java/org/piramalswasthya/sakhi/repositories/UwinRepo.kt +++ b/app/src/main/java/org/piramalswasthya/sakhi/repositories/UwinRepo.kt @@ -219,7 +219,7 @@ class UwinRepo @Inject constructor( val base64Data = base64.substringAfter(",", base64) val bytes = Base64.decode(base64Data, Base64.DEFAULT) val (ext, _) = detectExtAndMime(bytes) - val file = File(appContext.cacheDir, "uwin_${System.currentTimeMillis()}.$ext") + val file = File(appContext.cacheDir, "uwin_${item.id}_img${index}.$ext") file.outputStream().use { it.write(bytes) } val uri = FileProvider.getUriForFile( appContext,