fix: share file name display #122

Merged
PeterCxy merged 3 commits from septs/OpenEUICC:fix-share-file-name into master 2024-12-19 00:19:44 +01:00

View file

@ -1,5 +1,6 @@
package im.angry.openeuicc.util package im.angry.openeuicc.util
import android.content.ClipData
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.res.Resources import android.content.res.Resources
@ -81,6 +82,8 @@ fun <T : ActivityResultCaller> T.setupLogSaving(
getLogFileName: () -> String, getLogFileName: () -> String,
getLogText: () -> String getLogText: () -> String
): () -> Unit { ): () -> Unit {
var lastFileName = "untitled"
val launchSaveIntent = val launchSaveIntent =
registerForActivityResult(ActivityResultContracts.CreateDocument("text/plain")) { uri -> registerForActivityResult(ActivityResultContracts.CreateDocument("text/plain")) { uri ->
if (uri == null) return@registerForActivityResult if (uri == null) return@registerForActivityResult
@ -101,10 +104,12 @@ fun <T : ActivityResultCaller> T.setupLogSaving(
setMessage(R.string.logs_saved_message) setMessage(R.string.logs_saved_message)
setNegativeButton(R.string.no) { _, _ -> } setNegativeButton(R.string.no) { _, _ -> }
septs marked this conversation as resolved Outdated

getLogFileName()'s return value depends on the current timestamp, so it's probably different from the one we saved.

`getLogFileName()`'s return value depends on the current timestamp, so it's probably different from the one we saved.
setPositiveButton(R.string.yes) { _, _ -> setPositiveButton(R.string.yes) { _, _ ->
val intent = Intent().apply { val intent = Intent(Intent.ACTION_SEND).apply {
action = Intent.ACTION_SEND
type = "text/plain" type = "text/plain"
clipData = ClipData.newUri(context.contentResolver, lastFileName, uri)
putExtra(Intent.EXTRA_TITLE, lastFileName)
putExtra(Intent.EXTRA_STREAM, uri) putExtra(Intent.EXTRA_STREAM, uri)
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
} }
context.startActivity(Intent.createChooser(intent, null)) context.startActivity(Intent.createChooser(intent, null))
@ -113,6 +118,7 @@ fun <T : ActivityResultCaller> T.setupLogSaving(
} }
return { return {
launchSaveIntent.launch(getLogFileName()) lastFileName = getLogFileName()
launchSaveIntent.launch(lastFileName)
} }
} }