Repository navigation
AnimeTVOne v1.3.3
AnimeTVOne v1.3.3 — Player fixes & episode picker
Deep review of the player (PlayerScreen / PlayerViewModel / control logic).
Bugs fixed
- History was never saved when leaving the player. The
DisposableEffect
captured the first composition'suiState(alwaysnullanime/episode), so
the resume position was lost on exit. Now reads the latest values
(rememberUpdatedState), so resume-on-reopen works. - Stale episode list when switching anime. The previous anime's episodes
lingered, so "下一集" could operate on the wrong list (or vanish). The list is
now cleared immediately when the anime changes. - Retry did not reload. A player error with the same stream URL could not be
retried because the state never changed. AretryCountnow forces a reload. - Scrubbing on an unknown duration (
-1/0until prepared) jumped to a
nonsense position; scrubs are now ignored until the duration is known.
Playback experience
- In-player episode picker ("選集" button): a full-screen list of episodes,
focus lands on the currently playing one, DPAD scrolls, OK switches episode. - Playback speed and aspect ratio now persist across episodes (moved into the
ViewModel state — previously local state that reset on every change). - Control bar auto-hide resets on interaction and never hides while the
episode picker is open. - Back button priority: episode picker → control bar → leave the player.
- Full-screen system-bar handling now uses
WindowInsetsControllerCompat
(works on API 25+; removed deprecated flags). - Quality badge is now the real stream quality when available, otherwise a
neutral "高清" — no more fabricated "1080P" in player/home/detail.
Verified
- 32/32 unit tests pass (3 new PlayerViewModel tests: prefs persistence, stale
episodes, episode-list/retry). assembleRelease(R8) BUILD SUCCESSFUL;lintclean.
Install: self-signed (debug key) APK for sideloading; installs over earlier builds.