Skip to content

Commit 23188cc

Browse files
authored
Merge pull request #54 from Marchuck/feature/picked_image_provider_interceptor
Introduce ImageProvider Interceptor and Fixed wildcard import
2 parents f942299 + fbac408 commit 23188cc

File tree

2 files changed

+24
-8
lines changed
  • imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker
  • sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/util

2 files changed

+24
-8
lines changed

imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/ImagePicker.kt

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ import android.widget.Toast
77
import androidx.appcompat.app.AppCompatActivity
88
import androidx.fragment.app.Fragment
99
import 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
1013
import com.github.dhaval2404.imagepicker.listener.ResultListener
1114
import com.github.dhaval2404.imagepicker.util.DialogHelper
1215
import 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
}

sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/util/FileUtil.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.github.dhaval2404.imagepicker.sample.util
33
import android.graphics.BitmapFactory
44
import java.io.File
55
import java.text.SimpleDateFormat
6-
import java.util.*
6+
import java.util.Locale
77

88
/**
99
* File Utility

0 commit comments

Comments
 (0)