From 8abced70c3c6df1e127793881938e8ef6d61c403 Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Sun, 23 Feb 2025 22:16:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/utils/ActivityResultContracts.kt | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/io/legado/app/utils/ActivityResultContracts.kt b/app/src/main/java/io/legado/app/utils/ActivityResultContracts.kt index f354dbcab..78dd8b8cc 100644 --- a/app/src/main/java/io/legado/app/utils/ActivityResultContracts.kt +++ b/app/src/main/java/io/legado/app/utils/ActivityResultContracts.kt @@ -1,12 +1,13 @@ package io.legado.app.utils -import android.app.Activity.RESULT_OK import android.content.Context import android.content.Intent import android.net.Uri import androidx.activity.result.ActivityResult import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.PickVisualMediaRequest import androidx.activity.result.contract.ActivityResultContract +import androidx.activity.result.contract.ActivityResultContracts fun ActivityResultLauncher.launch() { launch(null) @@ -14,20 +15,17 @@ fun ActivityResultLauncher.launch() { class SelectImageContract : ActivityResultContract() { + private val delegate = ActivityResultContracts.PickVisualMedia() var requestCode: Int? = null override fun createIntent(context: Context, input: Int?): Intent { requestCode = input - return Intent(Intent.ACTION_GET_CONTENT) - .addCategory(Intent.CATEGORY_OPENABLE) - .setType("image/*") + val request = PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly) + return delegate.createIntent(context, request) } override fun parseResult(resultCode: Int, intent: Intent?): Result { - if (resultCode == RESULT_OK) { - return Result(requestCode, intent?.data) - } - return Result(requestCode, null) + return Result(requestCode, delegate.parseResult(resultCode, intent)) } data class Result(