@@ -7,6 +7,9 @@ import android.widget.Toast
77import androidx.appcompat.app.AppCompatActivity
88import androidx.fragment.app.Fragment
99import com.github.dhaval2404.imagepicker.constant.ImageProvider
10+ import com.github.dhaval2404.imagepicker.constant.ImageProvider.BOTH
11+ import com.github.dhaval2404.imagepicker.constant.ImageProvider.CAMERA
12+ import com.github.dhaval2404.imagepicker.constant.ImageProvider.GALLERY
1013import com.github.dhaval2404.imagepicker.listener.ResultListener
1114import com.github.dhaval2404.imagepicker.util.DialogHelper
1215import com.github.florent37.inlineactivityresult.kotlin.startForResult
@@ -91,7 +94,7 @@ open class ImagePicker {
9194 private var fragment: Fragment ? = null
9295
9396 // Image Provider
94- private var imageProvider = ImageProvider . BOTH
97+ private var imageProvider = BOTH
9598
9699 /*
97100 * Crop Parameters
@@ -111,6 +114,8 @@ open class ImagePicker {
111114 */
112115 private var maxSize: Long = 0
113116
117+ private var imageProviderInterceptor: ((ImageProvider ) -> Unit )? = null
118+
114119 /* *
115120 * Call this while picking image for fragment.
116121 */
@@ -131,7 +136,7 @@ open class ImagePicker {
131136 */
132137 // @Deprecated("Please use provider(ImageProvider.CAMERA) instead")
133138 fun cameraOnly (): Builder {
134- this .imageProvider = ImageProvider . CAMERA
139+ this .imageProvider = CAMERA
135140 return this
136141 }
137142
@@ -140,7 +145,7 @@ open class ImagePicker {
140145 */
141146 // @Deprecated("Please use provider(ImageProvider.GALLERY) instead")
142147 fun galleryOnly (): Builder {
143- this .imageProvider = ImageProvider . GALLERY
148+ this .imageProvider = GALLERY
144149 return this
145150 }
146151
@@ -192,6 +197,11 @@ open class ImagePicker {
192197 return this
193198 }
194199
200+ fun setImageProviderInterceptor (imageProviderInterceptor : (ImageProvider ) -> Unit ): Builder {
201+ this .imageProviderInterceptor = imageProviderInterceptor
202+ return this
203+ }
204+
195205 /* *
196206 * Start Image Picker Activity
197207 */
@@ -203,7 +213,7 @@ open class ImagePicker {
203213 * Start Image Picker Activity
204214 */
205215 fun start (reqCode : Int ) {
206- if (imageProvider == ImageProvider . BOTH ) {
216+ if (imageProvider == BOTH ) {
207217 // Pick Image Provider if not specified
208218 showImageProviderDialog(reqCode)
209219 } else {
@@ -215,7 +225,7 @@ open class ImagePicker {
215225 * Start Image Picker Activity
216226 */
217227 fun start (completionHandler : ((resultCode: Int , data: Intent ? ) -> Unit )? = null) {
218- if (imageProvider == ImageProvider . BOTH ) {
228+ if (imageProvider == BOTH ) {
219229 // Pick Image Provider if not specified
220230 showImageProviderDialog(completionHandler)
221231 } else {
@@ -231,6 +241,7 @@ open class ImagePicker {
231241 override fun onResult (t : ImageProvider ? ) {
232242 t?.let {
233243 imageProvider = it
244+ imageProviderInterceptor?.invoke(imageProvider)
234245 startActivity(reqCode)
235246 }
236247 }
@@ -245,6 +256,7 @@ open class ImagePicker {
245256 override fun onResult (t : ImageProvider ? ) {
246257 if (t != null ) {
247258 imageProvider = t
259+ imageProviderInterceptor?.invoke(imageProvider)
248260 startActivity(completionHandler)
249261 } else {
250262 val intent = ImagePickerActivity .getCancelledIntent(activity)
@@ -297,8 +309,12 @@ open class ImagePicker {
297309 }
298310 } catch (e: Exception ) {
299311 if (e is ClassNotFoundException ) {
300- Toast .makeText(if (fragment != null ) fragment!! .context else activity, " InlineActivityResult library not installed falling back to default method, please install " +
301- " it from https://github.com/florent37/InlineActivityResult if you want to get inline activity results." , Toast .LENGTH_LONG ).show()
312+ Toast .makeText(
313+ if (fragment != null ) fragment!! .context else activity,
314+ " InlineActivityResult library not installed falling back to default method, please install " +
315+ " it from https://github.com/florent37/InlineActivityResult if you want to get inline activity results." ,
316+ Toast .LENGTH_LONG
317+ ).show()
302318 startActivity(REQUEST_CODE )
303319 }
304320 }
0 commit comments