Prechádzať zdrojové kódy

Merge branch '0.8.x'

# Conflicts:
#	app/build.gradle
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/models/Backup.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/TrackQueries.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/TrackManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/Anilist.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/AnilistApi.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/AnilistInterceptor.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/OAuth.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/Bangumi.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/OAuth.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/Kitsu.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/OAuth.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/MyAnimeList.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/OAuth.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/Shikimori.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/updater/UpdaterJob.kt
#	app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionGithubApi.kt
#	app/src/main/java/eu/kanade/tachiyomi/network/AndroidCookieJar.kt
#	app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt
#	app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/network/OkHttpExtensions.kt
#	app/src/main/java/eu/kanade/tachiyomi/network/ProgressListener.kt
#	app/src/main/java/eu/kanade/tachiyomi/network/ProgressResponseBody.kt
#	app/src/main/java/eu/kanade/tachiyomi/network/Requests.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/CatalogueSource.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/Source.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/SourceManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/model/Filter.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/model/FilterList.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/model/MangasPage.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/model/Page.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/model/SChapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/model/SChapterImpl.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/model/SManga.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/model/SMangaImpl.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/online/HttpSource.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/online/HttpSourceFetcher.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/online/LoginSource.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/NucleusController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/base/presenter/NucleusConductorDelegate.java
#	app/src/main/java/eu/kanade/tachiyomi/ui/base/presenter/NucleusConductorLifecycleListener.java
#	app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/filter/SortGroup.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchCardAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchCardHolder.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchCardItem.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/ChangeMangaCategoriesDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/DeleteLibraryMangasDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryView.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryHolder.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryNavigationView.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySort.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/ChangelogDialogController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterHolder.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterItem.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/DeleteChaptersDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/DeletingChaptersDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/DownloadChaptersDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/SetDisplayModeDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/SetSortingDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/SetTrackChaptersDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/SetTrackScoreDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/SetTrackStatusDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackHolder.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackSearchAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackSearchDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChaptersController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt
#	app/src/main/java/eu/kanade/tachiyomi/widget/ExtendedNavigationView.kt
#	app/src/main/res/drawable/ic_book_white_24dp.xml
#	app/src/main/res/layout/categories_controller.xml
#	app/src/main/res/layout/chapters_controller.xml
#	app/src/main/res/layout/navigation_view_checkbox.xml
#	app/src/main/res/layout/navigation_view_group.xml
#	app/src/main/res/layout/pref_item_source.xml
#	app/src/main/res/layout/reader_activity.xml
#	app/src/main/res/layout/track_item.xml
#	app/src/main/res/values/strings.xml
#	build.gradle
arkon 5 rokov pred
rodič
commit
0ac33b64b1

+ 2 - 2
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()}\""

+ 17 - 10
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<JsonArray>(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 {

+ 5 - 5
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)

+ 0 - 2
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)

+ 0 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/library/ChangeMangaCategoriesDialog.kt

@@ -24,7 +24,6 @@ class ChangeMangaCategoriesDialog<T>(bundle: Bundle? = null) :
         categories: List<Category>,
         preselected: Array<Int>
     ) : this() {
-
         this.mangas = mangas
         this.categories = categories
         this.preselected = preselected

+ 0 - 1
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) {
 
     /**

+ 0 - 2
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)
             }
 

+ 0 - 1
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<Any?>?
     ) {
-
         holder.bind(this, manga)
     }
 

+ 0 - 1
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<PriorityPage> {
-
         companion object {
             private val idGenerator = AtomicInteger()
         }

+ 0 - 1
app/src/main/res/layout/pref_item_source.xml

@@ -57,5 +57,4 @@
 
     </LinearLayout>
 
-
 </LinearLayout>

+ 25 - 0
app/src/main/res/raw/changelog_release.xml

@@ -1,5 +1,30 @@
 <?xml version="1.0" encoding="utf-8"?>
 <changelog bulletedList="true">
+    <changelogversion versionName="v0.8.5" changeDate="">
+        <changelogtext>[b]Future releases will only support Android 5+[/b]</changelogtext>
+        <changelogtext>New: open in browser/webview from catalogue</changelogtext>
+        <changelogtext>New: reader color filter blend modes</changelogtext>
+        <changelogtext>New: link to help website in sidebar</changelogtext>
+        <changelogtext>New: long press bookmark icon in manga info to change categories</changelogtext>
+        <changelogtext>New: update prioritization setting</changelogtext>
+        <changelogtext>New: Bangumi tracker</changelogtext>
+        <changelogtext>New: extension search</changelogtext>
+        <changelogtext>New: see changelog by pressing Settings > About > Build time</changelogtext>
+        <changelogtext>Enhancement: ignore case when sorting library</changelogtext>
+        <changelogtext>Enhancement: available extensions grouped by languages</changelogtext>
+        <changelogtext>Enhancement: webview navigation</changelogtext>
+        <changelogtext>Enhancement: improved loading speed when skipping pages in a chapter</changelogtext>
+        <changelogtext>Fix: Cloudflare issues</changelogtext>
+        <changelogtext>Fix: sharing issues when filename is long</changelogtext>
+        <changelogtext>Fix: handle errors during global search</changelogtext>
+        <changelogtext>Fix: looping GIFs now loop</changelogtext>
+        <changelogtext>Fix: .nomedia files generated to avoid pages appearing in gallery apps</changelogtext>
+        <changelogtext>Fix: download queue won't autostart if it was previously paused</changelogtext>
+        <changelogtext>Fix: remove DOWNLOADED text after marking chapter as read (if setting is enabled)</changelogtext>
+        <changelogtext>Fix: backup dialog showing "null" when saving to cloud storage</changelogtext>
+        <changelogtext>Fix: MAL and Shikimori tracker issues</changelogtext>
+    </changelogversion>
+
     <changelogversion versionName="v0.8.4" changeDate="">
         <changelogtext>All the internal sources have been removed. They now need to be
             installed as an extension.</changelogtext>