diff --git a/build.gradle b/build.gradle index d80c49aca..808ad9c42 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,11 @@ buildscript { - ext.kotlin_version = '1.3.20' + ext.kotlin_version = '1.3.21' repositories { jcenter() google() } dependencies { - classpath 'com.android.tools.build:gradle:3.3.1' + classpath 'com.android.tools.build:gradle:3.3.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/common.gradle b/common.gradle index 61ff4c4d9..d5a2b404b 100644 --- a/common.gradle +++ b/common.gradle @@ -20,9 +20,11 @@ android { } release { res.srcDirs = ['res'] + manifest.srcFile "AndroidManifest.xml" } debug { res.srcDirs = ['res'] + manifest.srcFile "AndroidManifest.xml" } } diff --git a/src/all/mangadex/AndroidManifest.xml b/src/all/mangadex/AndroidManifest.xml new file mode 100644 index 000000000..b3d044a0c --- /dev/null +++ b/src/all/mangadex/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + diff --git a/src/all/mangadex/build.gradle b/src/all/mangadex/build.gradle index 721bb2ebb..0bffa0db4 100644 --- a/src/all/mangadex/build.gradle +++ b/src/all/mangadex/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: MangaDex' pkgNameSuffix = 'all.mangadex' extClass = '.MangadexFactory' - extVersionCode = 53 + extVersionCode = 54 libVersion = '1.2' } diff --git a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/MangadexUrlActivity.kt b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/MangadexUrlActivity.kt new file mode 100644 index 000000000..e68a5a314 --- /dev/null +++ b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/MangadexUrlActivity.kt @@ -0,0 +1,42 @@ +package eu.kanade.tachiyomi.extension.all.mangadex + +import android.app.Activity +import android.content.ActivityNotFoundException +import android.content.Intent +import android.os.Bundle +import android.util.Log + +/** + * Springboard that accepts https://mangadex.com/title/xxx intents and redirects them to + * the main tachiyomi process. The idea is to not install the intent filter unless + * you have this extension installed, but still let the main tachiyomi app control + * things. + * + * Main goal was to make it easier to open manga in Tachiyomi in spite of the DDoS blocking + * the usual search screen from working. + */ +class MangadexUrlActivity : Activity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val pathSegments = intent?.data?.pathSegments + if (pathSegments != null && pathSegments.size > 1) { + val titleid = pathSegments[1] + val mainIntent = Intent().apply { + action = "eu.kanade.tachiyomi.SEARCH" + putExtra("query", "id:$titleid") + putExtra("filter", packageName) + } + + try { + startActivity(mainIntent) + } catch (e: ActivityNotFoundException) { + Log.e("MangadexUrlActivity", e.toString()) + } + } else { + Log.e("MangadexUrlActivity", "could not parse uri from intent $intent") + } + + finish() + System.exit(0) + } +}