Use functions from IntentCompat
This commit is contained in:
parent
df1f5ec313
commit
ffff1c904f
2 changed files with 5 additions and 16 deletions
|
|
@ -23,9 +23,8 @@ import android.content.pm.PackageManager
|
||||||
import android.content.pm.ResolveInfo
|
import android.content.pm.ResolveInfo
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
import androidx.core.content.IntentCompat
|
||||||
import com.squareup.anvil.annotations.ContributesBinding
|
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.androidutils.compat.queryIntentActivitiesCompat
|
||||||
import io.element.android.libraries.core.mimetype.MimeTypes
|
import io.element.android.libraries.core.mimetype.MimeTypes
|
||||||
import io.element.android.libraries.core.mimetype.MimeTypes.isMimeTypeAny
|
import io.element.android.libraries.core.mimetype.MimeTypes.isMimeTypeAny
|
||||||
|
|
@ -102,10 +101,11 @@ class DefaultShareIntentHandler @Inject constructor(
|
||||||
private fun getIncomingUris(intent: Intent, type: String): List<ShareIntentHandler.UriToShare> {
|
private fun getIncomingUris(intent: Intent, type: String): List<ShareIntentHandler.UriToShare> {
|
||||||
val uriList = mutableListOf<Uri>()
|
val uriList = mutableListOf<Uri>()
|
||||||
if (intent.action == Intent.ACTION_SEND) {
|
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) {
|
} else if (intent.action == Intent.ACTION_SEND_MULTIPLE) {
|
||||||
val extraUriList: List<Uri>? = intent.getParcelableArrayListExtraCompat(Intent.EXTRA_STREAM)
|
IntentCompat.getParcelableArrayListExtra(intent, Intent.EXTRA_STREAM, Uri::class.java)
|
||||||
extraUriList?.let { uriList.addAll(it) }
|
?.let { uriList.addAll(it) }
|
||||||
}
|
}
|
||||||
val resInfoList: List<ResolveInfo> = context.packageManager.queryIntentActivitiesCompat(intent, PackageManager.MATCH_DEFAULT_ONLY)
|
val resInfoList: List<ResolveInfo> = context.packageManager.queryIntentActivitiesCompat(intent, PackageManager.MATCH_DEFAULT_ONLY)
|
||||||
uriList.forEach { uri ->
|
uriList.forEach { uri ->
|
||||||
|
|
|
||||||
|
|
@ -21,17 +21,6 @@ import android.content.pm.ApplicationInfo
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.content.pm.ResolveInfo
|
import android.content.pm.ResolveInfo
|
||||||
import android.os.Build
|
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> {
|
fun PackageManager.queryIntentActivitiesCompat(data: Intent, flags: Int): List<ResolveInfo> {
|
||||||
return when {
|
return when {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue