chore: prepare Android app for release

This commit is contained in:
2026-04-03 16:37:23 -05:00
parent 2719f2852a
commit e8be7a4fc2
25 changed files with 475 additions and 308 deletions
+20 -1
View File
@@ -1,5 +1,6 @@
package pro.relaytv
import android.content.pm.PackageManager
import android.content.Intent
import android.os.Bundle
import android.widget.Toast
@@ -10,6 +11,11 @@ import androidx.work.WorkManager
class ShareActivity : AppCompatActivity() {
companion object {
private const val META_ENDPOINT_PATH = "pro.relaytv.SHARE_ENDPOINT_PATH"
private const val META_SUCCESS_TEMPLATE = "pro.relaytv.SHARE_SUCCESS_TEMPLATE"
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -26,10 +32,13 @@ class ShareActivity : AppCompatActivity() {
val shared = intent.getStringExtra(Intent.EXTRA_TEXT) ?: ""
val url = extractUrl(shared) ?: run { finish(); return }
val endpointPath = resolveMetaString(META_ENDPOINT_PATH).ifBlank { "/smart" }
val successTemplate = resolveMetaString(META_SUCCESS_TEMPLATE).ifBlank { "Sent to \"%s\"" }
val input = Data.Builder()
.putString(ShareWorker.KEY_BASE, base)
.putString(ShareWorker.KEY_URL, url)
.putString(ShareWorker.KEY_ENDPOINT_PATH, endpointPath)
.build()
val req = OneTimeWorkRequestBuilder<ShareWorker>()
@@ -38,10 +47,20 @@ class ShareActivity : AppCompatActivity() {
WorkManager.getInstance(this).enqueue(req)
val serverName = HostStore.getActiveHost(this)?.name?.ifBlank { "Server" } ?: "Server"
Toast.makeText(this, "Sent to \"$serverName\"", Toast.LENGTH_SHORT).show()
Toast.makeText(this, successTemplate.format(serverName), Toast.LENGTH_SHORT).show()
finishAndRemoveTask()
}
private fun resolveMetaString(key: String): String {
return try {
val flags = PackageManager.GET_META_DATA
val info = packageManager.getActivityInfo(componentName, flags)
info.metaData?.getString(key).orEmpty()
} catch (_: Exception) {
""
}
}
private fun extractUrl(text: String): String? {
val m = Regex("""https?://\S+""").find(text)
return m?.value?.trim()?.trimEnd(')', ']', '>', '"', '\'')