-
Notifications
You must be signed in to change notification settings - Fork 0
/
GeneratePngForSharingUseCase.kt
32 lines (28 loc) · 1.18 KB
/
GeneratePngForSharingUseCase.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.example.scanbot.usecases
import android.graphics.Bitmap
import com.example.scanbot.sharing.ISharingDocumentStorage
import com.example.scanbot.sharing.ensureFileExists
import io.scanbot.sdk.persistence.PageFileStorage
import java.io.File
import java.io.FileOutputStream
import javax.inject.Inject
class GeneratePngForSharingUseCase @Inject constructor(
sharingDocumentStorage: ISharingDocumentStorage,
private val pageFileStorage: PageFileStorage
) : GenerateFilesForSharingUseCase(sharingDocumentStorage) {
override suspend fun generateFilesForDocument(
documentSharingDir: File,
pages: List<String>
): List<File> {
return pages.mapIndexed { index, page ->
val pageFileName = if (pages.size == 1) "${page}.png" else "$page (${index + 1}).png"
val sharingPngFile = documentSharingDir.ensureFileExists().resolve(pageFileName)
val documentImage =
pageFileStorage.getImage(page, PageFileStorage.PageFileType.DOCUMENT)
FileOutputStream(sharingPngFile).use {
documentImage?.compress(Bitmap.CompressFormat.PNG, 100, it)
}
sharingPngFile
}
}
}