import 'package:mangayomi/main.dart'; import 'package:mangayomi/models/settings.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'state_provider.g.dart'; @riverpod class SubtitleSettingsState extends _$SubtitleSettingsState { @override PlayerSubtitleSettings build() { final subSets = isar.settings.getSync(227)!.playerSubtitleSettings; if (subSets == null || subSets.backgroundColorA == null) { set(PlayerSubtitleSettings(), true); return PlayerSubtitleSettings(); } return subSets; } void set(PlayerSubtitleSettings value, bool end) { final settings = isar.settings.getSync(227); state = value; if (end) { isar.writeTxnSync( () => isar.settings.putSync( settings! ..playerSubtitleSettings = value ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), ); } } void resetColor() { final settings = isar.settings.getSync(227); state = PlayerSubtitleSettings( fontSize: state.fontSize, useBold: state.useBold, useItalic: state.useItalic, ); isar.writeTxnSync( () => isar.settings.putSync( settings! ..playerSubtitleSettings = PlayerSubtitleSettings( fontSize: state.fontSize, useBold: state.useBold, useItalic: state.useItalic, ) ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), ); } }