diff --git a/app/src/main/java/com/github/libretube/MainActivity.kt b/app/src/main/java/com/github/libretube/MainActivity.kt index f72a1571b..4dea68660 100644 --- a/app/src/main/java/com/github/libretube/MainActivity.kt +++ b/app/src/main/java/com/github/libretube/MainActivity.kt @@ -143,8 +143,10 @@ class MainActivity : AppCompatActivity() { override fun onStart() { super.onStart() val intentData: Uri? = intent?.data + // check whether an URI got submitted over the intent data if (intentData != null && intentData.host != null && intentData.path != null) { Log.d("intentData", "${intentData.host} ${intentData.path} ") + // load the URI of the submitted link (e.g. video) loadIntentData(intentData) } } diff --git a/app/src/main/java/com/github/libretube/RouterActivity.kt b/app/src/main/java/com/github/libretube/RouterActivity.kt index cc3d8beea..2f0ee8c21 100644 --- a/app/src/main/java/com/github/libretube/RouterActivity.kt +++ b/app/src/main/java/com/github/libretube/RouterActivity.kt @@ -11,19 +11,20 @@ class RouterActivity : AppCompatActivity() { val TAG = "RouterActivity" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - when (intent?.action) { - Intent.ACTION_SEND -> { - if (intent.type == "text/plain" && checkHost(intent)) { - handleSendText(intent) - } else { - // start app as normal if wrong intent type - restartMainActivity(this) - } + // Check if Intent Action is ACTION_SEND + if (intent?.action == Intent.ACTION_SEND) { + if (intent.type == "text/plain" && checkHost(intent)) { + // start the main activity using the given URI as data if the host is known + handleSendText(intent) + } else { + // start app as normal if wrong intent type + restartMainActivity(this) } } } private fun checkHost(intent: Intent): Boolean { + // check whether the host is known, current solution to replace the broken intent filter val hostsList = resources.getStringArray(R.array.shareHostsList) val intentDataUri: Uri = Uri.parse(intent.getStringExtra(Intent.EXTRA_TEXT)) val intentDataHost = intentDataUri.host @@ -35,6 +36,7 @@ class RouterActivity : AppCompatActivity() { intent.getStringExtra(Intent.EXTRA_TEXT)?.let { Log.i(TAG, it) val pm: PackageManager = this.packageManager + // startIntent(this, MainActivity::class.java doesn't work for the activity aliases needed for the logo switch option val intent = pm.getLaunchIntentForPackage(this.packageName) intent?.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK intent?.data = Uri.parse(it)