@@ -86,7 +86,7 @@ abstract class BaseUriBuilder(private val context: Context): BaseActivityBuilder
8686 * @return BaseUriBuilder for method chaining
8787 */
8888 fun file (vararg file : File ): BaseUriBuilder {
89- file.forEach { uriSet.add(Uri .fromFile (it)) }
89+ file.forEach { uriSet.add(toUri (it)) }
9090 return this
9191 }
9292
@@ -98,9 +98,9 @@ abstract class BaseUriBuilder(private val context: Context): BaseActivityBuilder
9898 */
9999 fun <T > file (collection : Collection <T >): BaseUriBuilder {
100100 if (collection.all { it is String }) {
101- collection.forEach { uriSet.add(Uri .fromFile (File (it as String ))) }
101+ collection.forEach { uriSet.add(toUri (File (it as String ))) }
102102 } else if (collection.all { it is File }) {
103- collection.forEach { uriSet.add(Uri .fromFile (it as File )) }
103+ collection.forEach { uriSet.add(toUri (it as File )) }
104104 } else {
105105 throw IllegalStateException (" Collection type should be String or File" )
106106 }
@@ -112,10 +112,16 @@ abstract class BaseUriBuilder(private val context: Context): BaseActivityBuilder
112112 * @return BaseUriBuilder for method chaining
113113 */
114114 fun file (vararg file : String ): BaseUriBuilder {
115- file.forEach { uriSet.add(Uri .fromFile (File (it))) }
115+ file.forEach { uriSet.add(toUri (File (it))) }
116116 return this
117117 }
118118
119+ private fun toUri (file : File ): Uri {
120+ val cacheFile = File (localFilesDir, file.name)
121+ file.copyTo(cacheFile, overwrite = true )
122+ return FileProvider .getLocalFileUri(context, cacheFile)
123+ }
124+
119125 /* *
120126 * @param bitmap Bitmap
121127 * @return BaseUriBuilder for method chaining
0 commit comments