This commit is contained in:
NBA2K1 2025-07-12 20:10:04 +02:00
parent 47c9b79ce9
commit 7a5c25b94f
13 changed files with 99 additions and 2 deletions

View file

@ -402,10 +402,19 @@ class _AnimeStreamPageState extends riv.ConsumerState<AnimeStreamPage>
_currentPositionSub.cancel();
_currentTotalDurationSub.cancel();
_completed.cancel();
_video.dispose();
_playbackSpeed.dispose();
_isDoubleSpeed.dispose();
_currentTotalDuration.dispose();
_showFitLabel.dispose();
_isCompleted.dispose();
_tempPosition.dispose();
_fit.dispose();
if (!_isDesktop) {
_setLandscapeMode(false);
}
_skipPhase.dispose();
_currentPosition.dispose();
super.dispose();
}
@ -490,7 +499,12 @@ class _AnimeStreamPageState extends riv.ConsumerState<AnimeStreamPage>
selected,
),
onTap: () async {
if (_video.value?.videoTrack?.id == quality.videoTrack?.id) {
Navigator.pop(context);
return;
}
_video.value = quality;
_player.stop();
if (quality.isLocal) {
if (widget.isLocal) {
_player.setVideoTrack(quality.videoTrack!);

View file

@ -52,6 +52,12 @@ class _BrowseScreenState extends ConsumerState<BrowseScreen>
await StorageProvider().requestPermission();
}
@override
void dispose() {
_textEditingController.dispose();
super.dispose();
}
final _textEditingController = TextEditingController();
bool _isSearch = false;
@override

View file

@ -298,6 +298,13 @@ class EditTextDialogWidget extends StatefulWidget {
class _EditTextDialogWidgetState extends State<EditTextDialogWidget> {
late final _controller = TextEditingController(text: widget.text);
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return AlertDialog(

View file

@ -35,7 +35,7 @@ class _GlobalSearchScreenState extends ConsumerState<GlobalSearchScreen> {
String query = "";
final _textEditingController = TextEditingController();
late final List<Source> sourceList =
ref.watch(onlyIncludePinnedSourceStateProvider)
ref.read(onlyIncludePinnedSourceStateProvider)
? isar.sources
.filter()
.isPinnedEqualTo(true)
@ -97,6 +97,12 @@ class _GlobalSearchScreenState extends ConsumerState<GlobalSearchScreen> {
: Container(),
);
}
@override
void dispose() {
_textEditingController.dispose();
super.dispose();
}
}
class SourceSearchScreen extends StatefulWidget {

View file

@ -51,6 +51,12 @@ class _HistoryScreenState extends ConsumerState<HistoryScreen>
_tabBarController.addListener(tabListener);
}
@override
void dispose() {
_textEditingController.dispose();
super.dispose();
}
final _textEditingController = TextEditingController();
bool _isSearch = false;
List<History> entriesData = [];

View file

@ -71,6 +71,13 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
}
}
@override
void dispose() {
_textEditingController.dispose();
tabBarController?.dispose();
super.dispose();
}
Future<void> _updateLibrary(List<Manga> mangaList) async {
bool isDark = ref.read(themeModeStateProvider);
botToast(

View file

@ -61,6 +61,12 @@ class _MigrationScreenScreenState extends ConsumerState<MigrationScreen> {
.and()
.itemTypeEqualTo(widget.manga.itemType)
.findAllSync();
@override
void initState() {
super.initState();
final query = widget.manga.name ?? widget.manga.author ?? "";
_textEditingController.text = query;
}
@override
Widget build(BuildContext context) {
@ -68,7 +74,6 @@ class _MigrationScreenScreenState extends ConsumerState<MigrationScreen> {
final query = _query.isNotEmpty
? _query
: widget.manga.name ?? widget.manga.author ?? "";
_textEditingController.text = query;
return Scaffold(
appBar: AppBar(
@ -126,6 +131,12 @@ class _MigrationScreenScreenState extends ConsumerState<MigrationScreen> {
: Container(),
);
}
@override
void dispose() {
_textEditingController.dispose();
super.dispose();
}
}
class MigrationSourceSearchScreen extends StatefulWidget {

View file

@ -59,6 +59,13 @@ class _TrackerWidgetSearchState extends ConsumerState<TrackerWidgetSearch> {
}
late final _controller = TextEditingController(text: query);
@override
void dispose() {
_controller.dispose();
super.dispose();
}
bool _isLoading = true;
@override
Widget build(BuildContext context) {

View file

@ -114,6 +114,12 @@ class _MangaHomeScreenState extends ConsumerState<MangaHomeScreen> {
return mangaRes;
}
@override
void dispose() {
_textEditingController.dispose();
super.dispose();
}
late final _textEditingController = TextEditingController(text: widget.query);
late String _query = widget.query;
late bool _isSearch = widget.isSearch;

View file

@ -182,6 +182,12 @@ class SeachFormTextFieldWidget extends StatefulWidget {
}
class _SeachFormTextFieldWidgetState extends State<SeachFormTextFieldWidget> {
@override
void dispose() {
_controller.dispose();
super.dispose();
}
late final _controller = TextEditingController(text: widget.text);
@override
Widget build(BuildContext context) {

View file

@ -144,7 +144,15 @@ class _MangaChapterPageGalleryState
_rebuildDetail.close();
_doubleClickAnimationController.dispose();
_scaleAnimationController.dispose();
_failedToLoadImage.dispose();
_autoScroll.value = false;
_autoScroll.dispose();
_autoScrollPage.dispose();
_itemPositionsListener.itemPositions.removeListener(_readProgressListener);
_photoViewController.dispose();
_photoViewScaleStateController.dispose();
_extendedController.dispose();
clearGestureDetailsCache();
if (isDesktop) {
setFullScreen(value: false);

View file

@ -48,6 +48,12 @@ class _TrackerLibraryScreenState extends ConsumerState<TrackerLibraryScreen> {
List<TrackLibrarySection> _sections = [];
List<TrackPreference> _preferences = [];
@override
void dispose() {
_textEditingController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
final l10n = l10nLocalizations(context)!;

View file

@ -112,6 +112,13 @@ class _UpdatesScreenState extends ConsumerState<UpdatesScreen>
});
}
@override
void dispose() {
_textEditingController.dispose();
_tabBarController.dispose();
super.dispose();
}
@override
void initState() {
super.initState();