mirror of
https://github.com/KDE/kdeconnect-android
synced 2025-08-22 09:58:08 +00:00
27 lines
873 B
Kotlin
27 lines
873 B
Kotlin
|
package org.kde.kdeconnect.Helpers
|
||
|
|
||
|
import android.app.Activity
|
||
|
import android.content.Context
|
||
|
import android.content.Intent
|
||
|
import android.net.Uri
|
||
|
import androidx.activity.result.contract.ActivityResultContract
|
||
|
|
||
|
data class CreateFileParams(
|
||
|
val fileMimeType: String,
|
||
|
val suggestedFileName: String,
|
||
|
)
|
||
|
|
||
|
class CreateFileResultContract : ActivityResultContract<CreateFileParams, Uri?>() {
|
||
|
|
||
|
override fun createIntent(context: Context, input: CreateFileParams): Intent =
|
||
|
Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
|
||
|
addCategory(Intent.CATEGORY_OPENABLE)
|
||
|
setTypeAndNormalize(input.fileMimeType)
|
||
|
putExtra(Intent.EXTRA_TITLE, input.suggestedFileName)
|
||
|
}
|
||
|
|
||
|
override fun parseResult(resultCode: Int, intent: Intent?): Uri? = when (resultCode) {
|
||
|
Activity.RESULT_OK -> intent?.data
|
||
|
else -> null
|
||
|
}
|
||
|
}
|