This code was sort of fine when it used raw Java types, but the Kotlin
equivalent technically calls a method that takes a Nothing-typed
argument with a value that is not of type Nothing. Whether that works
depends on how lenient kotlinc is about inserting casts in bytecode.
The solution is to give the unknown type represented by a star an
explicit name by capturing it in a type variable, then cast to that type
instead of Nothing. This is guaranteed to be an unchecked, but valid,
cast.
Using the search bar in My Library, you can search tags for manga (ie. "Romance") or exclude (ie. "-Comedy") You can also search multiple by seperating by commas (ie. "Romance, -Comedy")
Clicking the tag in manga info from the library also performs a local serach
* Indicate obsolete extensions
* Make obsolete indicators red
* Move obsolete extensions up the list
* Add base button theme for holder
* Use red button color state instead of explicit text color
* fix bangumi track : the update status api must be called before update chapter api
* fix bangumi track will override record to 0 after every track search(bind)
* add options menu item to filer extensions by languages
* resolve merge conflicts
changes per pr comments
Co-authored-by: arkon <arkon@users.noreply.github.com>
Kotlin: 1.2.71 -> 1.3.50
Coroutines: 0.30.2 -> 1.3.1
Gradle: 4.6 -> 5.4.1
Android gradle plugin: 3.2.1 -> 3.5.0
This brings us down to *one* experimental coroutine API, and we've
opted in to using it in just *one* place.
(The fact that the API to opt-in to using an experimental API in a
specific place is *also* experimental surely will not come back to
bite us later.)
* copy from shikimori and change parmater
* add login activity
* fix
* login sucess
* search
* add...
* auth fix
* save status
* revert shikimori
* fix oauth error
* add bangumi info
* update read chapter index
* refersh token
* remove outdate file
* drop comment
* change icon
* drop search result which type not comic
* fix bind logic
* set status
* add ep status
* format code
* disable cache for `collection` api
* Add LibraryUpdateRanker
This class provides various functions to generate Comparators that can
be used to order the manga to update.
One such ordering is by relevance:
It prioritises manga that were updated more recently.
Another Ordering is by lexicographic order:
This is the default behaviour.
* Use relevanceRanking scheme
Instead of default(noRanking/lex ranking) now mangaList is sorted with
relevanceRanking.
* Add UI and associated variables & strings for Update Ranking.
* Use user preferences to determine update ranking scheme.
* Refactor relevanceRanking to latestFirstranking.
This name seems to better reflect the ranking scheme and frees up the
name relevanceRanking for future use.
* Set latestFirst scheme as default.
(Changing over from lexicographic scheme)
* Fix 1
[Convert LibraryUpdateRanker to a object.](./files/82f263749f0ae775385b23dd919f1865360db969#r287513539)
[Nitpick: Add lines](./files/82f263749f0ae775385b23dd919f1865360db969#r287540256)
[Replace Java comparator](./files/82f263749f0ae775385b23dd919f1865360db969#r287539976)
[Nitpick: Add local variable](./files/82f263749f0ae775385b23dd919f1865360db969#r287514805)
* Fix 2
[Weird import](./files/82f263749f0ae775385b23dd919f1865360db969#r287513709)
[Default value](./files/82f263749f0ae775385b23dd919f1865360db969#r287540064)
[Use existing Strings](./files/82f263749f0ae775385b23dd919f1865360db969#r287514476)
[Use Library update order](./files/82f263749f0ae775385b23dd919f1865360db969#r287540204)
* * fix cookieManager not clearing cookies properly
* manually clear tracking prefs when !isLogged (e.g. cookies were cleared)
* use full url for removing cookies
* add interceptor for all non-login network calls
* attempt auto login if cookies are missing
* move handling of csrf token to interceptor
* * move methods around to improve readability
* fix TrackSearchAdapter not updating other fields if cover_url is missing
* revert accidental removal of feature in https://github.com/inorichi/tachiyomi/issues/65
* avoid login if credentials are missing
* fix eol
* *separate login flow from rxjava for reuse in sync
* *use less expensive method of finding manga
* *move variable declaration
* formatting
* set total chapters in remote track
* Added second updateTrackLastChapterRead() called whenever a chapter has been read in the reader
* Removed old updateTrackLastChapterRead() so that it's not called twice.
* [Cloudflare] Fix recent CF JS Challenge error that calls DOM
* Replace `atob` to pure js version. (was node.js API which invalid)
* Use `atob` as native function `Base64.decode()``
* Use okio Base64 decoder instead of Android one.
* Update Anilist API search to return 50 results
This will help alleviate not being able to find manga with generic names
such as Monster
* Add description to Anilist search dialogue
* For migration, put the selected source at the top of the search list rather than excluding it
* Indicate which source is currently selected during migration
Currently uses ▶
* Delete old reader
* Add utility methods
* Update dependencies
* Add new reader
* Update tracking services. Extract transition strings into resources
* Restore delete read chapters
* Documentation and some minor changes
* Remove content providers for compressed files, they are not needed anymore
* Update subsampling. New changes allow to parse magic numbers and decode tiles with a single stream. Drop support for custom image decoders. Other minor fixes
Viewing a manga's info page for the first time forces a chapter sync.
Prior behavior would cause new chapters to be retrieved for that manga, but with manga.last_update remaining at 0 (until a library update occurred in which chapters were changed).
The new behavior updates last_update any time the chapters are changed via syncChaptersWithSource().
* Changed Kitsu to use Algoria search directly, was recommended by the Kitsu Dev team
* remove extra line
* fixed end date bug
added filtering out novel back in
* save the retrofit instances locally for search.
* Implement Anilist API v2 (closes#1159)
Switches to using the Anilist v2 API.
Login is now done by implicit grant and tokens are good for one year.
Users will need to login again after token expiration.
"clientId" on line 289 of AnilistApi.kt should be changed to Tachiyomi's
own client ID number.
* Code style formatting
Revert to kotlin 1.2.30
Use correct client ID
Rename AnilistApi.login to AnilistApi.createOAuth to reflect changed implementation
Rename json mimetype variable from json to jsonMime for clarity
Don't read response if it's ignored
Remove unused parameters from api requests
* Close netResponse after read
* Refactor remote_id into media_id and library_id
* DB: Refactor RemoteId
Refactor RemoteId into library_id and media_id
Implement function to fetch library_id if user is migrating rom APIv1
* Remove logging interceptor
* Compatability and sql simplification
* Fix score and minor improvements
* Revert changes to Kitsu API
* Added Github link to about.
* Added github link to About page (Fixed)
Fixed based on jogerj's comment in #1389
* Changed Github link to correct URL.
* Balanced brackets
* initial commit
changed tracking info screen
added ability to click logo to launch website
* added publishing status and type to description.
adjusted layout some
* added start date to track info
* tweaked layout
* tweaked layout
* tweaked layout
* code review changes
* code review changes part 2
* code review changes
* Added page down and page up key event. Have it always on since page down and page up buttons are only on readers or keyboards
* moved code to different method
* added spaces back to comments
* Update basic filter for sources that include space between numbers
Wasnts matching on vol. 1 ch. 10 previously so mangadex last chapter was showing volume number.
* Don't show last chapter number when there are 0 chapters or chapters with no numbers.
This prevents one shots from showing with -1 as last chapter and instead just leaves it blank
* added else to be Unknown instead of blank
* removed empty line
added test case
* switched to null safe ?.
* Revert "switched to null safe ?."
This reverts commit 97a9300d1bedc8e01efb439c180eced8eaa1da5b.
undo
* switched to null safe ?.
* adjusted search to be lower in navview
* close drawer on search
moved search and reset to bottom
* switched sort icon to arrow
* allow secondary drawer to swipe open and close
* fixed click to collapse for sortgroup, and group item
updated to rc4 flexibleadapter
* added header to drawer
* changed string to Search filters
* collapsed sort group
* fixed arrow size
* added divider line
* fixed vector size
* add divider id and tools text
* adds long click to copy details per inorichi/tachiyomi#1127
* Added the latest update date for inorichi/tachiyomi#1098 and possible fix for inorichi/tachiyomi#1141
* cleanup some mistakes I left
* adds modifications to full name display for inorichi/tachiyomi#1141 and click to search on various information pieces for inorichi/tachiyomi#860
* This modifies how the full title shows up in the info pages and also properly ellipsizes the titles in the catalogue/library list views
* Changes full title layout in horizontal mode
* Adds the tags in using AndroidTagGroup library
* reverting the sdk version in the gradle build
* code cleanup
* added back status update
* [SettingsBackupController] Handle ActivityNotFoundException
When using `Intent.ACTION_CREATE_DOCUMENT` on SDK >= Lollipop there is no
guarantee that the ROM supports the built in file picker such as MIUI
* [SettingsBackupController] Add import for ActivityNotFoundException
* Add additional handlers to Android document intents
* Requested review changes
Move `try {`s to top of block
Replace version numbers with `Build.VERSION_CODES.LOLLIPOP`
Break out custom file picker intent to Context extention `Context.getFilePicker`
Rename `val i` to `val intent` to be more clear with variable names
* Add version check to custom file picker after exception