Skip to content

Commit ff60933

Browse files
committed
Fix bitmap uri
1 parent 2d14ca0 commit ff60933

1 file changed

Lines changed: 14 additions & 13 deletions

File tree

core/src/main/java/com/omega_r/libs/omegaintentbuilder/builders/BaseUriBuilder.kt

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ abstract class BaseUriBuilder() : BaseActivityBuilder(), Download<BaseUriBuilder
2424

2525
private val uriSet: MutableSet<Uri> = mutableSetOf()
2626
private val fileSet: MutableSet<File> = mutableSetOf()
27+
private val bitmapSet: MutableSet<Bitmap> = mutableSetOf()
2728

2829
private val downloadBuilder by lazy { DownloadBuilder(this) }
29-
private var bitmapIndex = 0
3030
private var localFilesDir: File? = null
3131

3232
companion object {
@@ -156,31 +156,31 @@ abstract class BaseUriBuilder() : BaseActivityBuilder(), Download<BaseUriBuilder
156156
* @return BaseUriBuilder for method chaining
157157
*/
158158
fun bitmap(vararg bitmaps: Bitmap): BaseUriBuilder {
159-
bitmaps.forEach { bitmap ->
160-
fileSet.add(bitmap.toFile(bitmapIndex))
161-
bitmapIndex++
162-
}
159+
bitmapSet.addAll(bitmaps)
163160
return this
164161
}
165162

166-
private fun Bitmap.toFile(fileIndex: Int): File {
167-
return File(localFilesDir, DEFAULT_IMAGE_FILE_NAME + fileIndex + DEFAULT_IMAGE_FILE_TYPE).apply {
168-
val fileOutputStream = FileOutputStream(this)
169-
compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream)
170-
fileOutputStream.close()
163+
private fun Bitmap.toFile(context: Context, fileIndex: Int): File {
164+
return File(getLocalFilesDir(context), DEFAULT_IMAGE_FILE_NAME + fileIndex + DEFAULT_IMAGE_FILE_TYPE).apply {
165+
FileOutputStream(this).use {
166+
compress(Bitmap.CompressFormat.JPEG, 90, it)
167+
}
171168
}
172169
}
173170

174171
private fun Bitmap.toUri(context: Context, fileIndex: Int): Uri {
175-
return FileProvider.getLocalFileUri(context, toFile(fileIndex))
172+
return FileProvider.getLocalFileUri(context, toFile(context, fileIndex))
176173
}
177174

178-
protected fun getFileOrUriSetSize(): Int = uriSet.size + fileSet.size
175+
protected fun getFileOrUriSetSize(): Int = uriSet.size + fileSet.size + bitmapSet.size
179176

180177
protected fun getFirstUri(context: Context): Uri {
181178
if (uriSet.isEmpty()) {
182179
if (fileSet.isEmpty()) {
183-
throw IllegalStateException("Uri list is empty")
180+
if (bitmapSet.isEmpty()) {
181+
throw IllegalStateException("Uri list is empty")
182+
}
183+
return bitmapSet.first().toUri(context, 0)
184184
}
185185
return toUri(context, fileSet.first())
186186
}
@@ -191,6 +191,7 @@ abstract class BaseUriBuilder() : BaseActivityBuilder(), Download<BaseUriBuilder
191191
val uriSet = mutableSetOf<Uri>()
192192
uriSet.addAll(this.uriSet)
193193
uriSet.addAll(fileSet.map { toUri(context, it) })
194+
uriSet.addAll(bitmapSet.mapIndexed { index, bitmap -> bitmap.toUri(context, index) })
194195
return uriSet
195196
}
196197

0 commit comments

Comments
 (0)