Commit graph

151 commits

Author SHA1 Message Date
NBA2K1
8aea458033 remove redundant import 2025-07-06 16:48:45 +02:00
Schnitzel5
bd17e1e9eb adjusted sync features 2025-07-04 02:24:01 +02:00
NBA2K1
4a986d4c15 Remove check
- Remove the enableAniSkipStateProvider check, because it is already being checked by the caller (anime_player_view.dart, initState() line 353).

- Change ref.watch() to ref.read() as the user cannot change its value without exiting the video player. ref.watch() is meant to be used within reactive contexts.
2025-06-30 18:01:58 +02:00
NBA2K1
a97f68d94d comment for more clarity 2025-06-27 21:05:11 +02:00
NBA2K1
fbdbbe9766 Update _setSkipPhase()
Setting a `ValueNotifier` to the same value still triggers its listeners.
Only update `_skipPhase.value`, when it really changs.
2025-06-27 19:22:31 +02:00
NBA2K1
d21dbbbc6b Fix Fullscreen mode 2025-06-27 08:35:01 +02:00
NBA2K1
e9dfb516ab unify position stream listeners
Collapse three `.position.listen` callbacks into a single
subscription to reduce per‑tick overhead and centralize all
position‑driven updates (current position, subtitle/audio init,
and skip‑phase logic) in one handler.
2025-06-27 01:52:50 +02:00
NBA2K1
43c90a7777 collapse the many nested builders
flatten builders into a single ValueListenableBuilder.
2025-06-27 00:20:01 +02:00
NBA2K1
c9fdccfacb build widget only when "Enable AniSkip" is true
The variables `enableAniSkip`, `enableAutoSkip`,
`aniSkipTimeoutLength` and `skipIntroLength` are global settings.
The user cannot change them inside the video player.
So there's no need to watch them inside the _currentPosition listener.
2025-06-26 20:39:35 +02:00
NBA2K1
89af73e9b2 remove redundant if-condition 2025-06-26 19:34:41 +02:00
NBA2K1
cdc21fd4ad Only initAniSkip if "Enable AniSkip" is true 2025-06-26 19:27:20 +02:00
NBA2K1
98c40ff39f set fullscreen only when the video starts playing 2025-06-26 19:24:57 +02:00
NBA2K1
eab52c6677 remove redundant import 2025-06-26 19:23:55 +02:00
NBA2K1
58b5050fff Make buttons white for consistency in white mode
The share-button on the top right and the show-episode-list-button next to it.
2025-06-24 22:50:59 +02:00
Schnitzel5
a0ebe46fa0 added option to change hwdec 2025-06-07 01:46:30 +02:00
Moustapha Kodjo Amadou
4d27a2c0e3 fix #468 2025-06-02 11:41:12 +01:00
NBA2K1
7c5a7cb2e5 Implement QOL-feature
If the last episode of an Anime has ended, exit fullscreen mode.
2025-06-01 18:29:31 +02:00
Moustapha Kodjo Amadou
80efee40d1 dart format 2025-05-30 17:43:42 +01:00
NBA2K1
3709163a49 Reduce Code Duplication
Extract `CustomMaterialPlayOrPauseButton` class from *mobile.dart* and `CustomMaterialDesktopPlayOrPauseButton` class from *desktop.dart* into *play_or_pause_button.dart* to eliminate code duplication and improve maintainability.
2025-05-18 01:47:12 +02:00
NBA2K1
711e5ea6ae Fix UI bug
Fix playback time display exceeding max duration when skipping near video end
2025-05-17 22:07:50 +02:00
NBA2K1
9b7fea1435 Implement Dropdown menu to video speed 2025-05-17 21:46:52 +02:00
NBA2K1
1e0951be42 Fix Slider assertion error when skipping past video duration
Prevent an AssertionError in the Slider widget when the skip duration
button causes the value to exceed the video's maximum duration.
Clamp the Slider's value to the range [0, max]
using `clamp(0.0, maxValue).toDouble()` to ensure it stays within bounds.

Exception example:
```
Exception has occurred.
_AssertionError ('package:flutter/src/material/slider.dart': Failed assertion: line 199 pos 10: 'value >= min && value <= max': Value 1410000.0 is not between minimum 0.0 and maximum 1409533.0)
```
2025-05-17 21:44:12 +02:00
NBA2K1
3bb8c1acdf Reduce Code duplication 2025-05-17 04:56:53 +02:00
Enbiya Olgun
2446756552 moved super() call of initState to top of method 2025-04-22 04:57:52 +02:00
Enbiya Olgun
0188f99aad Added keyboard shortcut
Added the Enter-key as a shortcut to skip the Anime intro (defaultSkipIntroLength).
2025-04-06 23:18:47 +02:00
Schnitzel5
95619437a1 added screenshot option to player view 2025-03-24 21:33:34 +01:00
Schnitzel5
4b2ee1f0e6 added option to load own subtitles 2025-03-22 22:10:02 +01:00
Moustapha Kodjo Amadou
f443065113 + 2025-03-11 09:39:03 +01:00
Schnitzel5
301220a6a4 added default subtitle lang + statistics screen 2025-03-10 00:02:06 +01:00
Schnitzel5
355f19dfe4 added auto-detect language for subtitles 2025-03-06 00:31:20 +01:00
Schnitzel5
52c5ac5b48 + 2025-03-05 15:51:26 +01:00
Schnitzel5
17128cccbd added options to migrate sources and clean the database 2025-03-02 01:22:41 +01:00
Moustapha Kodjo Amadou
3e401c8af2 dart format 2025-02-23 15:31:49 +01:00
Schnitzel5
3ecd3d0a14 added long press for 2x playback speed 2025-02-22 21:00:32 +01:00
Schnitzel5
aa946c9d51 enhanced sync feature 2025-02-12 19:13:16 +01:00
Moustapha Kodjo Amadou
bc8e0cef47 fix #324 2025-01-22 10:24:18 +01:00
Moustapha Kodjo Amadou
e901ef6281 refactor: update chapter handling to use IDs instead of objects in reader views 2025-01-22 10:02:44 +01:00
Moustapha Kodjo Amadou
c906eec398 refactor 2025-01-15 09:31:45 +01:00
Schnitzel5
3bc85cf5aa saving novel chapter progress + removed sync for now 2024-12-21 21:18:21 +01:00
Schnitzel5
34179a17a5 Merge branch 'feature/novel' into feature/light-novel 2024-12-20 15:59:06 +01:00
kodjomoustapha
a41ccaff22 fix & reformat 2024-12-20 10:15:15 +01:00
Yegor Shovkun
adbd1529f7 fix: cs fix (reformat with 120 line length) 2024-12-14 12:38:56 +02:00
kodjomoustapha
53300dafef Upgrade gradle config, Upgrade packages & some fix 2024-12-13 18:21:49 +01:00
kodjomoustapha
4748f3c699 fix 2024-12-13 10:31:57 +01:00
kodjomoustapha
2d7991d1cb fix remains in full screen when opening a new episode 2024-12-08 19:35:13 +01:00
kodjomoustapha
49ac4c306d + 2024-12-06 11:00:07 +01:00
kodjomoustapha
11dea6dfaf fix get torrent video list 2024-12-02 17:01:10 +01:00
Schnitzel5
58225ea21d Merge branch 'feature/light-novel' 2024-11-27 22:40:18 +01:00
kodjomoustapha
727dad4a8c delete the BT cahe directory on each first launch 2024-11-27 15:32:10 +01:00
Schnitzel5
cae5f92140 moved key I to L for 10s skip and arrow keys are 5s now 2024-11-26 17:44:41 +01:00