From 607d74abb558e86a34ba75ee3f9299474861b352 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A0=ED=98=84=EB=AA=85?= Date: Fri, 20 May 2022 10:54:08 +0900 Subject: [PATCH 1/3] Add to make File by Real Path through uri --- .../util/UriConverterFileUtil.kt | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tedimagepicker/src/main/java/gun0912/tedimagepicker/util/UriConverterFileUtil.kt diff --git a/tedimagepicker/src/main/java/gun0912/tedimagepicker/util/UriConverterFileUtil.kt b/tedimagepicker/src/main/java/gun0912/tedimagepicker/util/UriConverterFileUtil.kt new file mode 100644 index 0000000..043e698 --- /dev/null +++ b/tedimagepicker/src/main/java/gun0912/tedimagepicker/util/UriConverterFileUtil.kt @@ -0,0 +1,34 @@ +package gun0912.tedimagepicker.util + +import android.content.Context +import android.database.Cursor +import android.net.Uri +import android.provider.MediaStore +import androidx.loader.content.CursorLoader +import gun0912.tedimagepicker.builder.TedImagePicker +import gun0912.tedimagepicker.builder.type.MediaType +import java.io.File +import kotlin.coroutines.resume +import kotlin.coroutines.suspendCoroutine + +suspend fun fetchImage(context: Context): File? = suspendCoroutine { + TedImagePicker.with(context) + .mediaType(MediaType.IMAGE) + .showTitle(false) + .cancelListener { it.resume(null) } + .errorListener { _ -> it.resume(null) } + .start { uri -> + it.resume(File(getRealPathFromURI(uri, context)!!)) + } +} + +private fun getRealPathFromURI(uri: Uri, context: Context): String? { + val proj = arrayOf(MediaStore.Images.Media.DATA) + val loader = CursorLoader(context, uri, proj, null, null, null) + val cursor: Cursor = loader.loadInBackground()!! + val columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA) + cursor.moveToFirst() + val result = cursor.getString(columnIndex) + cursor.close() + return result +} \ No newline at end of file From 21770ec40bf79dc23f7c9ca3a3ddc3c49c6ab706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A0=ED=98=84=EB=AA=85?= Date: Fri, 20 May 2022 10:54:22 +0900 Subject: [PATCH 2/3] Add Sample Code --- .../gun0912/tedimagepicker/sample/MainActivity.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt b/app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt index 653fdc7..1212554 100644 --- a/app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt +++ b/app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt @@ -15,6 +15,7 @@ import gun0912.tedimagepicker.builder.TedImagePicker import gun0912.tedimagepicker.builder.TedRxImagePicker import gun0912.tedimagepicker.sample.databinding.ActivityMainBinding import gun0912.tedimagepicker.sample.databinding.ItemImageBinding +import gun0912.tedimagepicker.util.fetchImage class MainActivity : AppCompatActivity() { @@ -26,6 +27,7 @@ class MainActivity : AppCompatActivity() { binding = DataBindingUtil.setContentView(this, R.layout.activity_main) setNormalSingleButton() + setNormalSingleButtonFile() setNormalMultiButton() setRxSingleButton() setRxMultiButton() @@ -40,6 +42,11 @@ class MainActivity : AppCompatActivity() { } } + private fun setNormalSingleButtonFile() { + TedImagePicker.with(this) + .start { uri -> showSingleImageToFile(uri) } + } + private fun setNormalMultiButton() { binding.btnNormalMulti.setOnClickListener { TedImagePicker.with(this) @@ -88,6 +95,12 @@ class MainActivity : AppCompatActivity() { } + private fun showSingleImageToFile(uri: Uri) { + + suspend { fetchImage(context).let { uri.toString() } } + + } + private fun showMultiImage(uriList: List) { this.selectedUriList = uriList From 15c44961b6d4cfa403ad6c1a3c5139ed5e95dafc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A0=ED=98=84=EB=AA=85?= Date: Fri, 20 May 2022 11:37:35 +0900 Subject: [PATCH 3/3] Add Import context --- app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt b/app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt index 1212554..c047ce9 100644 --- a/app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt +++ b/app/src/main/java/gun0912/tedimagepicker/sample/MainActivity.kt @@ -15,6 +15,7 @@ import gun0912.tedimagepicker.builder.TedImagePicker import gun0912.tedimagepicker.builder.TedRxImagePicker import gun0912.tedimagepicker.sample.databinding.ActivityMainBinding import gun0912.tedimagepicker.sample.databinding.ItemImageBinding +import gun0912.tedimagepicker.util.ToastUtil.context import gun0912.tedimagepicker.util.fetchImage class MainActivity : AppCompatActivity() {