Code refactor

This commit is contained in:
T8RIN
2025-04-14 23:23:22 +03:00
parent 4f79703cad
commit 8c86a86b58
4 changed files with 40 additions and 8 deletions

View File

@ -24,6 +24,7 @@ import android.net.Uri
import android.webkit.MimeTypeMap
import androidx.core.content.FileProvider
import androidx.core.net.toUri
import com.t8rin.logger.makeLog
import dagger.Lazy
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.withContext
@ -241,7 +242,7 @@ internal class AndroidShareProvider @Inject constructor(
)
}
}
}.getOrNull()?.toString()
}.onFailure { it.makeLog("cacheData") }.getOrNull()?.toString()
}
override suspend fun shareData(

View File

@ -395,6 +395,31 @@ internal class AndroidFileController @Inject constructor(
}
)
override suspend fun transferBytes(
fromUri: String,
to: Writeable
): SaveResult = withContext(ioDispatcher) {
runSuspendCatching {
context.contentResolver.openInputStream(fromUri.toUri())?.buffered()?.use { input ->
val buffer = ByteArray(DEFAULT_BUFFER_SIZE)
while (input.read(buffer) != -1) {
to.writeBytes(buffer)
}
} ?: throw IllegalAccessException("File inaccessible")
}.onSuccess {
return@withContext SaveResult.Success(
message = null,
savingPath = ""
)
}.onFailure {
to.makeLog("File Controller write")
it.makeLog("File Controller write")
return@withContext SaveResult.Error.Exception(it)
}
return@withContext SaveResult.Error.Exception(IllegalStateException())
}
override suspend fun <O : Any> saveObject(
key: String,
value: O,

View File

@ -50,6 +50,11 @@ interface FileController {
toUri: String
): SaveResult
suspend fun transferBytes(
fromUri: String,
to: Writeable
): SaveResult
suspend fun <O : Any> saveObject(
key: String,
value: O,

View File

@ -94,14 +94,15 @@ internal class AndroidAudioCoverRetriever @Inject constructor(
override suspend fun loadCover(
audioData: ByteArray
): Result<String> {
val audioUri = shareProvider.cacheData(
writeData = {
it.writeBytes(audioData)
},
filename = "Audio_data_${System.currentTimeMillis()}.mp3"
) ?: return Result.failure(NullPointerException(getString(R.string.filename_is_not_set)))
return loadCover(
shareProvider.cacheData(
writeData = {
it.writeBytes(audioData)
},
filename = "Audio_data_${System.currentTimeMillis()}.mp3"
)
?: return Result.failure(NullPointerException(getString(R.string.filename_is_not_set)))
audioUri = audioUri
)
}