From 7695b2d4f0322390c2b2cc372a84a12acd81d29a Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Mon, 9 Dec 2019 09:28:22 +0530 Subject: [PATCH 01/13] Fixed Camera opens twice when "Don't keep activities" option is ON Fixed Camera opens twice when "Don't keep activities" option is ON #41 --- .../imagepicker/ImagePickerActivity.kt | 62 +++++++++++++++---- .../imagepicker/provider/BaseProvider.kt | 16 +++++ .../imagepicker/provider/CameraProvider.kt | 35 ++++++++++- .../imagepicker/provider/CropProvider.kt | 29 +++++++++ 4 files changed, 126 insertions(+), 16 deletions(-) diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/ImagePickerActivity.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/ImagePickerActivity.kt index 9b802a2a..ccd378d0 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/ImagePickerActivity.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/ImagePickerActivity.kt @@ -26,6 +26,11 @@ class ImagePickerActivity : FragmentActivity() { companion object { private const val TAG = "image_picker" + /** + * Key to Save/Retrieve Image File state + */ + private const val STATE_IMAGE_FILE = "state.image_file" + internal fun getCancelledIntent(context: Context): Intent { val intent = Intent() val message = context.getString(R.string.error_task_cancelled) @@ -39,37 +44,68 @@ class ImagePickerActivity : FragmentActivity() { private lateinit var mCropProvider: CropProvider private lateinit var mCompressionProvider: CompressionProvider - private var mOriginalFile: File? = null + /** File provided by GalleryProvider or CameraProvider */ + private var mImageFile: File? = null + + /** File provided by CropProvider */ private var mCropFile: File? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - loadBundle() + restoreInstanceState(savedInstanceState) + loadBundle(savedInstanceState) + } + + /** + * Restore saved state + */ + private fun restoreInstanceState(savedInstanceState: Bundle?) { + if (savedInstanceState != null) { + mImageFile = savedInstanceState.getSerializable(STATE_IMAGE_FILE) as File? + } + } + + /** + * Save all appropriate activity state. + */ + public override fun onSaveInstanceState(outState: Bundle) { + outState.putSerializable(STATE_IMAGE_FILE, mImageFile) + mCameraProvider?.onSaveInstanceState(outState) + mCropProvider.onSaveInstanceState(outState) + super.onSaveInstanceState(outState) } /** * Parse Intent Bundle and initialize variables */ - private fun loadBundle() { + private fun loadBundle(savedInstanceState: Bundle?) { + // Create Crop Provider mCropProvider = CropProvider(this) + mCropProvider.onRestoreInstanceState(savedInstanceState) + + // Create Compression Provider mCompressionProvider = CompressionProvider(this) - val bundle = intent?.extras - val provider = bundle?.getSerializable(ImagePicker.EXTRA_IMAGE_PROVIDER) as ImageProvider? + // Retrieve Image Provider + val provider: ImageProvider? = + intent?.getSerializableExtra(ImagePicker.EXTRA_IMAGE_PROVIDER) as ImageProvider? - // Create provider object and start process + // Create Gallery/Camera Provider when (provider) { ImageProvider.GALLERY -> { mGalleryProvider = GalleryProvider(this) - mGalleryProvider?.startIntent() + // Pick Gallery Image + savedInstanceState ?: mGalleryProvider?.startIntent() } ImageProvider.CAMERA -> { mCameraProvider = CameraProvider(this) - mCameraProvider?.startIntent() + mCameraProvider?.onRestoreInstanceState(savedInstanceState) + // Pick Camera Image + savedInstanceState ?: mCameraProvider?.startIntent() } else -> { - Log.e(TAG, "Image provider can not be null") // Something went Wrong! This case should never happen + Log.e(TAG, "Image provider can not be null") setError(getString(R.string.error_task_cancelled)) } } @@ -111,7 +147,7 @@ class ImagePickerActivity : FragmentActivity() { * @param file Capture/Gallery image file */ fun setImage(file: File) { - mOriginalFile = file + mImageFile = file when { mCropProvider.isCropEnabled() -> mCropProvider.startIntent(file) mCompressionProvider.isCompressionRequired(file) -> mCompressionProvider.compress(file) @@ -132,8 +168,8 @@ class ImagePickerActivity : FragmentActivity() { mCameraProvider?.let { // Delete Camera file after crop. Else there will be two image for the same action. // In case of Gallery Provider, we will get original image path, so we will not delete that. - mOriginalFile?.delete() - mOriginalFile = null + mImageFile?.delete() + mImageFile = null } if (mCompressionProvider.isCompressionRequired(file)) { @@ -153,7 +189,7 @@ class ImagePickerActivity : FragmentActivity() { mCameraProvider?.let { // Delete Camera file after Compress. Else there will be two image for the same action. // In case of Gallery Provider, we will get original image path, so we will not delete that. - mOriginalFile?.delete() + mImageFile?.delete() } // If crop file is not null, Delete it after crop diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/BaseProvider.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/BaseProvider.kt index 4247ebdb..e4a08b11 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/BaseProvider.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/BaseProvider.kt @@ -1,6 +1,7 @@ package com.github.dhaval2404.imagepicker.provider import android.content.ContextWrapper +import android.os.Bundle import android.widget.Toast import com.github.dhaval2404.imagepicker.ImagePickerActivity @@ -55,4 +56,19 @@ abstract class BaseProvider(protected val activity: ImagePickerActivity) : Conte */ protected open fun onFailure() { } + + /** + * Save all appropriate provider state. + */ + open fun onSaveInstanceState(outState: Bundle) { + } + + /** + * Restores the saved state for all Providers. + * + * @param savedInstanceState the Bundle returned by {@link #onSaveInstanceState()} + * @see #onSaveInstanceState() + */ + open fun onRestoreInstanceState(savedInstanceState: Bundle?) { + } } \ No newline at end of file diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CameraProvider.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CameraProvider.kt index 9c65fd66..65d854a9 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CameraProvider.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CameraProvider.kt @@ -4,6 +4,7 @@ import android.Manifest import android.app.Activity import android.content.Context import android.content.Intent +import android.os.Bundle import androidx.core.app.ActivityCompat.requestPermissions import com.github.dhaval2404.imagepicker.ImagePickerActivity import com.github.dhaval2404.imagepicker.R @@ -23,6 +24,10 @@ import java.io.File class CameraProvider(activity: ImagePickerActivity) : BaseProvider(activity) { companion object { + /** + * Key to Save/Retrieve Camera File state + */ + private const val STATE_CAMERA_FILE = "state.camera_file" /** * Permission Require for Image Capture using Camera @@ -54,6 +59,29 @@ class CameraProvider(activity: ImagePickerActivity) : BaseProvider(activity) { private val mAskCameraPermission = PermissionUtil .isPermissionInManifest(this, Manifest.permission.CAMERA) + /** + * Save CameraProvider state + + * mCameraFile will lose its state when activity is recreated on + * Orientation change or for Low memory device. + * + * Here, We Will save its state for later use + * + * Note: To produce this scenario, enable "Don't keep activities" from developer options + **/ + override fun onSaveInstanceState(outState: Bundle) { + // Save Camera File + outState.putSerializable(STATE_CAMERA_FILE, mCameraFile) + } + + /** + * Retrieve CameraProvider state + */ + override fun onRestoreInstanceState(savedInstanceState: Bundle?) { + // Restore Camera File + mCameraFile = savedInstanceState?.getSerializable(STATE_CAMERA_FILE) as File? + } + /** * Start Camera Capture Intent */ @@ -83,11 +111,12 @@ class CameraProvider(activity: ImagePickerActivity) : BaseProvider(activity) { */ private fun startCameraIntent() { // Create and get empty file to store capture image content - mCameraFile = FileUtil.getImageFile() + val file = FileUtil.getImageFile() + mCameraFile = file // Check if file exists - if (mCameraFile != null && mCameraFile!!.exists()) { - val cameraIntent = IntentUtils.getCameraIntent(this, mCameraFile!!) + if (file != null && file.exists()) { + val cameraIntent = IntentUtils.getCameraIntent(this, file) activity.startActivityForResult(cameraIntent, CAMERA_INTENT_REQ_CODE) } else { setError(R.string.error_failed_to_create_camera_image_file) diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CropProvider.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CropProvider.kt index 462a95e3..6f52385b 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CropProvider.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CropProvider.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.content.ActivityNotFoundException import android.content.Intent import android.net.Uri +import android.os.Bundle import android.util.Log import com.github.dhaval2404.imagepicker.ImagePicker import com.github.dhaval2404.imagepicker.ImagePickerActivity @@ -24,6 +25,11 @@ class CropProvider(activity: ImagePickerActivity) : BaseProvider(activity) { companion object { private val TAG = CropProvider::class.java.simpleName + + /** + * Key to Save/Retrieve Crop File state + */ + private const val STATE_CROP_FILE = "state.crop_file" } private val mMaxWidth: Int @@ -47,6 +53,29 @@ class CropProvider(activity: ImagePickerActivity) : BaseProvider(activity) { mCropAspectY = bundle.getFloat(ImagePicker.EXTRA_CROP_Y, 0f) } + /** + * Save CameraProvider state + * + * mCropImageFile will lose its state when activity is recreated on + * Orientation change or for Low memory device. + * + * Here, We Will save its state for later use + * + * Note: To produce this scenario, enable "Don't keep activities" from developer options + */ + override fun onSaveInstanceState(outState: Bundle) { + // Save crop file + outState.putSerializable(STATE_CROP_FILE, mCropImageFile) + } + + /** + * Retrieve CropProvider state + */ + override fun onRestoreInstanceState(savedInstanceState: Bundle?) { + // Restore crop file + mCropImageFile = savedInstanceState?.getSerializable(STATE_CROP_FILE) as File? + } + /** * Check if crop should be enabled or not * From 41a72da9f996af5f7fbddd93c0e829921a8a4003 Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Sat, 14 Dec 2019 23:18:33 +0530 Subject: [PATCH 02/13] Upgrade ucrop lib to 2.2.4 Upgrade ucrop libr to 2.2.4 --- imagepicker/build.gradle | 2 +- .../github/dhaval2404/imagepicker/ImagePickerActivity.kt | 3 ++- imagepicker/src/main/res/values/colors.xml | 7 +++++++ sample/src/main/res/values/colors.xml | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/imagepicker/build.gradle b/imagepicker/build.gradle index 0cf2b966..c8c43048 100644 --- a/imagepicker/build.gradle +++ b/imagepicker/build.gradle @@ -46,7 +46,7 @@ dependencies { implementation "androidx.exifinterface:exifinterface:1.0.0" //More Info: https://github.com/Yalantis/uCrop - implementation 'com.github.yalantis:ucrop:2.2.2' + implementation 'com.github.yalantis:ucrop:2.2.4' //More Info: https://github.com/florent37/InlineActivityResult compileOnly 'com.github.florent37:inline-activity-result-kotlin:1.0.1' diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/ImagePickerActivity.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/ImagePickerActivity.kt index ccd378d0..19572bb9 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/ImagePickerActivity.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/ImagePickerActivity.kt @@ -6,6 +6,7 @@ import android.content.Intent import android.net.Uri import android.os.Bundle import android.util.Log +import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.FragmentActivity import com.github.dhaval2404.imagepicker.constant.ImageProvider import com.github.dhaval2404.imagepicker.provider.CameraProvider @@ -21,7 +22,7 @@ import java.io.File * @version 1.0 * @since 04 January 2019 */ -class ImagePickerActivity : FragmentActivity() { +class ImagePickerActivity : AppCompatActivity() { companion object { private const val TAG = "image_picker" diff --git a/imagepicker/src/main/res/values/colors.xml b/imagepicker/src/main/res/values/colors.xml index b9da232d..371454ff 100644 --- a/imagepicker/src/main/res/values/colors.xml +++ b/imagepicker/src/main/res/values/colors.xml @@ -4,4 +4,11 @@ #757575 #757575 + + @color/ucrop_color_widget_active + #787878 + @color/ucrop_color_widget_active + @color/ucrop_color_widget_active + @color/ucrop_color_widget_active + diff --git a/sample/src/main/res/values/colors.xml b/sample/src/main/res/values/colors.xml index 8b40f100..8dfd03ac 100644 --- a/sample/src/main/res/values/colors.xml +++ b/sample/src/main/res/values/colors.xml @@ -8,6 +8,7 @@ @color/teal_500 @color/teal_700 @color/teal_500 + #fff @color/grey_600 @color/grey_600 From a7bb5634ed46e224520705acc4ee299f1e6e4b0b Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Tue, 17 Dec 2019 10:19:12 +0530 Subject: [PATCH 03/13] Update ktlint to 0.36.0 Update ktlint version to 0.36.0 --- ktlint.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ktlint.gradle b/ktlint.gradle index 5ccfa984..9ad89c0a 100644 --- a/ktlint.gradle +++ b/ktlint.gradle @@ -7,7 +7,7 @@ configurations { } dependencies { - ktlint "com.pinterest:ktlint:0.32.0" + ktlint "com.pinterest:ktlint:0.36.0" // additional 3rd party ruleset(s) can be specified here // just add them to the classpath (e.g. ktlint 'groupId:artifactId:version') and // ktlint will pick them up From c798e288387b01c8e83ccf35c97d711a92d879e1 Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Tue, 17 Dec 2019 10:19:37 +0530 Subject: [PATCH 04/13] Update exifinterface version to 1.1.0 Update exifinterface version to 1.1.0 --- imagepicker/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imagepicker/build.gradle b/imagepicker/build.gradle index c8c43048..11963f3d 100644 --- a/imagepicker/build.gradle +++ b/imagepicker/build.gradle @@ -43,7 +43,7 @@ dependencies { implementation 'androidx.core:core-ktx:1.1.0' implementation 'androidx.appcompat:appcompat:1.1.0' - implementation "androidx.exifinterface:exifinterface:1.0.0" + implementation "androidx.exifinterface:exifinterface:1.1.0" //More Info: https://github.com/Yalantis/uCrop implementation 'com.github.yalantis:ucrop:2.2.4' From 3956986cdfd20da1f9db1ebb01f58fdbf113d47b Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Tue, 17 Dec 2019 10:25:31 +0530 Subject: [PATCH 05/13] Update glide to 4.10.0 Update glide version to 4.10.0 --- sample/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample/build.gradle b/sample/build.gradle index 2dc0a88b..88cbc9c8 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -46,7 +46,7 @@ dependencies { androidTestImplementation 'androidx.test:core:1.2.0' //Image Loading Lib - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.10.0' //Leakcanary debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.0-beta-3' From 0720582c5fbfaf29ce7da6801e26af40f3efae6b Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Tue, 17 Dec 2019 10:26:55 +0530 Subject: [PATCH 06/13] Update material to 1.1.0-beta02 Update material version to 1.1.0-beta02 --- sample/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample/build.gradle b/sample/build.gradle index 88cbc9c8..6b7b0f6b 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -38,7 +38,7 @@ dependencies { implementation 'androidx.core:core-ktx:1.1.0' implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'com.google.android.material:material:1.1.0-beta01' + implementation 'com.google.android.material:material:1.1.0-beta02' implementation 'com.github.florent37:inline-activity-result-kotlin:1.0.1' testImplementation 'junit:junit:4.12' From b97706404c52c9a6fe39b6133f5fd90535cc16f3 Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Tue, 17 Dec 2019 10:30:54 +0530 Subject: [PATCH 07/13] Update build gradle to v3.5.3 Update build gradle to v3.5.3 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index a383fbff..608dcd47 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ buildscript { maven { url "https://jitpack.io" } } dependencies { - classpath 'com.android.tools.build:gradle:3.5.1' + classpath 'com.android.tools.build:gradle:3.5.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" //jcenter plugins From 15334cd027f4db89e3ccb5a9b1b945a657ac70c5 Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Tue, 17 Dec 2019 10:49:26 +0530 Subject: [PATCH 08/13] Applied ktlint Applied ktlint code formatting --- .../github/dhaval2404/imagepicker/ExampleInstrumentedTest.kt | 2 +- .../com/github/dhaval2404/imagepicker/ImagePickerActivity.kt | 3 +-- .../github/dhaval2404/imagepicker/constant/ImageProvider.kt | 2 +- .../github/dhaval2404/imagepicker/listener/ResultListener.kt | 2 +- .../github/dhaval2404/imagepicker/provider/BaseProvider.kt | 2 +- .../dhaval2404/imagepicker/provider/CompressionProvider.kt | 2 +- .../github/dhaval2404/imagepicker/provider/CropProvider.kt | 2 +- .../dhaval2404/imagepicker/provider/GalleryProvider.kt | 2 +- .../com/github/dhaval2404/imagepicker/util/DialogHelper.kt | 2 +- .../com/github/dhaval2404/imagepicker/util/FileUriUtils.kt | 4 ++-- .../com/github/dhaval2404/imagepicker/util/FileUtil.kt | 2 +- .../com/github/dhaval2404/imagepicker/util/ImageUtil.kt | 4 ++-- .../com/github/dhaval2404/imagepicker/util/PermissionUtil.kt | 2 +- .../com/github/dhaval2404/imagepicker/ExampleUnitTest.kt | 5 ++--- .../com.github.dhaval2404.imagepicker/sample/MainActivity.kt | 2 +- 15 files changed, 18 insertions(+), 20 deletions(-) diff --git a/imagepicker/src/androidTest/java/com/github/dhaval2404/imagepicker/ExampleInstrumentedTest.kt b/imagepicker/src/androidTest/java/com/github/dhaval2404/imagepicker/ExampleInstrumentedTest.kt index c06a218b..46dfd6ad 100644 --- a/imagepicker/src/androidTest/java/com/github/dhaval2404/imagepicker/ExampleInstrumentedTest.kt +++ b/imagepicker/src/androidTest/java/com/github/dhaval2404/imagepicker/ExampleInstrumentedTest.kt @@ -17,4 +17,4 @@ class ExampleInstrumentedTest { assertEquals("com.github.dhaval2404.imagepicker.test", appContext.packageName) } -} \ No newline at end of file +} diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/ImagePickerActivity.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/ImagePickerActivity.kt index 19572bb9..a26a7308 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/ImagePickerActivity.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/ImagePickerActivity.kt @@ -7,7 +7,6 @@ import android.net.Uri import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity -import androidx.fragment.app.FragmentActivity import com.github.dhaval2404.imagepicker.constant.ImageProvider import com.github.dhaval2404.imagepicker.provider.CameraProvider import com.github.dhaval2404.imagepicker.provider.CompressionProvider @@ -232,4 +231,4 @@ class ImagePickerActivity : AppCompatActivity() { setResult(ImagePicker.RESULT_ERROR, intent) finish() } -} \ No newline at end of file +} diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/constant/ImageProvider.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/constant/ImageProvider.kt index a7cdded8..b01bfa12 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/constant/ImageProvider.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/constant/ImageProvider.kt @@ -11,4 +11,4 @@ enum class ImageProvider { GALLERY, CAMERA, BOTH -} \ No newline at end of file +} diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/listener/ResultListener.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/listener/ResultListener.kt index 44eb7972..9d9b771d 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/listener/ResultListener.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/listener/ResultListener.kt @@ -11,4 +11,4 @@ package com.github.dhaval2404.imagepicker.listener internal interface ResultListener { fun onResult(t: T?) -} \ No newline at end of file +} diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/BaseProvider.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/BaseProvider.kt index e4a08b11..b4ba8bff 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/BaseProvider.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/BaseProvider.kt @@ -71,4 +71,4 @@ abstract class BaseProvider(protected val activity: ImagePickerActivity) : Conte */ open fun onRestoreInstanceState(savedInstanceState: Bundle?) { } -} \ No newline at end of file +} diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CompressionProvider.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CompressionProvider.kt index ffa81021..ea1e6fd5 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CompressionProvider.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CompressionProvider.kt @@ -221,4 +221,4 @@ class CompressionProvider(activity: ImagePickerActivity) : BaseProvider(activity BitmapFactory.decodeFile(file.absolutePath, options) return intArrayOf(options.outWidth, options.outHeight) } -} \ No newline at end of file +} diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CropProvider.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CropProvider.kt index 6f52385b..8b6b0504 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CropProvider.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/CropProvider.kt @@ -167,4 +167,4 @@ class CropProvider(activity: ImagePickerActivity) : BaseProvider(activity) { override fun onFailure() { mCropImageFile?.delete() } -} \ No newline at end of file +} diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/GalleryProvider.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/GalleryProvider.kt index fca25ec1..7c19421b 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/GalleryProvider.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/provider/GalleryProvider.kt @@ -109,4 +109,4 @@ class GalleryProvider(activity: ImagePickerActivity) : BaseProvider(activity) { setError(R.string.error_failed_pick_gallery_image) } } -} \ No newline at end of file +} diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/DialogHelper.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/DialogHelper.kt index 007c5ce3..ad116543 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/DialogHelper.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/DialogHelper.kt @@ -48,4 +48,4 @@ internal object DialogHelper { dialog.dismiss() } } -} \ No newline at end of file +} diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/FileUriUtils.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/FileUriUtils.kt index ae2cd355..e500c9bd 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/FileUriUtils.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/FileUriUtils.kt @@ -8,9 +8,9 @@ import android.os.Build import android.os.Environment import android.provider.DocumentsContract import android.provider.MediaStore -import java.io.IOException import java.io.File import java.io.FileOutputStream +import java.io.IOException import java.io.InputStream import java.io.OutputStream @@ -232,4 +232,4 @@ object FileUriUtils { private fun isGooglePhotosUri(uri: Uri): Boolean { return "com.google.android.apps.photos.content" == uri.authority } -} \ No newline at end of file +} diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/FileUtil.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/FileUtil.kt index 3766070c..a2c88590 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/FileUtil.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/FileUtil.kt @@ -5,8 +5,8 @@ import android.os.StatFs import java.io.File import java.io.IOException import java.text.SimpleDateFormat -import java.util.Locale import java.util.Date +import java.util.Locale /** * File Utility Methods diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/ImageUtil.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/ImageUtil.kt index 4b11ba7e..0969a8aa 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/ImageUtil.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/ImageUtil.kt @@ -17,8 +17,8 @@ package com.github.dhaval2404.imagepicker.util import android.graphics.Bitmap import android.graphics.BitmapFactory -import android.graphics.Matrix import android.graphics.Canvas +import android.graphics.Matrix import android.graphics.Paint import androidx.exifinterface.media.ExifInterface import java.io.File @@ -185,4 +185,4 @@ object ImageUtil { return inSampleSize } -} \ No newline at end of file +} diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/PermissionUtil.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/PermissionUtil.kt index 2125f1a5..a9926bf1 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/PermissionUtil.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/PermissionUtil.kt @@ -61,4 +61,4 @@ object PermissionUtil { return false } -} \ No newline at end of file +} diff --git a/imagepicker/src/test/java/com/github/dhaval2404/imagepicker/ExampleUnitTest.kt b/imagepicker/src/test/java/com/github/dhaval2404/imagepicker/ExampleUnitTest.kt index 98de67a4..f482aa42 100644 --- a/imagepicker/src/test/java/com/github/dhaval2404/imagepicker/ExampleUnitTest.kt +++ b/imagepicker/src/test/java/com/github/dhaval2404/imagepicker/ExampleUnitTest.kt @@ -1,8 +1,7 @@ package com.github.dhaval2404.imagepicker -import org.junit.Test - import org.junit.Assert.assertEquals +import org.junit.Test /** * Example local unit test, which will execute on the development machine (host). @@ -14,4 +13,4 @@ class ExampleUnitTest { fun addition_isCorrect() { assertEquals(4, (2 + 2).toLong()) } -} \ No newline at end of file +} diff --git a/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/MainActivity.kt b/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/MainActivity.kt index f529f7c7..f18c5ad3 100644 --- a/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/MainActivity.kt +++ b/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/MainActivity.kt @@ -31,7 +31,7 @@ class MainActivity : AppCompatActivity() { fab_add_photo.setOnClickListener { ImagePicker.with(this) - .cropSquare() // Crop Square image(Optional) + .crop() // Crop Square image(Optional) .maxResultSize(620, 620) // Final image resolution will be less than 620 x 620(Optional) .start(PROFILE_IMAGE_REQ_CODE) } From 45fd93631d81774f4e128b22b8daa697ba92594a Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Tue, 17 Dec 2019 11:55:30 +0530 Subject: [PATCH 09/13] BitmapFactory use inBitmap and remove deprecated property BitmapFactory use inBitmap and remove deprecated property #33 --- .../dhaval2404/imagepicker/util/ImageUtil.kt | 43 +++++++++++++++++-- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/ImageUtil.kt b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/ImageUtil.kt index 0969a8aa..4c183c29 100644 --- a/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/ImageUtil.kt +++ b/imagepicker/src/main/kotlin/com/github/dhaval2404/imagepicker/util/ImageUtil.kt @@ -20,6 +20,7 @@ import android.graphics.BitmapFactory import android.graphics.Canvas import android.graphics.Matrix import android.graphics.Paint +import android.os.Build import androidx.exifinterface.media.ExifInterface import java.io.File import java.io.FileOutputStream @@ -105,9 +106,13 @@ object ImageUtil { // Calculate inSampleSize options.inSampleSize = calculateInSampleSize(options, actualWidth, actualHeight) options.inJustDecodeBounds = false - options.inDither = false - options.inPurgeable = true - options.inInputShareable = true + + if (bmp != null && canUseForInBitmap(bmp, options)) { + // inBitmap only works with mutable bitmaps, so force the decoder to + // return mutable bitmaps. + options.inMutable = true + options.inBitmap = bmp + } options.inTempStorage = ByteArray(16 * 1024) try { @@ -185,4 +190,36 @@ object ImageUtil { return inSampleSize } + + /** + * Ref: https://developer.android.com/topic/performance/graphics/manage-memory#kotlin + */ + private fun canUseForInBitmap(candidate: Bitmap, targetOptions: BitmapFactory.Options): Boolean { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + // From Android 4.4 (KitKat) onward we can re-use if the byte size of + // the new bitmap is smaller than the reusable bitmap candidate + // allocation byte count. + val width: Int = targetOptions.outWidth / targetOptions.inSampleSize + val height: Int = targetOptions.outHeight / targetOptions.inSampleSize + val byteCount: Int = width * height * getBytesPerPixel(candidate.config) + byteCount <= candidate.allocationByteCount + } else { + // On earlier versions, the dimensions must match exactly and the inSampleSize must be 1 + candidate.width == targetOptions.outWidth && + candidate.height == targetOptions.outHeight && + targetOptions.inSampleSize == 1 + } + } + + /** + * A helper function to return the byte usage per pixel of a bitmap based on its configuration. + */ + private fun getBytesPerPixel(config: Bitmap.Config): Int { + return when (config) { + Bitmap.Config.ARGB_8888 -> 4 + Bitmap.Config.RGB_565, Bitmap.Config.ARGB_4444 -> 2 + Bitmap.Config.ALPHA_8 -> 1 + else -> 1 + } + } } From 32e7412ba6886720e9a52c78068b3fcb9d3a027c Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Mon, 6 Jan 2020 23:14:37 +0530 Subject: [PATCH 10/13] Improved sample app UI/UX Improved sample app UI/UX --- sample/build.gradle | 6 + .../imagepicker/MainActivityEspressoTest.kt | 30 ++++ .../sample/ImageViewExtension.kt | 5 +- .../sample/ImageViewerDialog.kt | 53 +++++++ .../sample/MainActivity.kt | 132 ++++++++++++++---- .../sample/util/FileUtil.kt | 66 +++++++++ .../sample/util/IntentUtil.kt | 47 +++++++ .../src/main/res/drawable-hdpi/ic_github.png | Bin 0 -> 2330 bytes .../outline_cloud_upload_white_24.png | Bin 445 -> 0 bytes .../outline_cloud_upload_white_24.png | Bin 301 -> 0 bytes .../drawable-v24/ic_launcher_foreground.xml | 34 ----- .../outline_cloud_upload_white_24.png | Bin 560 -> 0 bytes .../outline_cloud_upload_white_24.png | Bin 813 -> 0 bytes .../outline_cloud_upload_white_24.png | Bin 1074 -> 0 bytes .../main/res/drawable/baseline_photo_24.xml | 10 ++ .../res/drawable/baseline_photo_camera_24.xml | 13 ++ .../res/drawable/ic_launcher_background.xml | 74 ---------- sample/src/main/res/drawable/ic_person.xml | 10 ++ .../src/main/res/drawable/img_camera_code.png | Bin 0 -> 56931 bytes .../main/res/drawable/img_gallery_code.png | Bin 0 -> 80399 bytes .../main/res/drawable/img_profile_code.png | Bin 0 -> 57656 bytes .../res/drawable/outline_cloud_upload_24.xml | 10 ++ .../src/main/res/drawable/outline_code_24.xml | 10 ++ .../src/main/res/drawable/outline_info_24.xml | 10 ++ sample/src/main/res/drawable/profile_bg.xml | 8 ++ sample/src/main/res/drawable/shape_ring.xml | 9 -- .../main/res/layout/content_camera_only.xml | 56 +++++--- .../main/res/layout/content_gallery_only.xml | 76 +++++----- .../src/main/res/layout/content_profile.xml | 71 +++++++--- .../main/res/layout/dialog_imageviewer.xml | 15 ++ sample/src/main/res/menu/menu_main.xml | 18 ++- sample/src/main/res/values/strings.xml | 2 +- sample/src/main/res/values/styles.xml | 28 ++++ 33 files changed, 559 insertions(+), 234 deletions(-) create mode 100644 sample/src/androidTest/java/com/github/dhaval2404/imagepicker/MainActivityEspressoTest.kt create mode 100644 sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/ImageViewerDialog.kt create mode 100644 sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/util/FileUtil.kt create mode 100644 sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/util/IntentUtil.kt create mode 100644 sample/src/main/res/drawable-hdpi/ic_github.png delete mode 100644 sample/src/main/res/drawable-hdpi/outline_cloud_upload_white_24.png delete mode 100644 sample/src/main/res/drawable-mdpi/outline_cloud_upload_white_24.png delete mode 100644 sample/src/main/res/drawable-v24/ic_launcher_foreground.xml delete mode 100644 sample/src/main/res/drawable-xhdpi/outline_cloud_upload_white_24.png delete mode 100644 sample/src/main/res/drawable-xxhdpi/outline_cloud_upload_white_24.png delete mode 100644 sample/src/main/res/drawable-xxxhdpi/outline_cloud_upload_white_24.png create mode 100644 sample/src/main/res/drawable/baseline_photo_24.xml create mode 100644 sample/src/main/res/drawable/baseline_photo_camera_24.xml delete mode 100644 sample/src/main/res/drawable/ic_launcher_background.xml create mode 100644 sample/src/main/res/drawable/ic_person.xml create mode 100644 sample/src/main/res/drawable/img_camera_code.png create mode 100644 sample/src/main/res/drawable/img_gallery_code.png create mode 100644 sample/src/main/res/drawable/img_profile_code.png create mode 100644 sample/src/main/res/drawable/outline_cloud_upload_24.xml create mode 100644 sample/src/main/res/drawable/outline_code_24.xml create mode 100644 sample/src/main/res/drawable/outline_info_24.xml create mode 100644 sample/src/main/res/drawable/profile_bg.xml delete mode 100644 sample/src/main/res/drawable/shape_ring.xml create mode 100644 sample/src/main/res/layout/dialog_imageviewer.xml diff --git a/sample/build.gradle b/sample/build.gradle index 6b7b0f6b..ba92d89e 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -38,6 +38,7 @@ dependencies { implementation 'androidx.core:core-ktx:1.1.0' implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.browser:browser:1.2.0' implementation 'com.google.android.material:material:1.1.0-beta02' implementation 'com.github.florent37:inline-activity-result-kotlin:1.0.1' @@ -52,4 +53,9 @@ dependencies { debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.0-beta-3' implementation project(':imagepicker') + + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0' + androidTestImplementation 'androidx.test:rules:1.2.0' + androidTestImplementation 'androidx.test:runner:1.2.0' } diff --git a/sample/src/androidTest/java/com/github/dhaval2404/imagepicker/MainActivityEspressoTest.kt b/sample/src/androidTest/java/com/github/dhaval2404/imagepicker/MainActivityEspressoTest.kt new file mode 100644 index 00000000..10cf077f --- /dev/null +++ b/sample/src/androidTest/java/com/github/dhaval2404/imagepicker/MainActivityEspressoTest.kt @@ -0,0 +1,30 @@ +package com.github.dhaval2404.imagepicker + +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.action.ViewActions +import androidx.test.espresso.assertion.ViewAssertions.matches +import androidx.test.espresso.matcher.ViewMatchers.isDisplayed +import androidx.test.espresso.matcher.ViewMatchers.withId +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.rule.ActivityTestRule +import com.github.dhaval2404.imagepicker.sample.MainActivity +import com.github.dhaval2404.imagepicker.sample.R +import kotlinx.android.synthetic.main.content_gallery_only.* +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class MainActivityEspressoTest { + + @get:Rule + var activityRule: ActivityTestRule = + ActivityTestRule(MainActivity::class.java) + + @Test + fun ensureButtonDisableAfterOneClick() { + onView(withId(R.id.fab_add_photo)).check(matches(isDisplayed())) + onView(withId(R.id.fab_add_gallery_photo)).check(matches(isDisplayed())) + onView(withId(R.id.fab_add_camera_photo)).perform(ViewActions.scrollTo()).check(matches(isDisplayed())) + } +} diff --git a/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/ImageViewExtension.kt b/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/ImageViewExtension.kt index 0343b911..c66f9215 100644 --- a/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/ImageViewExtension.kt +++ b/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/ImageViewExtension.kt @@ -1,12 +1,13 @@ package com.github.dhaval2404.imagepicker.sample import android.widget.ImageView +import androidx.annotation.DrawableRes import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import java.io.File -fun ImageView.setRemoteImage(url: String, applyCircle: Boolean = false) { - val glide = Glide.with(this).load(url) +fun ImageView.setDrawableImage(@DrawableRes resource: Int, applyCircle: Boolean = false) { + val glide = Glide.with(this).load(resource) if (applyCircle) { glide.apply(RequestOptions.circleCropTransform()).into(this) } else { diff --git a/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/ImageViewerDialog.kt b/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/ImageViewerDialog.kt new file mode 100644 index 00000000..205633b1 --- /dev/null +++ b/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/ImageViewerDialog.kt @@ -0,0 +1,53 @@ +package com.github.dhaval2404.imagepicker.sample + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.DialogFragment +import kotlinx.android.synthetic.main.dialog_imageviewer.* + +/** + * Dialog to View Image + * + * @author Dhaval Patel + * @version 1.6 + * @since 05 January 2019 + */ +class ImageViewerDialog : DialogFragment() { + + companion object { + + private const val EXTRA_IMAGE_RESOURCE = "extra.image_resource" + + fun newInstance(resource: Int) = ImageViewerDialog().apply { + arguments = Bundle().apply { + putInt(EXTRA_IMAGE_RESOURCE, resource) + } + } + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + val rootView = inflater.inflate(R.layout.dialog_imageviewer, container, false) + return rootView + } + + override fun onActivityCreated(savedInstanceState: Bundle?) { + super.onActivityCreated(savedInstanceState) + codeImg.setImageResource(arguments?.getInt(EXTRA_IMAGE_RESOURCE, 0) ?: 0) + } + + override fun onStart() { + super.onStart() + dialog?.window?.setBackgroundDrawableResource(android.R.color.transparent) + dialog?.let { + val width = ViewGroup.LayoutParams.MATCH_PARENT + val height = ViewGroup.LayoutParams.WRAP_CONTENT + it.window?.setLayout(width, height) + } + } +} diff --git a/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/MainActivity.kt b/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/MainActivity.kt index f18c5ad3..24c784a0 100644 --- a/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/MainActivity.kt +++ b/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/MainActivity.kt @@ -4,10 +4,16 @@ import android.app.Activity import android.content.Intent import android.os.Bundle import android.util.Log +import android.view.Menu +import android.view.MenuItem +import android.view.View import android.widget.Toast +import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import com.github.dhaval2404.imagepicker.ImagePicker -import com.github.dhaval2404.imagepicker.constant.ImageProvider +import com.github.dhaval2404.imagepicker.sample.util.FileUtil +import com.github.dhaval2404.imagepicker.sample.util.IntentUtil +import java.io.File import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.content_camera_only.* import kotlinx.android.synthetic.main.content_gallery_only.* @@ -17,53 +23,87 @@ class MainActivity : AppCompatActivity() { companion object { + private const val GITHUB_REPOSITORY = "https://github.com/Dhaval2404/ImagePicker" + private const val PROFILE_IMAGE_REQ_CODE = 101 private const val GALLERY_IMAGE_REQ_CODE = 102 private const val CAMERA_IMAGE_REQ_CODE = 103 - private const val DEFAULT_IMAGE_URL = - "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTE2nnhjrSnA-nOn-pmBR1w1yIO5VytHaju-l-rUjNixn-w8oE4" } + private var mCameraFile: File? = null + private var mGalleryFile: File? = null + private var mProfileFile: File? = null + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setSupportActionBar(toolbar) + imgProfile.setDrawableImage(R.drawable.ic_person, true) + } - fab_add_photo.setOnClickListener { - ImagePicker.with(this) - .crop() // Crop Square image(Optional) - .maxResultSize(620, 620) // Final image resolution will be less than 620 x 620(Optional) - .start(PROFILE_IMAGE_REQ_CODE) - } + override fun onCreateOptionsMenu(menu: Menu?): Boolean { + menuInflater.inflate(R.menu.menu_main, menu) + return super.onCreateOptionsMenu(menu) + } - fab_add_gallery_photo.setOnClickListener { - ImagePicker.with(this) - .galleryOnly() // User can only select image from Gallery(Optional) - .maxResultSize(1080, 1920) // Final image resolution will be less than 1080 x 1920(Optional) - .start(GALLERY_IMAGE_REQ_CODE) + override fun onOptionsItemSelected(item: MenuItem?): Boolean { + when (item?.itemId) { + R.id.action_github -> { + IntentUtil.openURL(this, GITHUB_REPOSITORY) + return true + } } + return super.onOptionsItemSelected(item) + } - fab_add_camera_photo.setOnClickListener { - ImagePicker.with(this) - .provider(ImageProvider.CAMERA) // Default will be ImageProvider.BOTH - .compress(1024) // Final image size will be less than 1 MB(Optional) - .start(CAMERA_IMAGE_REQ_CODE) - } + fun pickProfileImage(view: View) { + ImagePicker.with(this) + // Crop Square image + .cropSquare() + // Image resolution will be less than 512 x 512 + .maxResultSize(512, 512) + .start(PROFILE_IMAGE_REQ_CODE) + } - imgProfile.setRemoteImage(DEFAULT_IMAGE_URL, true) + fun pickGalleryImage(view: View) { + ImagePicker.with(this) + // Crop Image(User can choose Aspect Ratio) + .crop() + // User can only select image from Gallery + .galleryOnly() + // Image resolution will be less than 1080 x 1920 + .maxResultSize(1080, 1920) + .start(GALLERY_IMAGE_REQ_CODE) + } + + fun pickCameraImage(view: View) { + ImagePicker.with(this) + // User can only capture image from Camera + .cameraOnly() + // Image size will be less than 1024 KB + .compress(1024) + .start(CAMERA_IMAGE_REQ_CODE) } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (resultCode == Activity.RESULT_OK) { + Log.e("TAG", "Path:${ImagePicker.getFilePath(data)}") // File object will not be null for RESULT_OK - val file = ImagePicker.getFile(data) - - Log.e("TAG", "Path:${file?.absolutePath}") + val file = ImagePicker.getFile(data)!! when (requestCode) { - PROFILE_IMAGE_REQ_CODE -> imgProfile.setLocalImage(file!!, true) - GALLERY_IMAGE_REQ_CODE -> imgGallery.setLocalImage(file!!) - CAMERA_IMAGE_REQ_CODE -> imgCamera.setLocalImage(file!!, false) + PROFILE_IMAGE_REQ_CODE -> { + mProfileFile = file + imgProfile.setLocalImage(file, true) + } + GALLERY_IMAGE_REQ_CODE -> { + mGalleryFile = file + imgGallery.setLocalImage(file) + } + CAMERA_IMAGE_REQ_CODE -> { + mCameraFile = file + imgCamera.setLocalImage(file, false) + } } } else if (resultCode == ImagePicker.RESULT_ERROR) { Toast.makeText(this, ImagePicker.getError(data), Toast.LENGTH_SHORT).show() @@ -71,4 +111,42 @@ class MainActivity : AppCompatActivity() { Toast.makeText(this, "Task Cancelled", Toast.LENGTH_SHORT).show() } } + + fun showImageCode(view: View) { + val resource = when (view) { + imgProfileCode -> R.drawable.img_profile_code + imgCameraCode -> R.drawable.img_camera_code + imgGalleryCode -> R.drawable.img_gallery_code + else -> 0 + } + ImageViewerDialog.newInstance(resource).show(supportFragmentManager, "") + } + + fun showImage(view: View) { + val file = when (view) { + imgProfile -> mProfileFile + imgCamera -> mCameraFile + imgGallery -> mGalleryFile + else -> null + } + + file?.let { + IntentUtil.showImage(this, file) + } + } + + fun showImageInfo(view: View) { + val file = when (view) { + imgProfileInfo -> mProfileFile + imgCameraInfo -> mCameraFile + imgGalleryInfo -> mGalleryFile + else -> null + } + + AlertDialog.Builder(this) + .setTitle("Image Info") + .setMessage(FileUtil.getFileInfo(file)) + .setPositiveButton("Ok", null) + .show() + } } diff --git a/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/util/FileUtil.kt b/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/util/FileUtil.kt new file mode 100644 index 00000000..54a970a2 --- /dev/null +++ b/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/util/FileUtil.kt @@ -0,0 +1,66 @@ +package com.github.dhaval2404.imagepicker.sample.util + +import android.graphics.BitmapFactory +import java.io.File +import java.text.SimpleDateFormat +import java.util.* + +/** + * File Utility + * + * @author Dhaval Patel + * @version 1.6 + * @since 05 January 2019 + */ +object FileUtil { + + /** + * @param file File + * @return Image Info + */ + fun getFileInfo(file: File?): String { + if (file == null || !file.exists()) { + return "Image not found" + } + + val resolution = getImageResolution(file) + val sdf = SimpleDateFormat("dd/MM/yyyy hh:mm:ss a", Locale.getDefault()) + val modified = sdf.format(file.lastModified()) + return StringBuilder() + + .append("Resolution: ") + .append("${resolution.first}x${resolution.second}") + .append("\n\n") + + .append("Modified: ") + .append(modified) + .append("\n\n") + + .append("File Size: ") + .append(getFileSize(file)) + .append("\n\n") + + .append("File Path: ") + .append(file.absolutePath) + .toString() + } + + private fun getFileSize(file: File): String { + val fileSize = file.length().toFloat() + val mb = fileSize / (1024 * 1024) + val kb = fileSize / (1024) + + return if (mb > 1) { + "$mb MB" + } else { + "$kb KB" + } + } + + private fun getImageResolution(file: File): Pair { + val options = BitmapFactory.Options() + options.inJustDecodeBounds = true + BitmapFactory.decodeFile(file.absolutePath, options) + return Pair(options.outWidth, options.outHeight) + } +} diff --git a/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/util/IntentUtil.kt b/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/util/IntentUtil.kt new file mode 100644 index 00000000..bc6ab76f --- /dev/null +++ b/sample/src/main/kotlin/com.github.dhaval2404.imagepicker/sample/util/IntentUtil.kt @@ -0,0 +1,47 @@ +package com.github.dhaval2404.imagepicker.sample.util + +import android.app.Activity +import android.content.Intent +import android.net.Uri +import androidx.browser.customtabs.CustomTabsIntent +import androidx.core.content.FileProvider +import java.io.File + +/** + * Intent Utility + * + * @author Dhaval Patel + * @version 1.6 + * @since 05 January 2019 + */ +object IntentUtil { + + /** + * View Image in 3rd party apps + * + * @param activity Activity Instance + * @param file Image File + * + */ + fun showImage(activity: Activity, file: File) { + val intent = Intent(Intent.ACTION_VIEW) + val uri = FileProvider.getUriForFile(activity, "${activity.packageName}.provider", file) + intent.setDataAndType(uri, "image/*") + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + activity.startActivity(intent) + } + + /** + * Open URL using chrome custom Tabs + * + * @param activity Activity Instance + * @param url Valid http/https URL + * + */ + fun openURL(activity: Activity, url: String) { + val link = Uri.parse(url) + CustomTabsIntent.Builder() + .build() + .launchUrl(activity, link) + } +} diff --git a/sample/src/main/res/drawable-hdpi/ic_github.png b/sample/src/main/res/drawable-hdpi/ic_github.png new file mode 100644 index 0000000000000000000000000000000000000000..73db1f61f3aa55fcaecbca896dbea067706bb7bd GIT binary patch literal 2330 zcmaJ@dpy&7A0KVQT+TU3iOLKmvh6n;HrL%O6)ohFIM()K!!EXAIjO}-B}W%^)GMS^ zbRj&Vi`ep%r%r`PE0rauRMJE)p`NWn=lP@Od|$8M_wsqY-=EL>bNS=9n;FC~MOYyq z5Qu5ON?Ne?^wWKYaP5AUm;6k7ER@nCq#?pMX&OrmLdYE9CJ-6GXT^iTAd9m(`4;E} zfy}Yzg+@pt0@sk(LOz-_L`>RbTB#+~b3MT|& z14UGj%UhW)21C+=LfPqwY$6Bc>x1-?k+cr@pp=D_@sk7+lFS?R)h|hV*O@UW6`Ai_H`049j)JozV)4d8r`BUo7M!zgCCD`;G!S0dV&q zp8LL%~Ba#6Eg$iKtZe$N47EeRXa5>+}e1_})f4LZ~7>us9|I_MOlXiY|*KdQX zeS8~zP@tW6v39VXfr*USwp~rS`=B$j`)nk?@}kq(ClF4d>YOz8hkr;=W~kkm zCW7a<(pcz5X#A0R<9Z{E*BfJ?`u2(tHC?l!+(h-PRUM^q=-1CbjbNI^81U7VyU;3( zT2f^?#ma%q8;EN&iz|Pk@=)pdaMq3d25mbDNrIP#bi|hqP`3*fT}kuvR+%ng#;F!o z!3#SBB2F;iNzfJ(L`*fNFT`NdGQiAH|Ej|Hc2f5bF>p2ufwkUZTFe}(dJ$`MX;C(0 z-V{r-E2m(c5BI}drL(~k6SEswne#fEUdvi&3FiZh%N)80&$C_2kh}Zs$!WSMT5)2L z->t!4_PuW(@0iMUf!tM3EXsxR=8aqQJS!tI77vxXD$Q$NZ1vCFp)TCJPPKgJ6$dq6 z6AvwIT>T_kTfhs9Ro&hblgcP`#)4Y!f6RfcKKz5}fFeLswhx__Ru z`f>qsFw=AMC$D2)!n`KC&FVyxLH=oq<|UuIL`hLk2jvOa!Qq_R3CqNXSp|NlZhBlh z@V0BxvHNAmtK__)^rv^SNw9j3M7}#zg*ToWtbKT~2{x#g2)k9TC|R>Dzhq!T-pA~R z>ZL3u2sdInHHePlU?n!;#-16SNWGJd=j+gQ4vI}N_YbJpa3kc$Q-$nCw8DusXXMl4 z*nJS|qzj=rNJpZI; z$vRbg>YS|lmxjj--{P0zyGBQ?yoS4%MX$EkOMqE$O+Pm%_1o-3WM-q=b4f2dQfTt> zOFR@zTq!4JBAQzKEZEFs#YOE+WUR@=e`!;~PCh-+ddeAuP%>I*Cd8Cb%!1YNZFKDIJTra-- zG#+}%TS;ZSZaqDK8^0CL=AU{B|LU>Hu0mU~}a9D5U= zlszxG=SokFC;8liaQHBlh z2BUO}iYG`REj!%$Xj-syeaVfwq3hF5*L>e!Jm^2?Jo?@}>G*`TrXZHmap&CnfJ4u^ zk68!bvsByruv+!zzl{#!R8}8y9^Ra-sENMbl68A9w_o}?z5eO*E&If08t#Rq+K#s{ zb}mq^_${jVjmeHhTXNWUoFMIe)lJ26`vXz zWvk~HR@whs?OF8cKV8YyEs1et|A`i*;GS`_+RH=ns17TKJg|lJv;Y(H<+2}hIXsat z5ANw;3-!HT?J@e?t>VkCV$sSaXTfoVh-!;h=kN@TPi^X~Dlo@yIP4fl2 z#pt2|1Jj>Ov$71^ei~h1H$uM|R6wY=ZG3Q99U>X|mV`BoS9`4vYw~J@(FazM_8hI9o-&aIo@yE| z6xi92RAt7!kM;6HVQV)mjXu!6Snn}L!YlYRm7CF)XL~-WsBd9Uk6GUDFm8S4@oR}s z!f_@&&0G2FHTy?nQd8F&@&}*SrC)xRgU!h6eepUXk}}=;?q@wX1aZ#AJc}avS@*XR MKo6o-Qerdz3wwRZj{pDw literal 0 HcmV?d00001 diff --git a/sample/src/main/res/drawable-hdpi/outline_cloud_upload_white_24.png b/sample/src/main/res/drawable-hdpi/outline_cloud_upload_white_24.png deleted file mode 100644 index 69d351c4c5f3ed72cf87fe50b9702cc7d89ca900..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmV;u0Yd(XP)I!0+bIC-iqTg{;TZKzU{&1AJAm+N z^10!LeE(WB0}q056!RQ>wpz6q7yOIC|CIFJfhV@=CB?tN2f-cX{{bN;OdSBgLAic4 zHUY1ch@S~l<^zDsvj1pY31%nCgm;xfbqfGTqzGJ!`!NkN$s~&aEc#g=92(W$7tk&6 z31kl9j0ynC$1`F&*c5mLqC=Iz{lGa;J2I37do)1ai3!~%rKoYs=84@`n25xnU7T~H<7<@L62c69BH})Pe?y~OM9ig6 z`?AAR{Wul$U|*Pqm*B;W?GwZWT{yg?z&_LmX}GndzyWjxx6$H2SQPJ(5UiAnI#=vj zKtALLxI8)(TN*#d^XoiNZgBX)p8tWvB?|)pI7d^i)p^7g00000NkvXXu0mjf!Dx&? diff --git a/sample/src/main/res/drawable-v24/ic_launcher_foreground.xml b/sample/src/main/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index 6348baae..00000000 --- a/sample/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/sample/src/main/res/drawable-xhdpi/outline_cloud_upload_white_24.png b/sample/src/main/res/drawable-xhdpi/outline_cloud_upload_white_24.png deleted file mode 100644 index 048f87683704e31d282a9fe400bec94c66bd146b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmV-00?+-4P)5_S zXrf;J_lnD`8%3~!$Bma`iYKiSP2+IG)MlhBEE0|70VQ?&-;&XAmhd^rG~c?xK~}f2 z-CXTQ(wXDG>ppu40BM_z#jSoIJP12D;onCY4fOsb@fUs zmyf#Hz}@~d9#C><)WPFk0-C_OH%cjvIT%^>l>d}cuE%|m6W?H=5iaLO#|blip0|P^RO9! zSq_c}zXPsmP<&pI*i~mh4~vDKfbF6Vh5#5`$I8u20h}9V09GuZAn`olt1yw`3+x8y znJ$rC3N2U;Fg^SQxTDa5aXk^tny?d)k3kk4CYnmrVtf%6>p@QLOwQ?Nn0~r{v!J^fvUG y=?aj3I614j%rCl{s4>QB>jP(5Dk>@}%FG5^&))cgANMH$0000xxc)g}za1vhK*<3!bA#LzFNlT6zCShwvnS7#{Ke0_` zT`eg-z}A`~IiQ$k*xprRu^yN5J_E6haDSz!Wh};g){-l7IffreWnVP{`(b-UZrF|< zr1n)H%RZYD`9&d5vw+m*WSVU5o0BQ2 z4atUZ3;9aML3q7Kv3pMDB%UX=KI|?pvgwWO1+pA+d?s-&=`7$D**Fv1_mV@7?1B`y+7mNcU2`a~!BVNOJB9fpojH%*y zjDe8^ZH&=J6f+Ow)Chtu#`sMVKVb}`SRvyVjE5z01h%iqQi#|S+s^t2EwDYM(9pne zj1gq%A8doyR}?A))YA>y)mn%L@EXKLI%m4~fE^N{<6*Nti})x)z56`I0#_z5ZNIf&8I{%lVnE r3}+U>n!zC2@;p0hITVYZQHhwZQIz+&tZg?W~BCEsY|aZEf(t>h0oF$Gg&*;Mj@N**RNB3w*?52P+W4>k08OP6)A-WD-Se!;L(}NW2D6CdPOXuV*s%i+?naFafVGHJw+`B2x2U1M<64hIh4)!8MDppH*eu@bkg=!9k>C6w4NQ7w&=NE1X zG(V*TTJYLHf?-1<==JahXR#&);+J@Skc6L6_2vOC;sBPGRM5sGbb4_zbrOIwKR^Q4 z63@4sMzbWw2l&n6Gzvrv<_Ab%7ZO>>Wt1d3KKJWKr-G_r{Q&?!F+=Rw%`}W z5+b=%wJgKN?8Rw3PZXU9+sI#NAcpEJ^Z7;z3YO(DZNyZnq4;F6Dk_!6(}o)$fhCW`&OPIRGtSLR^1 zA83?BSdkIf>v75@87euSY1n5pyGW|2;%vrakA+-AxdcNgM=_B68^m2KA?adi4(2Yt sp@&=>&Ep(Hw>XaDIF92uj^k+j2BBlF@r5y~i~s-t07*qoM6N<$f{<1CoB#j- diff --git a/sample/src/main/res/drawable/baseline_photo_24.xml b/sample/src/main/res/drawable/baseline_photo_24.xml new file mode 100644 index 00000000..2c62a1a6 --- /dev/null +++ b/sample/src/main/res/drawable/baseline_photo_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/sample/src/main/res/drawable/baseline_photo_camera_24.xml b/sample/src/main/res/drawable/baseline_photo_camera_24.xml new file mode 100644 index 00000000..f195b279 --- /dev/null +++ b/sample/src/main/res/drawable/baseline_photo_camera_24.xml @@ -0,0 +1,13 @@ + + + + diff --git a/sample/src/main/res/drawable/ic_launcher_background.xml b/sample/src/main/res/drawable/ic_launcher_background.xml deleted file mode 100644 index a0ad202f..00000000 --- a/sample/src/main/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sample/src/main/res/drawable/ic_person.xml b/sample/src/main/res/drawable/ic_person.xml new file mode 100644 index 00000000..88035892 --- /dev/null +++ b/sample/src/main/res/drawable/ic_person.xml @@ -0,0 +1,10 @@ + + + diff --git a/sample/src/main/res/drawable/img_camera_code.png b/sample/src/main/res/drawable/img_camera_code.png new file mode 100644 index 0000000000000000000000000000000000000000..3669d17f26b86f35ad34dcfcebf4fe5a3971a636 GIT binary patch literal 56931 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 literal 0 HcmV?d00001 diff --git a/sample/src/main/res/drawable/img_gallery_code.png b/sample/src/main/res/drawable/img_gallery_code.png new file mode 100644 index 0000000000000000000000000000000000000000..80a939c19c1ea38b90ee3814dee8a0a9632df7a4 GIT binary patch literal 80399 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 - + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + tools:context="com.github.dhaval2404.imagepicker.sample.MainActivity"> + + + diff --git a/sample/src/main/res/values/strings.xml b/sample/src/main/res/values/strings.xml index 708b0c08..dbe9f19d 100644 --- a/sample/src/main/res/values/strings.xml +++ b/sample/src/main/res/values/strings.xml @@ -1,6 +1,6 @@ Image Picker - Settings + Github Repository Camera Only Gallery Only diff --git a/sample/src/main/res/values/styles.xml b/sample/src/main/res/values/styles.xml index 601873ea..65b5e343 100644 --- a/sample/src/main/res/values/styles.xml +++ b/sample/src/main/res/values/styles.xml @@ -14,4 +14,32 @@ + + + + + From 1344d9f1b8f735fab246ed6c357ff5fd4654c4e1 Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Mon, 6 Jan 2020 23:18:18 +0530 Subject: [PATCH 11/13] Removed Redundant Camera Permission Removed Redundant Camera Permission --- imagepicker/src/main/AndroidManifest.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/imagepicker/src/main/AndroidManifest.xml b/imagepicker/src/main/AndroidManifest.xml index 5259c897..cfe545d3 100644 --- a/imagepicker/src/main/AndroidManifest.xml +++ b/imagepicker/src/main/AndroidManifest.xml @@ -3,7 +3,6 @@ - From 2e2aa36d3d3a197abefbb505829c72fe0cce3cd6 Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Mon, 6 Jan 2020 23:18:41 +0530 Subject: [PATCH 12/13] Upgrade gradle dependency Upgrade gradle dependency --- sample/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample/build.gradle b/sample/build.gradle index ba92d89e..f808298e 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -39,7 +39,7 @@ dependencies { implementation 'androidx.core:core-ktx:1.1.0' implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.browser:browser:1.2.0' - implementation 'com.google.android.material:material:1.1.0-beta02' + implementation 'com.google.android.material:material:1.1.0-rc01' implementation 'com.github.florent37:inline-activity-result-kotlin:1.0.1' testImplementation 'junit:junit:4.12' From 4f08aef4b78f387e1c3beb518069c4bec9319124 Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Mon, 6 Jan 2020 23:46:41 +0530 Subject: [PATCH 13/13] v1.6 Release v1.6 Release --- CHANGELOG.md | 7 +++++++ README.md | 9 ++++++++- imagepicker/build.gradle | 6 +++--- sample/build.gradle | 4 ++-- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cea42a6f..1ac13bab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.6] - 2020-01-06 +### Changed + * Improved UI/UX of sample app + * Removed Bitmap Deprecated Property [#33](https://github.com/Dhaval2404/ImagePicker/issues/33) (Special Thanks to [nauhalf](https://github.com/nauhalf)) + * Camera opens twice when "Don't keep activities" option is ON [#41](https://github.com/Dhaval2404/ImagePicker/issues/41) (Special Thanks to [benji101](https://github.com/benji101)) + * Fixed uCrop Crash Issue [#42](https://github.com/Dhaval2404/ImagePicker/issues/42) + ## [1.5] - 2019-10-14 ### Added * Added Option for Dynamic Crop Ratio. Let User choose aspect ratio [#36](https://github.com/Dhaval2404/ImagePicker/issues/36) (Special Thanks to [Dor-Sloim](https://github.com/Dor-Sloim)) diff --git a/README.md b/README.md index 4aff6620..d6b833db 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Almost 90% of the app that I have developed has Image upload feature. To simplif ``` ```groovy - implementation 'com.github.dhaval2404:imagepicker:1.5' + implementation 'com.github.dhaval2404:imagepicker:1.6' ``` **If you are yet to Migrate on AndroidX, Use support build artifact:** @@ -215,6 +215,13 @@ Almost 90% of the app that I have developed has Image upload feature. To simplif # ✔️Changelog +### Version: 1.6 + + * Improved UI/UX of sample app + * Removed Bitmap Deprecated Property [#33](https://github.com/Dhaval2404/ImagePicker/issues/33) (Special Thanks to [nauhalf](https://github.com/nauhalf)) + * Camera opens twice when "Don't keep activities" option is ON [#41](https://github.com/Dhaval2404/ImagePicker/issues/41) (Special Thanks to [benji101](https://github.com/benji101)) + * Fixed uCrop Crash Issue [#42](https://github.com/Dhaval2404/ImagePicker/issues/42) + ### Version: 1.5 * Fixed app crash issue, due to Camera Permission in manifest [#34](https://github.com/Dhaval2404/ImagePicker/issues/34) diff --git a/imagepicker/build.gradle b/imagepicker/build.gradle index 11963f3d..77337941 100644 --- a/imagepicker/build.gradle +++ b/imagepicker/build.gradle @@ -13,8 +13,8 @@ android { defaultConfig { minSdkVersion 19 targetSdkVersion 28 - versionCode 6 - versionName "1.5" + versionCode 7 + versionName "1.6" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -69,7 +69,7 @@ ext { siteUrl = 'https://github.com/Dhaval2404/ImagePicker/' gitUrl = 'https://github.com/Dhaval2404/ImagePicker.git' - libraryVersion = '1.5' + libraryVersion = '1.6' //If you are uploading new library try : gradlew install //If you are updating existing library then execute: gradlew bintrayUpload //In both the case don't forgot to put bintray credentials in local.properties file. diff --git a/sample/build.gradle b/sample/build.gradle index f808298e..a1cc50dc 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -12,8 +12,8 @@ android { applicationId "com.github.dhaval2404.imagepicker.sample" minSdkVersion 19 targetSdkVersion 28 - versionCode 6 - versionName "1.5" + versionCode 7 + versionName "1.6" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true }

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 literal 0 HcmV?d00001 diff --git a/sample/src/main/res/drawable/img_profile_code.png b/sample/src/main/res/drawable/img_profile_code.png new file mode 100644 index 0000000000000000000000000000000000000000..fdd247cd2422c1e1bbadf3f93a437908d5e5707f GIT binary patch literal 57656 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 literal 0 HcmV?d00001 diff --git a/sample/src/main/res/drawable/outline_cloud_upload_24.xml b/sample/src/main/res/drawable/outline_cloud_upload_24.xml new file mode 100644 index 00000000..3d9dabeb --- /dev/null +++ b/sample/src/main/res/drawable/outline_cloud_upload_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/sample/src/main/res/drawable/outline_code_24.xml b/sample/src/main/res/drawable/outline_code_24.xml new file mode 100644 index 00000000..0dd58ee1 --- /dev/null +++ b/sample/src/main/res/drawable/outline_code_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/sample/src/main/res/drawable/outline_info_24.xml b/sample/src/main/res/drawable/outline_info_24.xml new file mode 100644 index 00000000..b23561db --- /dev/null +++ b/sample/src/main/res/drawable/outline_info_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/sample/src/main/res/drawable/profile_bg.xml b/sample/src/main/res/drawable/profile_bg.xml new file mode 100644 index 00000000..ccba6514 --- /dev/null +++ b/sample/src/main/res/drawable/profile_bg.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/sample/src/main/res/drawable/shape_ring.xml b/sample/src/main/res/drawable/shape_ring.xml deleted file mode 100644 index ef3a9564..00000000 --- a/sample/src/main/res/drawable/shape_ring.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/sample/src/main/res/layout/content_camera_only.xml b/sample/src/main/res/layout/content_camera_only.xml index a62c0be6..f5c0c328 100644 --- a/sample/src/main/res/layout/content_camera_only.xml +++ b/sample/src/main/res/layout/content_camera_only.xml @@ -11,34 +11,44 @@ tools:context=".MainActivity" tools:showIn="@layout/activity_main"> - + + + + + + android:id="@+id/txtCamera" + style="@style/TitleTextStyle" + android:text="@string/action_camera_only" /> - + android:id="@+id/imgCamera" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_below="@id/txtCamera" + android:onClick="showImage" + android:background="@color/grey_50" + android:scaleType="centerCrop" /> + + + android:id="@+id/fab_add_camera_photo" + android:onClick="pickCameraImage" + app:srcCompat="@drawable/baseline_photo_camera_24" + style="@style/FabStyle" /> \ No newline at end of file diff --git a/sample/src/main/res/layout/content_gallery_only.xml b/sample/src/main/res/layout/content_gallery_only.xml index 17796bc4..ad61c65f 100644 --- a/sample/src/main/res/layout/content_gallery_only.xml +++ b/sample/src/main/res/layout/content_gallery_only.xml @@ -1,46 +1,54 @@ - - + android:layout_height="280dp" + android:layout_marginTop="24dp" + app:cardCornerRadius="12dp" + app:cardPreventCornerOverlap="false" + app:cardUseCompatPadding="true" + tools:context=".MainActivity" + tools:showIn="@layout/activity_main"> - + android:layout_height="match_parent"> + android:id="@+id/imgGalleryCode" + style="@style/ImageButtonStyle" + android:layout_alignParentEnd="true" + android:onClick="showImageCode" + app:srcCompat="@drawable/outline_code_24" /> + + + + + + - + + android:id="@+id/fab_add_gallery_photo" + android:onClick="pickGalleryImage" + app:srcCompat="@drawable/baseline_photo_24" + style="@style/FabStyle" /> \ No newline at end of file diff --git a/sample/src/main/res/layout/content_profile.xml b/sample/src/main/res/layout/content_profile.xml index 1e662e40..948eee03 100644 --- a/sample/src/main/res/layout/content_profile.xml +++ b/sample/src/main/res/layout/content_profile.xml @@ -1,30 +1,55 @@ - + + + + + + + + + + android:id="@+id/imgProfileCode" + style="@style/ImageButtonStyle" + android:layout_alignParentEnd="true" + android:layout_marginTop="24dp" + android:layout_marginEnd="24dp" + android:onClick="showImageCode" + app:srcCompat="@drawable/outline_code_24" /> - + android:layout_marginTop="8dp" + android:layout_marginEnd="24dp" + android:onClick="showImageInfo" + app:srcCompat="@drawable/outline_info_24" /> \ No newline at end of file diff --git a/sample/src/main/res/layout/dialog_imageviewer.xml b/sample/src/main/res/layout/dialog_imageviewer.xml new file mode 100644 index 00000000..d8f3ae1c --- /dev/null +++ b/sample/src/main/res/layout/dialog_imageviewer.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/sample/src/main/res/menu/menu_main.xml b/sample/src/main/res/menu/menu_main.xml index 9d93a041..ea4b9067 100644 --- a/sample/src/main/res/menu/menu_main.xml +++ b/sample/src/main/res/menu/menu_main.xml @@ -1,9 +1,13 @@