From 4ad2d23ceccc23f8b11b0a5e712a1f08722611df Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Fri, 13 Oct 2017 20:32:00 -0400 Subject: Revert/mediapicker (#407) * Remove kau mediapicker * Allow cancellation and clean up * Fix up downloader --- .../com/pitchedapps/frost/contracts/FileChooser.kt | 29 ++++++++++------------ 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'app/src/main/kotlin/com/pitchedapps/frost/contracts') diff --git a/app/src/main/kotlin/com/pitchedapps/frost/contracts/FileChooser.kt b/app/src/main/kotlin/com/pitchedapps/frost/contracts/FileChooser.kt index f3d90bcc..50ab3acb 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/contracts/FileChooser.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/contracts/FileChooser.kt @@ -5,10 +5,8 @@ import android.content.Intent import android.net.Uri import android.webkit.ValueCallback import android.webkit.WebChromeClient -import ca.allanwang.kau.mediapicker.kauLaunchMediaPicker -import ca.allanwang.kau.mediapicker.kauOnMediaPickerResult -import com.pitchedapps.frost.activities.ImagePickerActivity -import com.pitchedapps.frost.activities.VideoPickerActivity +import ca.allanwang.kau.utils.string +import com.pitchedapps.frost.R import com.pitchedapps.frost.utils.L /** @@ -17,33 +15,32 @@ import com.pitchedapps.frost.utils.L const val MEDIA_CHOOSER_RESULT = 67 interface FileChooserActivityContract { - fun openFileChooser(filePathCallback: ValueCallback>, fileChooserParams: WebChromeClient.FileChooserParams) + fun openFileChooser(filePathCallback: ValueCallback?>, fileChooserParams: WebChromeClient.FileChooserParams) } interface FileChooserContract { - var filePathCallback: ValueCallback>? - fun Activity.openMediaPicker(filePathCallback: ValueCallback>, fileChooserParams: WebChromeClient.FileChooserParams) + var filePathCallback: ValueCallback?>? + fun Activity.openMediaPicker(filePathCallback: ValueCallback?>, fileChooserParams: WebChromeClient.FileChooserParams) fun Activity.onActivityResultWeb(requestCode: Int, resultCode: Int, intent: Intent?): Boolean } class FileChooserDelegate : FileChooserContract { - override var filePathCallback: ValueCallback>? = null + override var filePathCallback: ValueCallback?>? = null - override fun Activity.openMediaPicker(filePathCallback: ValueCallback>, fileChooserParams: WebChromeClient.FileChooserParams) { + override fun Activity.openMediaPicker(filePathCallback: ValueCallback?>, fileChooserParams: WebChromeClient.FileChooserParams) { this@FileChooserDelegate.filePathCallback = filePathCallback - val isVideo = fileChooserParams.acceptTypes.firstOrNull() == "video/*" - kauLaunchMediaPicker(if (isVideo) VideoPickerActivity::class.java else ImagePickerActivity::class.java, MEDIA_CHOOSER_RESULT) + val intent = Intent() + intent.type = fileChooserParams.acceptTypes.firstOrNull() + intent.action = Intent.ACTION_GET_CONTENT + startActivityForResult(Intent.createChooser(intent, string(R.string.pick_image)), MEDIA_CHOOSER_RESULT) } override fun Activity.onActivityResultWeb(requestCode: Int, resultCode: Int, intent: Intent?): Boolean { L.d("FileChooser On activity results web $requestCode") if (requestCode != MEDIA_CHOOSER_RESULT) return false - val results = kauOnMediaPickerResult(resultCode, intent).map { it.uri }.toTypedArray() - L.i("FileChooser result ${results.contentToString()}") - //proper path content://com.android.providers.media.documents/document/image%3A36341 - L.d("FileChooser Callback received; ${filePathCallback != null}") - filePathCallback?.onReceiveValue(results) + val data = intent?.data + filePathCallback?.onReceiveValue(if (data != null) arrayOf(data) else null) filePathCallback = null return true } -- cgit v1.2.3