@@ -13,28 +13,37 @@ package com.omega_r.libs.omegaintentbuilder.builders
1313import android.content.Context
1414import android.graphics.Bitmap
1515import android.net.Uri
16+ import android.os.Parcel
17+ import android.os.Parcelable.Creator
1618import com.omega_r.libs.omegaintentbuilder.builders.share.DownloadBuilder
1719import com.omega_r.libs.omegaintentbuilder.downloader.Download
1820import com.omega_r.libs.omegaintentbuilder.providers.FileProvider
1921import com.omega_r.libs.omegatypes.image.Image
2022import java.io.File
2123import java.io.FileOutputStream
2224
23- abstract class BaseUriBuilder () : BaseActivityBuilder(), Download<BaseUriBuilder> {
24-
25- private val uriSet: MutableSet <Uri > = mutableSetOf ()
26- private val fileSet: MutableSet <File > = mutableSetOf ()
27- private val bitmapSet: MutableSet <Bitmap > = mutableSetOf ()
28-
29- private val downloadBuilder by lazy { DownloadBuilder (this ) }
30- private var localFilesDir: File ? = null
25+ abstract class BaseUriBuilder (
26+ private val uriSet : MutableSet <Uri > = mutableSetOf(),
27+ private val fileSet : MutableSet <File > = mutableSetOf(),
28+ private val bitmapSet : MutableSet <Bitmap > = mutableSetOf(),
29+ private var localFilesDir : File ? = null ,
30+ ) : BaseActivityBuilder(), Download<BaseUriBuilder> {
3131
3232 companion object {
33+
3334 private const val FILE_DIR = " intent_files" // this value from xml/file_paths.xml
3435 private const val DEFAULT_IMAGE_FILE_NAME = " File"
3536 private const val DEFAULT_IMAGE_FILE_TYPE = " .jpg" ;
3637 }
3738
39+ private val downloadBuilder by lazy { DownloadBuilder (this ) }
40+
41+ constructor (parcel: Parcel ) : this (
42+ parcel.readParcelableArray(MutableSet ::class .java.classLoader)?.toMutableSet() as ? MutableSet <Uri > ? : mutableSetOf (),
43+ parcel.readSerializable() as MutableSet <File >,
44+ parcel.readParcelableArray(MutableSet ::class .java.classLoader)?.toMutableSet() as ? MutableSet <Bitmap > ? : mutableSetOf (),
45+ parcel.readSerializable() as File ?
46+ )
3847
3948 internal fun getLocalFilesDir (context : Context ): File {
4049 if (localFilesDir == null ) {
@@ -195,4 +204,11 @@ abstract class BaseUriBuilder() : BaseActivityBuilder(), Download<BaseUriBuilder
195204 return uriSet
196205 }
197206
207+ override fun writeToParcel (parcel : Parcel , flags : Int ) {
208+ parcel.writeParcelableArray(uriSet.toTypedArray(), flags)
209+ parcel.writeSerializable(HashSet (fileSet))
210+ parcel.writeParcelableArray(bitmapSet.toTypedArray(), flags)
211+ parcel.writeSerializable(localFilesDir)
212+ }
213+
198214}
0 commit comments