* don't trim newlines if summary expanded
* move description trim logic to separate function
* logic error oops
* let's try something
* fix bug on first load
makes it so that, description text is trimmed when entering manga from
library
Co-authored-by: Andreas <andreas.everos@gmail.com>
Co-authored-by: Andreas <andreas.everos@gmail.com>
* Add IME_FLAG_NO_PERSONALIZED_LEARNING flag to text input when incognito is enabled
Tested with Gboard only.
* Revert "Add IME_FLAG_NO_PERSONALIZED_LEARNING flag to text input when incognito is enabled"
This reverts commit 068399db
* Add IME_FLAG_NO_PERSONALIZED_LEARNING flag to text inputs when incognito is enabled
Source preference is not affected.
* Source preference stuff
* make check only visible after selecting an item
* replace tick with button and send to bottom
* fixed button visibility
* grey btn out
* resolving some bits
* removing the tick from appbar
* remove useless lines, appl insetter
* Add initial code for scaling animations, apply scale to reader nav overlay
* Rename extension function, apply system animator scale to ActionToolbar
* Apply system animator scale to expanding manga cover animation
* Apply system animator scale to image crossfade (also disables animated covers when browsing)
* Add documentation, make MotionScene Transition comment a bit more clear
* Disable animated covers in MangaInfoHeaderAdapter if animator duration scale is 0
* Disable animated covers in Library if animator duration scale is 0
* Convert loadAny listener to extension function
* Replace "More" with Arrows
We used to have arrows but it was set away from the description which took a lot of space.
It was changed to "More" text, but with the recent design changes I think it'd look better to get a mix between them both.
* Properly align icons
Co-Authored-By: Andreas <6576096+ghostbear@users.noreply.github.com>
* Expand support to Tablets
Get it... expand... hehe 😎
* Fix expanded width
Also fixes so that the constraint for the toggleLess is dependant on the right thing
* Give info toggles its own space
Uses its own margin now to push info rather than just being attached as a info margin.
* Remove weird duplicates I did not add
I did not add these but I don't see a reason to keep dupes
* Add bottom scrim
* Change to centered arrow under info
Anyone wanna experiment/build on top off then feel free to tweak
* Add background glow to icon for contrast
Co-Authored-By: Andreas <6576096+ghostbear@users.noreply.github.com>
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
Co-authored-by: Andreas <andreas.everos@gmail.com>
* Fix failed reader context creation on v28
* Re-apply the reader styles manually after overriding night mode
This commit replaces the ThemeCompat.rebase() call since the private API used is
in dark greylist max target P, thus making it unreachable.
* Revert "Fix failed reader context creation on v28"
This reverts commit 6e2104d7
* Use user preferred title language in Anilist
Since Anilist is only used by authenticated users, the title language
can be set using the `userPreferred` field (defaults to romaji)
Changed wherever `title>romaji` was being used. Shouldn't have missed
any. `userPreferred` is also available for Staff and Character but not
relevant to Tachiyomi for now.
Users might need to go Logout and log back in on Anilist to see the
change. Actual setting can be found at https://anilist.co/settings/media
closes https://github.com/tachiyomiorg/tachiyomi/issues/5757
* correct title in anilist model
indicates the fact that userPreferred title is used
* convert forgotten `type` to `format` as well
leads to NPE when using `findLibManga`.
missed one query in https://github.com/tachiyomiorg/tachiyomi/pull/5741
* Requires authentication-confirmation to change biometric lock settings
* Prevent double authentications on older APIs when confirming settings changes
* Use new AuthPrompt API for app lock
With this commit, the app lock will only explicitly require Class 2 biometrics
or screen lock credential. Class 3 biometrics are guaranteed to meet Class 2
requirements thus will also be used when available.
* Use extension toast
* ImageUtil.chooseBackground: Use built-in decoder
* PagerPageHolder: Move chooseBackground call to IO thread
Also move stuffs and reuse image stream as bytes
* Prepare for edge-to-edge MangaController
* Fix derpy liftToScroll with our own implementation
* Edge-to-edge MangaController
Except when legacy blue theme is used.
* Save app bar lift state for controller backstack
* Fix expanded cover position after the view recycled
* Handle overlap changes when incognito mode disabled
* Tablet fixes
* Revert "Handle overlap changes when incognito mode disabled"
This reverts commit 1f492449
Breaks on rotation changes.
* Fix MangaController's swipe refresh position
* All controllers are now doing lift app bar on scroll by default
They are already doing that before so this pretty much just a cleanups.
* TachiyomiCoordinatorLayout: Support ViewPager for app bar lift state check
I'm willing to revert this if this minute detail solution is deemed too hacky xD
* Fix app bar not lifted when scrolled without fling
* Save app bar lift state across configuration changes
* Fix MangaController's swipe refresh position after configuration change
* TachiyomiCoordinatorLayout: Update ViewPager reference when controller is changed
* Put themed reader context in adapter
This avoids creating themed context everytime the page holder is created, this
also allows the transition view to use the same themed context.
* Check against app night mode to create themed reader context
* ReaderTransitionView: Use context theme color for texts
The whole reader will need to be recreated when changing reader background while
webtoon mode is used, because recreating just the RecyclerView without messing
up the scroll position is impossible (I hope I just missed something).
* use format instead of type in anilist search
As per anilist graphql docs, `type` refers to whether anime/manga and is
redundant (since we already limit it to `MANGA`). What we actually want
is `format` which includes whether the media is a One-shot or Manga
This should help in making search a bit better as one no longer needs to
rely on the Date to figure out if its the One-shot entry or the Manga
entry
* Revert "use format instead of type in anilist search"
This reverts commit 6f0ba4888669f414a2093d7632eb1fab109d74de.
Accidentally changed the wrong query while further testing whoops
* use format instead of type in anilist search
As per anilist graphql docs, `type` refers to whether anime/manga and is
redundant (since we already limit it to `MANGA`). What we actually want
is `format` which includes whether the media is a One-shot or Manga
Changes search query and corresponding JSONALManga structure
In practice this feature:
- Just didn't work
- Magically worked (sometimes; see first point)
- Restored something potentially too old and totally messed up the app
* Hide reader menu when user starts reading again
* Hide menu on zoom and scrolling around during zoom
Didn't work for webtoon
* Only listen when menu is visible
* Use CircularProgressIndicator on PageHolder
Manually rotate the CircularProgressIndicator inside a wrapper view instead of
drawing our own custom indicator.
* Use CircularProgressIndicator on TransitionHolder
* Fix Cover sharing and saving
The newly added manga cover sharing only worked with manga saved to the library (due to the implemented CoverCache only recording covers of library manga).
The changes made with this commit fixes that behaviour by implementing a fallback: the cover can now also be retrieved from the Coil memoryCache.
* Removal of coil MemoryKey usage
No longer uses the coil memory key, instead starts a new Coil request for the cover retrieval.
* Removed try-/catch-wrapper and added context-passing
useCoverAsBitmap lost its try-/catch-wrapper and doesn't call for the context anymore.
Instead shareCover and saveCover now pass their activity as context to useCoverAsBitmap.
* Added missing parameter description for useCoverAsBitmap
* Use Core Splashscreen for splashscreen stuff
* Keep splash screen until activity ready
Ready as in the data inside starting screen is finished showing
* Use custom splash screen exit animation on older android version
* Add splash screen minimum duration to prevent exit jank
* Fix broken AMOLED theme
* Improvements
* Added "Ninomae" theme
Based on the lovely Ninomae Ina'nis, for Arkon and Flat
* Use updated colors from Ghostbear
Adapted after feedback
Co-Authored-By: Andreas <6576096+ghostbear@users.noreply.github.com>
* Tweak the Ninomae theme further
* Sort themes alphabetically
- Sorts themes alphabetically.
- Use the same capital word system in colors.xml for themes.xml as well.
- Rename AMOLED theme to AMOLED mode in theme.xml and color.xml references.
* More tweaks
* Style incognito bar
Uses a dark purple which looks super clean instead of a washed out gray
This sets the groundwork for other themes too
* Tweak final onPrimary color
* Rename Ninomae to Tako
RIP
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
* Use Material Components' dialogs
For all dialogs that has direct replacement.
* Convert text input dialogs
* Convert quad-state multi choices dialogs
* Convert date picker dialogs
This also changes the flow to remove selected start/finish tracking date and
the track item itself
* Remove material-dialogs dependencies
* Add TachiyomiImageDecoder for Coil
Is currently used to decode AVIF and JPEG XL images.
* LocalSource: Check against file name for cover
This allows file with all supported formats to be set as cover
* TachiyomiImageDecoder: Handle HEIF on Android 7 and older
* Merge AMOLED and regular dark themes
This allows all variants of dark themes to use black backgrounds as a
separate preference.
* Merge light and dark themes
* Fix ReaderSeekBar color on Dark Blue theme
* Color fixes
* Fix Dark Blue bars ripple
* Simplify night mode check
* Imported implementation for updating library by next expected update from Neko. This sort uses the last 4 updates for a manga to compute an average time between updates and then extrapolates when the next update should occur.
Currently seems to work perfectly. However, I may have silently messed something up along the way.
All code and algorithms are credited to kyjibo on GitHub. The original commit adding this functionality is here: 681003926a
* Imported implementation for updating library by next expected update from Neko. This sort uses the last 4 updates for a manga to compute an average time between updates and then extrapolates when the next update should occur.
Currently seems to work perfectly. However, I may have silently messed something up along the way.
All code and algorithms are credited to kyjibo on GitHub. The original commit adding this functionality is here: 681003926a
* Remove commented-out line from LibraryUpdateRanker
I missed removing this when first committing. The removed line is a holdover from Neko, which requires 7+, but I removed the function that requires this.
* Tracking sheet and search visual adjustments
* Remove track item divider
* Add start margin to "add tracking" button
* Fix track search dialog crash when no item chosen
* Show "remove" action only when track item is previously set
* Remove placeholder for total chapters
* Cleanups
* Add track search error/empty result message
* Make track search dialog fullscreen
* Use AutofitRecyclerView for track search dialog
* Fix text input overlapping
* Run track search from IME action instead
* Remove deprecated method
* Reformat
* Set track search error message on the placeholder
* Use payload to notify track search item change
* Fix track search action icon tint color
* extend library search to enable -<source> search
library search already allows for <source> search to select manga from a
particular source. Similarly, -<source> allows to search for manga that
aren't from the said source. TachiyomiSy has this feature but it heavily
depends on exh methods
A problem when you directly add a negation check is that although
it will work, the genre search kicks in adds back every manga since
-<source> returns true for all genres of a manga
Thus, the solution I decided on was do source search first, and then
move to genre check when it fails. A perhaps useful addition is that,
now you're able to search like this:
<genre1>, -<source>, -<genre2>
* make if-else statements more readable
* refactor containsSourceOrGenre() using `when`
* add comment describing the function
* remove lazy
not really required anymore now that containsSourceOrGenre was rewritten
using `when`
* Fix ReaderActivity system bars behavior
* Fix ReaderActivity transition view text color
* Don't change reader navbar color when windowLightNavigationBar is not available
* Add flags for sorting per category
* Add logic to LibrarySettingsSheet
* Add logic to LibraryPresenter
* Minor tweaks
* Use enum instead of variables
Also deprecates LibrarySort in favour of the new enum classes
* Remove debug log and suppress deprecation
* Convert DisplayMode setting to enum
Also fix bug were adapter would get de-synced with the current per category setting
* Fix migration crashing app due to values being access before migration
* Match ReaderActivity theme with the rest of the app
* Fix viewer inset when fullscreen reader is off
* Fix incorrect toolbar color after recreate
* Remove animated inset
* Move isDarkMode to PreferencesHelper
* More themes cleanup
* Tweak some things
* Fix 'Clear History' icon
* Split out ripple colored to its own drawable
* Tidy up things
* Unify background dim amount
* Use primaryColor for Account login button
* More colored ripples
* use colorOnPrimary for selected comfortable library item title
Co-authored-by: Soitora <simon.mattila@protonmail.com>
* add start download now
download now for selected chapter
from j2k
Co-Authored-By: Jays2Kings <jays@outlook.com>
* change string to action
* move to bottom
* oopsie
Co-authored-by: Jays2Kings <jays@outlook.com>
* Added text to ChangeMangaCategoriesDialog if invoked with empty category list
* Change dialog text, add negative button, and change positive button to open CategoryController
* Tiny bit of code cleanup and reorganizing
* Make cover bigger on tablet UI
Also fix bug when opening from source
* Use ISO A5 ratio on tablet UI
* Change design
* Fix bug that happened when refreshing
* Convert manga_info_header to use ContraintLayout
Will help with MotionLayout and tablet layout
* Convert to MotionLayout to be able to enlarge cover art
* Add keyframes to animations
* Remove keyframes
Alexa play Despacito
* Add back manga_summary_section
* Add better library item selectors
Inspired by the J2K method of library item selection.
* Tweak theme selection colors
It was missing for Hot Pink and Midnight Dusk.
The selector color is 75% alpha of the color accent, this looked fitting for all themes.
* Edge-to-edge bottom sheet when possible
* ReaderSettingsSheet: Animate background dim changes
* Adjust modal bottom sheet in-out animation
* Use public method to get bottom sheet behavior
* Set bottom sheet peek size to 50% screen height
The current auto peek height gives too low value on landscape orientation
* Set bottom sheet navigation bar scrim when needed
* Animated icon for the Library tab
Co-Authored-By: CrepeTF <70870719+CrepeTF@users.noreply.github.com>
* Animated icon for the More tab
Co-Authored-By: CrepeTF <70870719+CrepeTF@users.noreply.github.com>
* Rename more_vert to overflow
Should maybe help any confusion together with the other more_horiz changes.
* Animated icon for the History tab
Co-Authored-By: CrepeTF <70870719+CrepeTF@users.noreply.github.com>
* Clarify names and clean files
* Animated icon for the Updates tab
* Animated icon for the Browse tab
* Recreate the animated icon for the History tab
History icons look better when the internal clock is not moving.
Co-authored-by: CrepeTF <70870719+CrepeTF@users.noreply.github.com>
* Add Tertiary color and use it for Badges
* Define ripple color for Material Dialog
Although it doesn't do anything, but it should
* Add tertiary colors for Green Apple theme
* Use the correct theme accent in AlertDialog
* Declare a global colorControlHighlight
Fixes some of the ripples listed on #5154.
* Change md_ripple_color to primary ripple color
* display the currently active restrictions in the library update preference
* removed first line
* use constant instead of literal string
* remove spanned string builder
* hide the score display on the tracksheet if not supported
* Convert track item to use LinearLayout
Co-authored-by: Andreas E <andreas.everos@gmail.com>
* Added "Green Apple" theme
Totally not stolen from other forks.
Although to cover all my bases I co-author all people who adapted the theme in any form.
Neko, J2K and Tako
Co-Authored-By: Carlos <2092019+CarlosEsco@users.noreply.github.com>
Co-Authored-By: Jays2Kings <jays@outlook.com>
Co-Authored-By: CrepeTF <70870719+CrepeTF@users.noreply.github.com>
* Add black as the OnSecondary color
Co-authored-by: Carlos <2092019+CarlosEsco@users.noreply.github.com>
Co-authored-by: Jays2Kings <jays@outlook.com>
Co-authored-by: CrepeTF <70870719+CrepeTF@users.noreply.github.com>
* add preference to auto update trackers during library update
* also update trackers when updating chapters and preference is set
* remove unnecessary launch/join
* perform tracking update within the same chapter update loop to avoid double notifications
* Organize and clarify themes file
Increases clarification with better commenting, should make it easier to add or modify current themes.
* Make AMOLED its own theme category
* Tweak ripples for AMOLED
* Add "Midnight Dusk" theme
Ports it from jobobby04/TachiyomiSY.
Co-Authored-By: CrepeTF <70870719+CrepeTF@users.noreply.github.com>
* Add "Hot Pink" theme
Ports it from jobobby04/TachiyomiSY.
Co-Authored-By: OncePunchedMan <64155117+OncePunchedMan@users.noreply.github.com>
* Make AMOLED a base theme
* Final tweaks
Rename "Toolbar.Light" to "Custom.PopupTheme"
Changes placing of backgroundDusk
Removes HotPink and MidnightDusk custom Toolbars, I believe they are unnecessary.
* Rename a Midnight Dusk color
* Make AMOLED independent from Dark as a theme
Co-authored-by: CrepeTF <70870719+CrepeTF@users.noreply.github.com>
Co-authored-by: OncePunchedMan <64155117+OncePunchedMan@users.noreply.github.com>
The application class onCreate will also be called when user navigates to an
activity after the app process is killed by the system.
So make sure the incognito is disabled only when the entry point of the app is
created from scratch (e.g. after being force closed by the user).
* Rename rippleNavColor to rippleSecondaryColor
It's not just for the navigation anymore
* Add a rippleToolbarColor for toolbar ripples
Fixes so you can use specialized colors in case of using a theme such as Dark Blue or Light Blue
* Add so text buttons are also themed secondary color
Apparently this is also a common Google app thing
* Changes variable name for Navigation Rail
* Combine ripple_dark and ripple_light
Fixes AMOLED theme and doesn't require two seperate items.
* Fix ripple for the new About icons
* Fixes nav/tab ripple in Dark Blue and Light Blue themes
* Theme some ripples using their Style instead