package de.baka.melo import android.content.Intent import io.flutter.plugin.common.MethodCall import io.flutter.plugin.common.MethodChannel /** * Reicht Text weiter, den eine andere App ueber "Teilen" an Melo schickt — * in der Regel eine YouTube-Adresse. * * Eigene Bruecke statt eines Zusatzpakets: das Projekt hat fuer MediaStore * und Klangeffekte bereits eigene (siehe MediaStoreBridge). */ class GeteiltBridge { companion object { const val CHANNEL = "de.baka.melo/geteilt" } private var offen: String? = null /** * Merkt sich den Text eines SEND-Intents. Wird sowohl beim Start als * auch bei onNewIntent aufgerufen: die Activity laeuft mit singleTop, * ein zweites Teilen startet sie also nicht neu. */ fun nimm(intent: Intent?) { if (intent?.action != Intent.ACTION_SEND) return if (intent.type != "text/plain") return offen = intent.getStringExtra(Intent.EXTRA_TEXT) // Aus dem Intent entfernen, damit ein Lagewechsel (Drehen) ihn nicht // ein zweites Mal liefert. intent.removeExtra(Intent.EXTRA_TEXT) } fun handle(call: MethodCall, result: MethodChannel.Result) { when (call.method) { "hole" -> { // Nach dem Abholen leeren: sonst spraenge die App bei jedem // Wiedereintritt erneut in den Downloader. val text = offen offen = null result.success(text) } else -> result.notImplemented() } } }