Browse Source

Use functions from IntentCompat

pull/2984/head
Benoit Marty 4 months ago
parent
commit
eef45309be
  1. 10
      features/share/impl/src/main/kotlin/io/element/android/features/share/impl/ShareIntentHandler.kt
  2. 11
      libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/compat/Compat.kt

10
features/share/impl/src/main/kotlin/io/element/android/features/share/impl/ShareIntentHandler.kt

@ -23,9 +23,8 @@ import android.content.pm.PackageManager @@ -23,9 +23,8 @@ import android.content.pm.PackageManager
import android.content.pm.ResolveInfo
import android.net.Uri
import android.os.Build
import androidx.core.content.IntentCompat
import com.squareup.anvil.annotations.ContributesBinding
import io.element.android.libraries.androidutils.compat.getParcelableArrayListExtraCompat
import io.element.android.libraries.androidutils.compat.getParcelableExtraCompat
import io.element.android.libraries.androidutils.compat.queryIntentActivitiesCompat
import io.element.android.libraries.core.mimetype.MimeTypes
import io.element.android.libraries.core.mimetype.MimeTypes.isMimeTypeAny
@ -102,10 +101,11 @@ class DefaultShareIntentHandler @Inject constructor( @@ -102,10 +101,11 @@ class DefaultShareIntentHandler @Inject constructor(
private fun getIncomingUris(intent: Intent, type: String): List<ShareIntentHandler.UriToShare> {
val uriList = mutableListOf<Uri>()
if (intent.action == Intent.ACTION_SEND) {
intent.getParcelableExtraCompat<Uri>(Intent.EXTRA_STREAM)?.let { uriList.add(it) }
IntentCompat.getParcelableExtra(intent, Intent.EXTRA_STREAM, Uri::class.java)
?.let { uriList.add(it) }
} else if (intent.action == Intent.ACTION_SEND_MULTIPLE) {
val extraUriList: List<Uri>? = intent.getParcelableArrayListExtraCompat(Intent.EXTRA_STREAM)
extraUriList?.let { uriList.addAll(it) }
IntentCompat.getParcelableArrayListExtra(intent, Intent.EXTRA_STREAM, Uri::class.java)
?.let { uriList.addAll(it) }
}
val resInfoList: List<ResolveInfo> = context.packageManager.queryIntentActivitiesCompat(intent, PackageManager.MATCH_DEFAULT_ONLY)
uriList.forEach { uri ->

11
libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/compat/Compat.kt

@ -21,17 +21,6 @@ import android.content.pm.ApplicationInfo @@ -21,17 +21,6 @@ import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager
import android.content.pm.ResolveInfo
import android.os.Build
import android.os.Parcelable
inline fun <reified T> Intent.getParcelableExtraCompat(key: String): T? = when {
Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU -> getParcelableExtra(key, T::class.java)
else -> @Suppress("DEPRECATION") getParcelableExtra(key) as? T?
}
inline fun <reified T : Parcelable> Intent.getParcelableArrayListExtraCompat(key: String): ArrayList<T>? = when {
Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU -> getParcelableArrayListExtra(key, T::class.java)
else -> @Suppress("DEPRECATION") getParcelableArrayListExtra<T>(key)
}
fun PackageManager.queryIntentActivitiesCompat(data: Intent, flags: Int): List<ResolveInfo> {
return when {

Loading…
Cancel
Save