/
alexm
/
Notes
Обзор
Документация
Войти
/
alexm
/
Notes
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/src/main/java/com/alex/notes/data/ImageFileManager.kt
52 строки
1 KB
bolschoy
5.7
21 окт 2025, 22:32
21 окт 2025, 22:32
23071b4
Код
Авторство
О чём код?
package com.alex.notes.data import android.content.Context import androidx.core.net.toUri import dagger.hilt.android.qualifiers.ApplicationContext import jakarta.inject.Inject import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import java.io.File import java.util.UUID class ImageFileManager @Inject constructor( @ApplicationContext private val context: Context ) { private val imagesDir: File = context.filesDir suspend fun copyImageToInternalStorage(url: String): String { val fileName = "IMG_${UUID.randomUUID()}.jpg" val file = File(imagesDir, fileName) withContext(Dispatchers.IO) { context.contentResolver.openInputStream(url.toUri()).use { inputStream -> file.outputStream().use { outputStream -> inputStream?.copyTo(outputStream) } } } return file.absolutePath } suspend fun deleteImage(url: String) { withContext(Dispatchers.IO){ val file = File(url) if (file.exists() && isInternal(file.absolutePath)){ file.delete() } } } fun isInternal(url: String): Boolean { return url.startsWith(imagesDir.absolutePath) } }