bd2cb97179
* Misc cleanup - Replace !List.isEmpty with List.isNotEmpty - Remove redundant case in MoreScreenModel - Drop no-op StateFlow.catch - From lint warning: > SharedFlow never completes, so this operator typically has not > effect, it can only catch exceptions from 'onSubscribe' operator * Convert DownloadQueue queue to MutableStateFlow Replace delegation to a MutableList with an internal MutableStateFlow<List>. In order to avoid modifying every usage of the queue as a list, add passthrough functions for the currently used list functions. This should be later refactored, possibly by inlining DownloadQueue into Downloader. DownloadQueue.updates was a SharedFlow which updated every time a change was made to the queue. This is now equivalent to the queue StateFlow. Simultaneous assignments to _state.value could cause concurrency issues. To avoid this, always modify the queue using _state.update. * Add Download.statusFlow/progressFlow progressFlow is based on the DownloadQueueScreenModel implementation rather than the DownloadQueue implementation. * Reimplement DownloadQueue.statusFlow/progressFlow Use StateFlow<List<T>>.flatMapLatest() and List<Flow<T>>.merge() to replicate the effect of PublishSubject. Use drop(1) to avoid re-emitting the state of each download each time the merged flow is recreated. * fixup! Reimplement DownloadQueue.statusFlow/progressFlow |
||
---|---|---|
.github | ||
app | ||
buildSrc | ||
core | ||
data | ||
domain | ||
gradle | ||
i18n | ||
macrobenchmark | ||
presentation-core | ||
presentation-widget | ||
source-api | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
build.gradle.kts | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
README.md | ||
settings.gradle.kts |
Build | Stable | Weekly Preview | Contribute | Support Server |
---|---|---|---|---|
Tachiyomi
Tachiyomi is a free and open source manga reader for Android 6.0 and above.
Features
Features include:
- Online reading from a variety of sources
- Local reading of downloaded content
- A configurable reader with multiple viewers, reading directions and other settings.
- Tracker support: MyAnimeList, AniList, Kitsu, MangaUpdates, Shikimori, and Bangumi support
- Categories to organize your library
- Light and dark themes
- Schedule updating your library for new chapters
- Create backups locally to read offline or to your desired cloud service
Download
Get the app from our releases page.
If you want to try new features before they get to the stable release, you can download the preview version here.
Issues, Feature Requests and Contributing
Please make sure to read the full guidelines. Your issue may be closed without warning if you do not.
Issues
Bugs
- Include version (More → About → Version)
- If not latest, try updating, it may have already been solved
- Preview version is equal to the number of commits as seen in the main page
- Include steps to reproduce (if not obvious from description)
- Include screenshot (if needed)
- If it could be device-dependent, try reproducing on another device (if possible)
- Don't group unrelated requests into one issue
DO: https://github.com/tachiyomiorg/tachiyomi/issues/24 https://github.com/tachiyomiorg/tachiyomi/issues/71
Feature Requests
- Write a detailed issue, explaining what it should do or how. Avoid writing just "like X app does"
- Include screenshot (if needed)
Source requests should be created at https://github.com/tachiyomiorg/tachiyomi-extensions, they do not belong in this repository.
Contributing
See CONTRIBUTING.md.
Code of Conduct
See CODE_OF_CONDUCT.md.
FAQ
See our website. You can also reach out to us on Discord.
License
Copyright 2015 Javier Tomás
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Disclaimer
The developer of this application does not have any affiliation with the content providers available.