diff --git a/app/build.gradle b/app/build.gradle index 7d0ab1cb09..c0c57dfb6f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -40,8 +40,8 @@ android { minSdkVersion 21 targetSdkVersion 29 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - versionCode 41 - versionName "0.8.4" + versionCode 42 + versionName "0.8.5" buildConfigField "String", "COMMIT_COUNT", "\"${getCommitCount()}\"" buildConfigField "String", "COMMIT_SHA", "\"${getGitSha()}\"" diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionGithubApi.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionGithubApi.kt index 07bc593495..b4b0f10417 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionGithubApi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionGithubApi.kt @@ -7,6 +7,7 @@ import com.github.salomonbrys.kotson.string import com.google.gson.Gson import com.google.gson.JsonArray import eu.kanade.tachiyomi.extension.model.Extension +import eu.kanade.tachiyomi.extension.util.ExtensionLoader import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.NetworkHelper import eu.kanade.tachiyomi.network.await @@ -34,17 +35,23 @@ internal class ExtensionGithubApi { val json = gson.fromJson(text) - return json.map { element -> - val name = element["name"].string.substringAfter("Tachiyomi: ") - val pkgName = element["pkg"].string - val apkName = element["apk"].string - val versionName = element["version"].string - val versionCode = element["code"].int - val lang = element["lang"].string - val icon = "$REPO_URL/icon/${apkName.replace(".apk", ".png")}" + return json + .filter { element -> + val versionName = element["version"].string + val libVersion = versionName.substringBeforeLast('.').toDouble() + libVersion >= ExtensionLoader.LIB_VERSION_MIN && libVersion <= ExtensionLoader.LIB_VERSION_MAX + } + .map { element -> + val name = element["name"].string.substringAfter("Tachiyomi: ") + val pkgName = element["pkg"].string + val apkName = element["apk"].string + val versionName = element["version"].string + val versionCode = element["code"].int + val lang = element["lang"].string + val icon = "$REPO_URL/icon/${apkName.replace(".apk", ".png")}" - Extension.Available(name, pkgName, versionName, versionCode, lang, apkName, icon) - } + Extension.Available(name, pkgName, versionName, versionCode, lang, apkName, icon) + } } fun getApkUrl(extension: Extension.Available): String { diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt index 8065fe1f49..1e6dcade28 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt @@ -27,8 +27,8 @@ internal object ExtensionLoader { private const val EXTENSION_FEATURE = "tachiyomi.extension" private const val METADATA_SOURCE_CLASS = "tachiyomi.extension.class" - private const val LIB_VERSION_MIN = 1 - private const val LIB_VERSION_MAX = 1 + const val LIB_VERSION_MIN = 1.0 + const val LIB_VERSION_MAX = 1.2 private const val PACKAGE_FLAGS = PackageManager.GET_CONFIGURATIONS or PackageManager.GET_SIGNATURES @@ -107,9 +107,9 @@ internal object ExtensionLoader { } // Validate lib version - val majorLibVersion = versionName.substringBefore('.').toInt() - if (majorLibVersion < LIB_VERSION_MIN || majorLibVersion > LIB_VERSION_MAX) { - val exception = Exception("Lib version is $majorLibVersion, while only versions " + + val libVersion = versionName.substringBeforeLast('.').toDouble() + if (libVersion < LIB_VERSION_MIN || libVersion > LIB_VERSION_MAX) { + val exception = Exception("Lib version is $libVersion, while only versions " + "$LIB_VERSION_MIN to $LIB_VERSION_MAX are allowed") Timber.w(exception) return LoadResult.Error(exception) diff --git a/app/src/main/java/eu/kanade/tachiyomi/network/Requests.kt b/app/src/main/java/eu/kanade/tachiyomi/network/Requests.kt index 185bb2f75c..63ecff109c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/network/Requests.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/network/Requests.kt @@ -16,7 +16,6 @@ fun GET( headers: Headers = DEFAULT_HEADERS, cache: CacheControl = DEFAULT_CACHE_CONTROL ): Request { - return Request.Builder() .url(url) .headers(headers) @@ -30,7 +29,6 @@ fun POST( body: RequestBody = DEFAULT_BODY, cache: CacheControl = DEFAULT_CACHE_CONTROL ): Request { - return Request.Builder() .url(url) .post(body) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/ChangeMangaCategoriesDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/ChangeMangaCategoriesDialog.kt index 7c2a026055..cc4e5ee3cd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/ChangeMangaCategoriesDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/ChangeMangaCategoriesDialog.kt @@ -24,7 +24,6 @@ class ChangeMangaCategoriesDialog(bundle: Bundle? = null) : categories: List, preselected: Array ) : this() { - this.mangas = mangas this.categories = categories this.preselected = preselected diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt index 51c8913b96..131aebc846 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt @@ -23,7 +23,6 @@ import kotlinx.android.synthetic.main.catalogue_grid_item.unread_text class LibraryGridHolder( private val view: View, private val adapter: FlexibleAdapter<*> - ) : LibraryHolder(view, adapter) { /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index 58b0413f75..7cd83f13ed 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -80,7 +80,6 @@ class MainActivity : BaseActivity() { } else { router.popToRoot() } - true } @@ -110,7 +109,6 @@ class MainActivity : BaseActivity() { container: ViewGroup, handler: ControllerChangeHandler ) { - syncActivityViewWithController(to, from) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterItem.kt index b705a49079..38693aa297 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterItem.kt @@ -41,7 +41,6 @@ class ChapterItem(val chapter: Chapter, val manga: Manga) : AbstractFlexibleItem position: Int, payloads: List? ) { - holder.bind(this, manga) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt index 42df160984..4ce68f6bae 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt @@ -168,7 +168,6 @@ class HttpPageLoader( val page: ReaderPage, val priority: Int ) : Comparable { - companion object { private val idGenerator = AtomicInteger() } diff --git a/app/src/main/res/layout/pref_item_source.xml b/app/src/main/res/layout/pref_item_source.xml index 7085f3d234..98238d2c44 100644 --- a/app/src/main/res/layout/pref_item_source.xml +++ b/app/src/main/res/layout/pref_item_source.xml @@ -57,5 +57,4 @@ - diff --git a/app/src/main/res/raw/changelog_release.xml b/app/src/main/res/raw/changelog_release.xml index e88828ae30..67f5948edd 100644 --- a/app/src/main/res/raw/changelog_release.xml +++ b/app/src/main/res/raw/changelog_release.xml @@ -1,5 +1,30 @@ + + [b]Future releases will only support Android 5+[/b] + New: open in browser/webview from catalogue + New: reader color filter blend modes + New: link to help website in sidebar + New: long press bookmark icon in manga info to change categories + New: update prioritization setting + New: Bangumi tracker + New: extension search + New: see changelog by pressing Settings > About > Build time + Enhancement: ignore case when sorting library + Enhancement: available extensions grouped by languages + Enhancement: webview navigation + Enhancement: improved loading speed when skipping pages in a chapter + Fix: Cloudflare issues + Fix: sharing issues when filename is long + Fix: handle errors during global search + Fix: looping GIFs now loop + Fix: .nomedia files generated to avoid pages appearing in gallery apps + Fix: download queue won't autostart if it was previously paused + Fix: remove DOWNLOADED text after marking chapter as read (if setting is enabled) + Fix: backup dialog showing "null" when saving to cloud storage + Fix: MAL and Shikimori tracker issues + + All the internal sources have been removed. They now need to be installed as an extension.