diff --git a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/ImagePickerDisplayer.kt b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/ImagePickerController.kt similarity index 93% rename from rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/ImagePickerDisplayer.kt rename to rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/ImagePickerController.kt index f0bd564..f07aec4 100644 --- a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/ImagePickerDisplayer.kt +++ b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/ImagePickerController.kt @@ -5,7 +5,7 @@ import com.qingmei2.rximagepicker.entity.ConfigProvider import com.qingmei2.rximagepicker.ui.ActivityPickerViewController import com.qingmei2.rximagepicker.ui.ICustomPickerConfiguration -class ImagePickerDisplayer(private val configProvider: ConfigProvider) { +class ImagePickerController(private val configProvider: ConfigProvider) { fun display() { configProvider.config?.onDisplay() diff --git a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/ProxyProviders.kt b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/ProxyProviders.kt index 4ddc920..240b664 100644 --- a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/ProxyProviders.kt +++ b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/ProxyProviders.kt @@ -18,7 +18,7 @@ class ProxyProviders : InvocationHandler { return Observable.defer(Callable> { val configProvider = proxyTranslator.processMethod(method, args) - ImagePickerDisplayer(configProvider).display() + ImagePickerController(configProvider).display() val observable = rxImagePickerProcessor.process(configProvider) diff --git a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/RxImagePicker.kt b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/RxImagePicker.kt index f4c17be..d0e99fb 100644 --- a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/RxImagePicker.kt +++ b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/core/RxImagePicker.kt @@ -1,14 +1,16 @@ package com.qingmei2.rximagepicker.core -import com.qingmei2.rximagepicker.ui.SystemImagePicker +import com.qingmei2.rximagepicker.ui.BasicImagePicker import java.lang.reflect.Proxy object RxImagePicker { - fun create(): SystemImagePicker { - return create(SystemImagePicker::class.java) + @JvmStatic + fun create(): BasicImagePicker { + return create(BasicImagePicker::class.java) } + @JvmStatic @Suppress("UNCHECKED_CAST") fun create(classProviders: Class): T { val proxyProviders = ProxyProviders() diff --git a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/entity/ConfigProvider.kt b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/entity/ConfigProvider.kt index 09013bc..db9f0b9 100644 --- a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/entity/ConfigProvider.kt +++ b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/entity/ConfigProvider.kt @@ -8,7 +8,7 @@ import com.qingmei2.rximagepicker.ui.ICustomPickerView import kotlin.reflect.KClass /** - * Entity class for user's configration. + * Entity class for user's configuration. */ data class ConfigProvider(val componentClazz: KClass<*>, val asFragment: Boolean, diff --git a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/entity/sources/Camera.kt b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/entity/sources/Camera.kt index c7da6c8..2aa0ef3 100644 --- a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/entity/sources/Camera.kt +++ b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/entity/sources/Camera.kt @@ -1,7 +1,7 @@ package com.qingmei2.rximagepicker.entity.sources import androidx.annotation.IdRes -import com.qingmei2.rximagepicker.ui.camera.SystemCameraFragment +import com.qingmei2.rximagepicker.ui.camera.BasicCameraFragment import kotlin.reflect.KClass /** @@ -18,7 +18,7 @@ annotation class Camera( /** * the UI component that will be displayed. */ - val componentClazz: KClass<*> = SystemCameraFragment::class, + val componentClazz: KClass<*> = BasicCameraFragment::class, /** * the UI component type, as [Fragment] or [Activity]. diff --git a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/entity/sources/Gallery.kt b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/entity/sources/Gallery.kt index 833d0b1..fa6dde8 100644 --- a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/entity/sources/Gallery.kt +++ b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/entity/sources/Gallery.kt @@ -1,7 +1,7 @@ package com.qingmei2.rximagepicker.entity.sources import androidx.annotation.IdRes -import com.qingmei2.rximagepicker.ui.gallery.SystemGalleryFragment +import com.qingmei2.rximagepicker.ui.gallery.BasicGalleryFragment import kotlin.reflect.KClass /** @@ -18,7 +18,7 @@ annotation class Gallery( /** * the UI component that will be displayed. */ - val componentClazz: KClass<*> = SystemGalleryFragment::class, + val componentClazz: KClass<*> = BasicGalleryFragment::class, /** * the UI component type, as [Fragment] or [Activity]. diff --git a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/function/Functions.kt b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/function/Functions.kt index 26f0510..b03e0b7 100644 --- a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/function/Functions.kt +++ b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/function/Functions.kt @@ -7,4 +7,4 @@ import kotlin.jvm.JvmName fun parseResultNoExtraData(uri: Uri): Result { return Result.Builder(uri).build() -} +} \ No newline at end of file diff --git a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/SystemImagePicker.kt b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/BasicImagePicker.kt similarity index 93% rename from rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/SystemImagePicker.kt rename to rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/BasicImagePicker.kt index ce60e68..dcc7610 100644 --- a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/SystemImagePicker.kt +++ b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/BasicImagePicker.kt @@ -6,7 +6,7 @@ import com.qingmei2.rximagepicker.entity.sources.Camera import com.qingmei2.rximagepicker.entity.sources.Gallery import io.reactivex.Observable -interface SystemImagePicker { +interface BasicImagePicker { @Gallery fun openGallery(context: Context): Observable diff --git a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/camera/SystemCameraFragment.kt b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/camera/BasicCameraFragment.kt similarity index 96% rename from rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/camera/SystemCameraFragment.kt rename to rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/camera/BasicCameraFragment.kt index 0f1b8bd..f867e61 100644 --- a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/camera/SystemCameraFragment.kt +++ b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/camera/BasicCameraFragment.kt @@ -15,7 +15,7 @@ import io.reactivex.subjects.PublishSubject import java.text.SimpleDateFormat import java.util.* -class SystemCameraFragment : BaseSystemPickerFragment(), ICameraCustomPickerView { +class BasicCameraFragment : BaseSystemPickerFragment(), ICameraCustomPickerView { private var cameraPictureUrl: Uri? = null diff --git a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/gallery/DefaultSystemGalleryConfig.kt b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/gallery/BasicGalleryConfig.kt similarity index 88% rename from rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/gallery/DefaultSystemGalleryConfig.kt rename to rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/gallery/BasicGalleryConfig.kt index 9002eec..fb388c8 100644 --- a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/gallery/DefaultSystemGalleryConfig.kt +++ b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/gallery/BasicGalleryConfig.kt @@ -74,5 +74,12 @@ sealed class DefaultGalleryMimes { fun imageOnly(): BaseMimesType = Image fun audioOnly(): BaseMimesType = Audio + + // Call this function if you want to select multiple types at the same time. + // For example: "video/*;image/*" + fun customTypes(types: String): BaseMimesType = object : BaseMimesType() { + + override fun getMimesType(): String = types + } } } \ No newline at end of file diff --git a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/gallery/SystemGalleryFragment.kt b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/gallery/BasicGalleryFragment.kt similarity index 96% rename from rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/gallery/SystemGalleryFragment.kt rename to rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/gallery/BasicGalleryFragment.kt index e1c8e55..b549d5c 100644 --- a/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/gallery/SystemGalleryFragment.kt +++ b/rximagepicker/src/main/java/com/qingmei2/rximagepicker/ui/gallery/BasicGalleryFragment.kt @@ -11,7 +11,7 @@ import com.qingmei2.rximagepicker.ui.ICustomPickerConfiguration import io.reactivex.Observable import io.reactivex.subjects.PublishSubject -class SystemGalleryFragment : BaseSystemPickerFragment(), IGalleryCustomPickerView { +class BasicGalleryFragment : BaseSystemPickerFragment(), IGalleryCustomPickerView { private var mDefaultSystemGalleryConfig: DefaultSystemGalleryConfig? = null diff --git a/rximagepicker/src/test/java/com/qingmei2/rximagepicker/core/RxImagePickerTest.kt b/rximagepicker/src/test/java/com/qingmei2/rximagepicker/core/RxImagePickerTest.kt index 716f8d4..df9b55a 100644 --- a/rximagepicker/src/test/java/com/qingmei2/rximagepicker/core/RxImagePickerTest.kt +++ b/rximagepicker/src/test/java/com/qingmei2/rximagepicker/core/RxImagePickerTest.kt @@ -6,7 +6,7 @@ class RxImagePickerTest { // private val mockActivity: FragmentActivity = mock() // private val mockFragmentManager: FragmentManager = mock() // -// private val mockPicker: SystemImagePicker = mock() +// private val mockPicker: BasicImagePicker = mock() // // @Before // fun setUp() { @@ -46,13 +46,13 @@ class RxImagePickerTest { // fun createTestWithNoParamSuccess() { // val spy = instanceWithActivityBuilder() // .let { spy(it) } -// doReturn(mockPicker).whenever(spy).create(SystemImagePicker::class.java) +// doReturn(mockPicker).whenever(spy).create(BasicImagePicker::class.java) // // val defaultImagePicker = spy.create() // // argumentCaptor>().apply { // verify(spy, Times(1)).create(capture()) -// assertEquals(firstValue, SystemImagePicker::class.java) +// assertEquals(firstValue, BasicImagePicker::class.java) // } // assertEquals(defaultImagePicker, mockPicker) // } diff --git a/sample/src/main/java/com/qingmei2/sample/system/SystemActivity.kt b/sample/src/main/java/com/qingmei2/sample/system/SystemActivity.kt index ca32aa3..84bb5f6 100644 --- a/sample/src/main/java/com/qingmei2/sample/system/SystemActivity.kt +++ b/sample/src/main/java/com/qingmei2/sample/system/SystemActivity.kt @@ -14,7 +14,7 @@ import kotlinx.android.synthetic.main.activity_system.* @SuppressLint("CheckResult") class SystemActivity : AppCompatActivity() { - private lateinit var defaultImagePicker: BasicImagePicker + private lateinit var defaultImagePicker: SystemImagePicker override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -26,7 +26,7 @@ class SystemActivity : AppCompatActivity() { } private fun initRxImagePicker() { - defaultImagePicker = RxImagePicker.create(BasicImagePicker::class.java) + defaultImagePicker = RxImagePicker.create(SystemImagePicker::class.java) } private fun pickGallery() { @@ -34,7 +34,10 @@ class SystemActivity : AppCompatActivity() { .openGallery( this, DefaultSystemGalleryConfig.instance( - mimesType = DefaultGalleryMimes.videoOnly() + // mimesType = DefaultGalleryMimes.videoOnly() // only video files + // mimesType = DefaultGalleryMimes.imageOnly() // only image files, default options. + // mimesType = DefaultGalleryMimes.audioOnly() // only audio files + mimesType = DefaultGalleryMimes.customTypes("video/*;image/*") // multiType ) ) .subscribe { result -> onPickUriSuccess(result.uri) } diff --git a/sample/src/main/java/com/qingmei2/sample/system/BasicImagePicker.kt b/sample/src/main/java/com/qingmei2/sample/system/SystemImagePicker.kt similarity index 73% rename from sample/src/main/java/com/qingmei2/sample/system/BasicImagePicker.kt rename to sample/src/main/java/com/qingmei2/sample/system/SystemImagePicker.kt index 12cd696..248e042 100644 --- a/sample/src/main/java/com/qingmei2/sample/system/BasicImagePicker.kt +++ b/sample/src/main/java/com/qingmei2/sample/system/SystemImagePicker.kt @@ -7,10 +7,11 @@ import com.qingmei2.rximagepicker.entity.sources.Gallery import com.qingmei2.rximagepicker.ui.ICustomPickerConfiguration import io.reactivex.Observable -interface BasicImagePicker { +interface SystemImagePicker { @Gallery - fun openGallery(context: Context, config: ICustomPickerConfiguration): Observable + fun openGallery(context: Context, + config: ICustomPickerConfiguration?): Observable @Camera fun openCamera(context: Context): Observable