mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-22 16:41:51 +01:00
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
This commit is contained in:
commit
0ac33b64b1
@ -40,8 +40,8 @@ android {
|
|||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
versionCode 41
|
versionCode 42
|
||||||
versionName "0.8.4"
|
versionName "0.8.5"
|
||||||
|
|
||||||
buildConfigField "String", "COMMIT_COUNT", "\"${getCommitCount()}\""
|
buildConfigField "String", "COMMIT_COUNT", "\"${getCommitCount()}\""
|
||||||
buildConfigField "String", "COMMIT_SHA", "\"${getGitSha()}\""
|
buildConfigField "String", "COMMIT_SHA", "\"${getGitSha()}\""
|
||||||
|
@ -7,6 +7,7 @@ import com.github.salomonbrys.kotson.string
|
|||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.google.gson.JsonArray
|
import com.google.gson.JsonArray
|
||||||
import eu.kanade.tachiyomi.extension.model.Extension
|
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.GET
|
||||||
import eu.kanade.tachiyomi.network.NetworkHelper
|
import eu.kanade.tachiyomi.network.NetworkHelper
|
||||||
import eu.kanade.tachiyomi.network.await
|
import eu.kanade.tachiyomi.network.await
|
||||||
@ -34,17 +35,23 @@ internal class ExtensionGithubApi {
|
|||||||
|
|
||||||
val json = gson.fromJson<JsonArray>(text)
|
val json = gson.fromJson<JsonArray>(text)
|
||||||
|
|
||||||
return json.map { element ->
|
return json
|
||||||
val name = element["name"].string.substringAfter("Tachiyomi: ")
|
.filter { element ->
|
||||||
val pkgName = element["pkg"].string
|
val versionName = element["version"].string
|
||||||
val apkName = element["apk"].string
|
val libVersion = versionName.substringBeforeLast('.').toDouble()
|
||||||
val versionName = element["version"].string
|
libVersion >= ExtensionLoader.LIB_VERSION_MIN && libVersion <= ExtensionLoader.LIB_VERSION_MAX
|
||||||
val versionCode = element["code"].int
|
}
|
||||||
val lang = element["lang"].string
|
.map { element ->
|
||||||
val icon = "$REPO_URL/icon/${apkName.replace(".apk", ".png")}"
|
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 {
|
fun getApkUrl(extension: Extension.Available): String {
|
||||||
|
@ -27,8 +27,8 @@ internal object ExtensionLoader {
|
|||||||
|
|
||||||
private const val EXTENSION_FEATURE = "tachiyomi.extension"
|
private const val EXTENSION_FEATURE = "tachiyomi.extension"
|
||||||
private const val METADATA_SOURCE_CLASS = "tachiyomi.extension.class"
|
private const val METADATA_SOURCE_CLASS = "tachiyomi.extension.class"
|
||||||
private const val LIB_VERSION_MIN = 1
|
const val LIB_VERSION_MIN = 1.0
|
||||||
private const val LIB_VERSION_MAX = 1
|
const val LIB_VERSION_MAX = 1.2
|
||||||
|
|
||||||
private const val PACKAGE_FLAGS = PackageManager.GET_CONFIGURATIONS or PackageManager.GET_SIGNATURES
|
private const val PACKAGE_FLAGS = PackageManager.GET_CONFIGURATIONS or PackageManager.GET_SIGNATURES
|
||||||
|
|
||||||
@ -107,9 +107,9 @@ internal object ExtensionLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Validate lib version
|
// Validate lib version
|
||||||
val majorLibVersion = versionName.substringBefore('.').toInt()
|
val libVersion = versionName.substringBeforeLast('.').toDouble()
|
||||||
if (majorLibVersion < LIB_VERSION_MIN || majorLibVersion > LIB_VERSION_MAX) {
|
if (libVersion < LIB_VERSION_MIN || libVersion > LIB_VERSION_MAX) {
|
||||||
val exception = Exception("Lib version is $majorLibVersion, while only versions " +
|
val exception = Exception("Lib version is $libVersion, while only versions " +
|
||||||
"$LIB_VERSION_MIN to $LIB_VERSION_MAX are allowed")
|
"$LIB_VERSION_MIN to $LIB_VERSION_MAX are allowed")
|
||||||
Timber.w(exception)
|
Timber.w(exception)
|
||||||
return LoadResult.Error(exception)
|
return LoadResult.Error(exception)
|
||||||
|
@ -16,7 +16,6 @@ fun GET(
|
|||||||
headers: Headers = DEFAULT_HEADERS,
|
headers: Headers = DEFAULT_HEADERS,
|
||||||
cache: CacheControl = DEFAULT_CACHE_CONTROL
|
cache: CacheControl = DEFAULT_CACHE_CONTROL
|
||||||
): Request {
|
): Request {
|
||||||
|
|
||||||
return Request.Builder()
|
return Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.headers(headers)
|
.headers(headers)
|
||||||
@ -30,7 +29,6 @@ fun POST(
|
|||||||
body: RequestBody = DEFAULT_BODY,
|
body: RequestBody = DEFAULT_BODY,
|
||||||
cache: CacheControl = DEFAULT_CACHE_CONTROL
|
cache: CacheControl = DEFAULT_CACHE_CONTROL
|
||||||
): Request {
|
): Request {
|
||||||
|
|
||||||
return Request.Builder()
|
return Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.post(body)
|
.post(body)
|
||||||
|
@ -24,7 +24,6 @@ class ChangeMangaCategoriesDialog<T>(bundle: Bundle? = null) :
|
|||||||
categories: List<Category>,
|
categories: List<Category>,
|
||||||
preselected: Array<Int>
|
preselected: Array<Int>
|
||||||
) : this() {
|
) : this() {
|
||||||
|
|
||||||
this.mangas = mangas
|
this.mangas = mangas
|
||||||
this.categories = categories
|
this.categories = categories
|
||||||
this.preselected = preselected
|
this.preselected = preselected
|
||||||
|
@ -23,7 +23,6 @@ import kotlinx.android.synthetic.main.catalogue_grid_item.unread_text
|
|||||||
class LibraryGridHolder(
|
class LibraryGridHolder(
|
||||||
private val view: View,
|
private val view: View,
|
||||||
private val adapter: FlexibleAdapter<*>
|
private val adapter: FlexibleAdapter<*>
|
||||||
|
|
||||||
) : LibraryHolder(view, adapter) {
|
) : LibraryHolder(view, adapter) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -80,7 +80,6 @@ class MainActivity : BaseActivity() {
|
|||||||
} else {
|
} else {
|
||||||
router.popToRoot()
|
router.popToRoot()
|
||||||
}
|
}
|
||||||
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,7 +109,6 @@ class MainActivity : BaseActivity() {
|
|||||||
container: ViewGroup,
|
container: ViewGroup,
|
||||||
handler: ControllerChangeHandler
|
handler: ControllerChangeHandler
|
||||||
) {
|
) {
|
||||||
|
|
||||||
syncActivityViewWithController(to, from)
|
syncActivityViewWithController(to, from)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,6 @@ class ChapterItem(val chapter: Chapter, val manga: Manga) : AbstractFlexibleItem
|
|||||||
position: Int,
|
position: Int,
|
||||||
payloads: List<Any?>?
|
payloads: List<Any?>?
|
||||||
) {
|
) {
|
||||||
|
|
||||||
holder.bind(this, manga)
|
holder.bind(this, manga)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,7 +168,6 @@ class HttpPageLoader(
|
|||||||
val page: ReaderPage,
|
val page: ReaderPage,
|
||||||
val priority: Int
|
val priority: Int
|
||||||
) : Comparable<PriorityPage> {
|
) : Comparable<PriorityPage> {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val idGenerator = AtomicInteger()
|
private val idGenerator = AtomicInteger()
|
||||||
}
|
}
|
||||||
|
@ -57,5 +57,4 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<changelog bulletedList="true">
|
<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="">
|
<changelogversion versionName="v0.8.4" changeDate="">
|
||||||
<changelogtext>All the internal sources have been removed. They now need to be
|
<changelogtext>All the internal sources have been removed. They now need to be
|
||||||
installed as an extension.</changelogtext>
|
installed as an extension.</changelogtext>
|
||||||
|
Loading…
Reference in New Issue
Block a user