pull/2731/head
kunfei 2 years ago
parent fe52530be4
commit 5765946d73
  1. 17
      app/src/app/java/io/legado/app/help/AppIntentType.kt
  2. 28
      app/src/google/java/io/legado/app/help/IntentType.kt
  3. 2
      app/src/main/java/io/legado/app/service/DownloadService.kt
  4. 1
      app/src/main/java/io/legado/app/utils/ContextExtensions.kt
  5. 16
      app/src/main/java/io/legado/app/utils/IntentType.kt

@ -0,0 +1,17 @@
package io.legado.app.help
import androidx.annotation.Keep
import io.legado.app.utils.IntentType
@Keep
@Suppress("unused")
object AppIntentType : IntentType.TypeInterface {
override fun from(path: String?): String? {
return when (path?.substringAfterLast(".")?.lowercase()) {
"apk" -> "application/vnd.android.package-archive"
else -> null
}
}
}

@ -1,28 +0,0 @@
package io.legado.app.help
import android.net.Uri
import androidx.annotation.Keep
import java.io.File
@Keep
object IntentType {
fun from(uri: Uri): String? {
return from(uri.toString())
}
fun from(file: File): String? {
return from(file.absolutePath)
}
fun from(path: String?): String? {
return when (path?.substringAfterLast(".")?.lowercase()) {
"m4a", "mp3", "mid", "xmf", "ogg", "wav" -> "video/*"
"3gp", "mp4" -> "audio/*"
"jpg", "gif", "png", "jpeg", "bmp" -> "image/*"
"txt", "json" -> "text/plain"
else -> null
}
}
}

@ -13,7 +13,7 @@ import io.legado.app.base.BaseService
import io.legado.app.constant.AppConst import io.legado.app.constant.AppConst
import io.legado.app.constant.AppLog import io.legado.app.constant.AppLog
import io.legado.app.constant.IntentAction import io.legado.app.constant.IntentAction
import io.legado.app.help.IntentType import io.legado.app.utils.IntentType
import io.legado.app.utils.openFileUri import io.legado.app.utils.openFileUri
import io.legado.app.utils.servicePendingIntent import io.legado.app.utils.servicePendingIntent
import io.legado.app.utils.toastOnUi import io.legado.app.utils.toastOnUi

@ -29,7 +29,6 @@ import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel
import io.legado.app.R import io.legado.app.R
import io.legado.app.constant.AppConst import io.legado.app.constant.AppConst
import io.legado.app.help.IntentHelp import io.legado.app.help.IntentHelp
import io.legado.app.help.IntentType
import splitties.systemservices.clipboardManager import splitties.systemservices.clipboardManager
import splitties.systemservices.connectivityManager import splitties.systemservices.connectivityManager
import java.io.File import java.io.File

@ -1,4 +1,4 @@
package io.legado.app.help package io.legado.app.utils
import android.net.Uri import android.net.Uri
import androidx.annotation.Keep import androidx.annotation.Keep
@ -17,13 +17,23 @@ object IntentType {
fun from(path: String?): String? { fun from(path: String?): String? {
return when (path?.substringAfterLast(".")?.lowercase()) { return when (path?.substringAfterLast(".")?.lowercase()) {
"apk" -> "application/vnd.android.package-archive"
"m4a", "mp3", "mid", "xmf", "ogg", "wav" -> "video/*" "m4a", "mp3", "mid", "xmf", "ogg", "wav" -> "video/*"
"3gp", "mp4" -> "audio/*" "3gp", "mp4" -> "audio/*"
"jpg", "gif", "png", "jpeg", "bmp" -> "image/*" "jpg", "gif", "png", "jpeg", "bmp" -> "image/*"
"txt", "json" -> "text/plain" "txt", "json" -> "text/plain"
else -> null else -> appIntentType?.from(path)
} }
} }
private val appIntentType: TypeInterface? by lazy {
Class.forName("io.legado.app.help.AppIntentType")
.kotlin.objectInstance as? TypeInterface
}
interface TypeInterface {
fun from(path: String?): String?
}
} }
Loading…
Cancel
Save