mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +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:
		| @@ -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 { | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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) { | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -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) | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -41,7 +41,6 @@ class ChapterItem(val chapter: Chapter, val manga: Manga) : AbstractFlexibleItem | ||||
|         position: Int, | ||||
|         payloads: List<Any?>? | ||||
|     ) { | ||||
|  | ||||
|         holder.bind(this, manga) | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -168,7 +168,6 @@ class HttpPageLoader( | ||||
|         val page: ReaderPage, | ||||
|         val priority: Int | ||||
|     ) : Comparable<PriorityPage> { | ||||
|  | ||||
|         companion object { | ||||
|             private val idGenerator = AtomicInteger() | ||||
|         } | ||||
|   | ||||
| @@ -57,5 +57,4 @@ | ||||
|  | ||||
|     </LinearLayout> | ||||
|  | ||||
|  | ||||
| </LinearLayout> | ||||
|   | ||||
| @@ -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> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user