diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 38ed6832..824fc2f4 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -468,5 +468,8 @@ "hide_discord_rpc_incognito": "Hide Discord RPC while in Incognito", "rpc_show_reading_watching_progress": "Show current chapter in Discord (requires a restart)", "rpc_show_title": "Show current title in Discord", - "rpc_show_cover_image": "Show current cover image in Discord" + "rpc_show_cover_image": "Show current cover image in Discord", + "sync_enable_histories": "Sync history data", + "sync_enable_updates": "Sync update data", + "sync_enable_settings": "Sync settings" } diff --git a/lib/l10n/generated/app_localizations.dart b/lib/l10n/generated/app_localizations.dart index e56eec94..5f9e105c 100644 --- a/lib/l10n/generated/app_localizations.dart +++ b/lib/l10n/generated/app_localizations.dart @@ -2884,6 +2884,24 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'Show current cover image in Discord'** String get rpc_show_cover_image; + + /// No description provided for @sync_enable_histories. + /// + /// In en, this message translates to: + /// **'Sync history data'** + String get sync_enable_histories; + + /// No description provided for @sync_enable_updates. + /// + /// In en, this message translates to: + /// **'Sync update data'** + String get sync_enable_updates; + + /// No description provided for @sync_enable_settings. + /// + /// In en, this message translates to: + /// **'Sync settings'** + String get sync_enable_settings; } class _AppLocalizationsDelegate diff --git a/lib/l10n/generated/app_localizations_ar.dart b/lib/l10n/generated/app_localizations_ar.dart index 684efe04..2cd15f8d 100644 --- a/lib/l10n/generated/app_localizations_ar.dart +++ b/lib/l10n/generated/app_localizations_ar.dart @@ -1485,4 +1485,13 @@ class AppLocalizationsAr extends AppLocalizations { @override String get rpc_show_cover_image => 'Show current cover image in Discord'; + + @override + String get sync_enable_histories => 'Sync history data'; + + @override + String get sync_enable_updates => 'Sync update data'; + + @override + String get sync_enable_settings => 'Sync settings'; } diff --git a/lib/l10n/generated/app_localizations_de.dart b/lib/l10n/generated/app_localizations_de.dart index 4a2166d5..37a2cbca 100644 --- a/lib/l10n/generated/app_localizations_de.dart +++ b/lib/l10n/generated/app_localizations_de.dart @@ -1498,4 +1498,13 @@ class AppLocalizationsDe extends AppLocalizations { @override String get rpc_show_cover_image => 'Show current cover image in Discord'; + + @override + String get sync_enable_histories => 'Sync history data'; + + @override + String get sync_enable_updates => 'Sync update data'; + + @override + String get sync_enable_settings => 'Sync settings'; } diff --git a/lib/l10n/generated/app_localizations_en.dart b/lib/l10n/generated/app_localizations_en.dart index 05da3e52..b155ade0 100644 --- a/lib/l10n/generated/app_localizations_en.dart +++ b/lib/l10n/generated/app_localizations_en.dart @@ -1486,4 +1486,13 @@ class AppLocalizationsEn extends AppLocalizations { @override String get rpc_show_cover_image => 'Show current cover image in Discord'; + + @override + String get sync_enable_histories => 'Sync history data'; + + @override + String get sync_enable_updates => 'Sync update data'; + + @override + String get sync_enable_settings => 'Sync settings'; } diff --git a/lib/l10n/generated/app_localizations_es.dart b/lib/l10n/generated/app_localizations_es.dart index 86c7bdde..02baacb3 100644 --- a/lib/l10n/generated/app_localizations_es.dart +++ b/lib/l10n/generated/app_localizations_es.dart @@ -1503,6 +1503,15 @@ class AppLocalizationsEs extends AppLocalizations { @override String get rpc_show_cover_image => 'Show current cover image in Discord'; + + @override + String get sync_enable_histories => 'Sync history data'; + + @override + String get sync_enable_updates => 'Sync update data'; + + @override + String get sync_enable_settings => 'Sync settings'; } /// The translations for Spanish Castilian, as used in Latin America and the Caribbean (`es_419`). diff --git a/lib/l10n/generated/app_localizations_fr.dart b/lib/l10n/generated/app_localizations_fr.dart index 82a2ca30..34c81a28 100644 --- a/lib/l10n/generated/app_localizations_fr.dart +++ b/lib/l10n/generated/app_localizations_fr.dart @@ -1504,4 +1504,13 @@ class AppLocalizationsFr extends AppLocalizations { @override String get rpc_show_cover_image => 'Show current cover image in Discord'; + + @override + String get sync_enable_histories => 'Sync history data'; + + @override + String get sync_enable_updates => 'Sync update data'; + + @override + String get sync_enable_settings => 'Sync settings'; } diff --git a/lib/l10n/generated/app_localizations_id.dart b/lib/l10n/generated/app_localizations_id.dart index 43e86f70..71a677f8 100644 --- a/lib/l10n/generated/app_localizations_id.dart +++ b/lib/l10n/generated/app_localizations_id.dart @@ -1492,4 +1492,13 @@ class AppLocalizationsId extends AppLocalizations { @override String get rpc_show_cover_image => 'Show current cover image in Discord'; + + @override + String get sync_enable_histories => 'Sync history data'; + + @override + String get sync_enable_updates => 'Sync update data'; + + @override + String get sync_enable_settings => 'Sync settings'; } diff --git a/lib/l10n/generated/app_localizations_it.dart b/lib/l10n/generated/app_localizations_it.dart index aa4be1b8..f49ea921 100644 --- a/lib/l10n/generated/app_localizations_it.dart +++ b/lib/l10n/generated/app_localizations_it.dart @@ -1501,4 +1501,13 @@ class AppLocalizationsIt extends AppLocalizations { @override String get rpc_show_cover_image => 'Show current cover image in Discord'; + + @override + String get sync_enable_histories => 'Sync history data'; + + @override + String get sync_enable_updates => 'Sync update data'; + + @override + String get sync_enable_settings => 'Sync settings'; } diff --git a/lib/l10n/generated/app_localizations_pt.dart b/lib/l10n/generated/app_localizations_pt.dart index bb883598..f84131f6 100644 --- a/lib/l10n/generated/app_localizations_pt.dart +++ b/lib/l10n/generated/app_localizations_pt.dart @@ -1500,6 +1500,15 @@ class AppLocalizationsPt extends AppLocalizations { @override String get rpc_show_cover_image => 'Show current cover image in Discord'; + + @override + String get sync_enable_histories => 'Sync history data'; + + @override + String get sync_enable_updates => 'Sync update data'; + + @override + String get sync_enable_settings => 'Sync settings'; } /// The translations for Portuguese, as used in Brazil (`pt_BR`). diff --git a/lib/l10n/generated/app_localizations_ru.dart b/lib/l10n/generated/app_localizations_ru.dart index 5c0298de..ea8db99d 100644 --- a/lib/l10n/generated/app_localizations_ru.dart +++ b/lib/l10n/generated/app_localizations_ru.dart @@ -1502,4 +1502,13 @@ class AppLocalizationsRu extends AppLocalizations { @override String get rpc_show_cover_image => 'Show current cover image in Discord'; + + @override + String get sync_enable_histories => 'Sync history data'; + + @override + String get sync_enable_updates => 'Sync update data'; + + @override + String get sync_enable_settings => 'Sync settings'; } diff --git a/lib/l10n/generated/app_localizations_th.dart b/lib/l10n/generated/app_localizations_th.dart index 40a25995..48797005 100644 --- a/lib/l10n/generated/app_localizations_th.dart +++ b/lib/l10n/generated/app_localizations_th.dart @@ -1486,4 +1486,13 @@ class AppLocalizationsTh extends AppLocalizations { @override String get rpc_show_cover_image => 'Show current cover image in Discord'; + + @override + String get sync_enable_histories => 'Sync history data'; + + @override + String get sync_enable_updates => 'Sync update data'; + + @override + String get sync_enable_settings => 'Sync settings'; } diff --git a/lib/l10n/generated/app_localizations_tr.dart b/lib/l10n/generated/app_localizations_tr.dart index f010c51e..ec9837cd 100644 --- a/lib/l10n/generated/app_localizations_tr.dart +++ b/lib/l10n/generated/app_localizations_tr.dart @@ -1492,4 +1492,13 @@ class AppLocalizationsTr extends AppLocalizations { @override String get rpc_show_cover_image => 'Show current cover image in Discord'; + + @override + String get sync_enable_histories => 'Sync history data'; + + @override + String get sync_enable_updates => 'Sync update data'; + + @override + String get sync_enable_settings => 'Sync settings'; } diff --git a/lib/l10n/generated/app_localizations_zh.dart b/lib/l10n/generated/app_localizations_zh.dart index ee59d081..c76e32b9 100644 --- a/lib/l10n/generated/app_localizations_zh.dart +++ b/lib/l10n/generated/app_localizations_zh.dart @@ -1457,4 +1457,13 @@ class AppLocalizationsZh extends AppLocalizations { @override String get rpc_show_cover_image => 'Show current cover image in Discord'; + + @override + String get sync_enable_histories => 'Sync history data'; + + @override + String get sync_enable_updates => 'Sync update data'; + + @override + String get sync_enable_settings => 'Sync settings'; } diff --git a/lib/models/settings.dart b/lib/models/settings.dart index 35efb128..bfd4a2ac 100644 --- a/lib/models/settings.dart +++ b/lib/models/settings.dart @@ -8,6 +8,8 @@ part 'settings.g.dart'; class Settings { Id? id; + int? updatedAt; + @enumerated late DisplayType displayType; @@ -258,6 +260,7 @@ class Settings { Settings({ this.id = 227, + this.updatedAt = 0, this.displayType = DisplayType.compactGrid, this.libraryFilterMangasDownloadType = 0, this.libraryFilterMangasUnreadType = 0, @@ -373,6 +376,7 @@ class Settings { }); Settings.fromJson(Map json) { + updatedAt = json["updatedAt"]; animatePageTransitions = json['animatePageTransitions']; animeDisplayType = DisplayType .values[json['animeDisplayType'] ?? DisplayType.compactGrid.index]; @@ -593,6 +597,7 @@ class Settings { } Map toJson() => { + 'updatedAt': updatedAt, 'animatePageTransitions': animatePageTransitions, 'animeDisplayType': animeDisplayType.index, 'animeLibraryDownloadedChapters': animeLibraryDownloadedChapters, diff --git a/lib/models/settings.g.dart b/lib/models/settings.g.dart index 9ce98abf..28101798 100644 --- a/lib/models/settings.g.dart +++ b/lib/models/settings.g.dart @@ -623,18 +623,23 @@ const SettingsSchema = CollectionSchema( name: r'updateProgressAfterReading', type: IsarType.bool, ), - r'useLibass': PropertySchema( + r'updatedAt': PropertySchema( id: 115, + name: r'updatedAt', + type: IsarType.long, + ), + r'useLibass': PropertySchema( + id: 116, name: r'useLibass', type: IsarType.bool, ), r'usePageTapZones': PropertySchema( - id: 116, + id: 117, name: r'usePageTapZones', type: IsarType.bool, ), r'userAgent': PropertySchema( - id: 117, + id: 118, name: r'userAgent', type: IsarType.string, ) @@ -1238,9 +1243,10 @@ void _settingsSerialize( writer.writeLong(offsets[112], object.startDatebackup); writer.writeBool(offsets[113], object.themeIsDark); writer.writeBool(offsets[114], object.updateProgressAfterReading); - writer.writeBool(offsets[115], object.useLibass); - writer.writeBool(offsets[116], object.usePageTapZones); - writer.writeString(offsets[117], object.userAgent); + writer.writeLong(offsets[115], object.updatedAt); + writer.writeBool(offsets[116], object.useLibass); + writer.writeBool(offsets[117], object.usePageTapZones); + writer.writeString(offsets[118], object.userAgent); } Settings _settingsDeserialize( @@ -1455,9 +1461,10 @@ Settings _settingsDeserialize( startDatebackup: reader.readLongOrNull(offsets[112]), themeIsDark: reader.readBoolOrNull(offsets[113]), updateProgressAfterReading: reader.readBoolOrNull(offsets[114]), - useLibass: reader.readBoolOrNull(offsets[115]), - usePageTapZones: reader.readBoolOrNull(offsets[116]), - userAgent: reader.readStringOrNull(offsets[117]), + updatedAt: reader.readLongOrNull(offsets[115]), + useLibass: reader.readBoolOrNull(offsets[116]), + usePageTapZones: reader.readBoolOrNull(offsets[117]), + userAgent: reader.readStringOrNull(offsets[118]), ); object.chapterFilterBookmarkedList = reader.readObjectList( @@ -1846,10 +1853,12 @@ P _settingsDeserializeProp

( case 114: return (reader.readBoolOrNull(offset)) as P; case 115: - return (reader.readBoolOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 116: return (reader.readBoolOrNull(offset)) as P; case 117: + return (reader.readBoolOrNull(offset)) as P; + case 118: return (reader.readStringOrNull(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); @@ -9504,6 +9513,75 @@ extension SettingsQueryFilter }); } + QueryBuilder updatedAtIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'updatedAt', + )); + }); + } + + QueryBuilder updatedAtIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'updatedAt', + )); + }); + } + + QueryBuilder updatedAtEqualTo( + int? value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'updatedAt', + value: value, + )); + }); + } + + QueryBuilder updatedAtGreaterThan( + int? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'updatedAt', + value: value, + )); + }); + } + + QueryBuilder updatedAtLessThan( + int? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'updatedAt', + value: value, + )); + }); + } + + QueryBuilder updatedAtBetween( + int? lower, + int? upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'updatedAt', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } + QueryBuilder useLibassIsNull() { return QueryBuilder.apply(this, (query) { return query.addFilterCondition(const FilterCondition.isNull( @@ -11113,6 +11191,18 @@ extension SettingsQuerySortBy on QueryBuilder { }); } + QueryBuilder sortByUpdatedAt() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'updatedAt', Sort.asc); + }); + } + + QueryBuilder sortByUpdatedAtDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'updatedAt', Sort.desc); + }); + } + QueryBuilder sortByUseLibass() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'useLibass', Sort.asc); @@ -12358,6 +12448,18 @@ extension SettingsQuerySortThenBy }); } + QueryBuilder thenByUpdatedAt() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'updatedAt', Sort.asc); + }); + } + + QueryBuilder thenByUpdatedAtDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'updatedAt', Sort.desc); + }); + } + QueryBuilder thenByUseLibass() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'useLibass', Sort.asc); @@ -13016,6 +13118,12 @@ extension SettingsQueryWhereDistinct }); } + QueryBuilder distinctByUpdatedAt() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'updatedAt'); + }); + } + QueryBuilder distinctByUseLibass() { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'useLibass'); @@ -13813,6 +13921,12 @@ extension SettingsQueryProperty }); } + QueryBuilder updatedAtProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'updatedAt'); + }); + } + QueryBuilder useLibassProperty() { return QueryBuilder.apply(this, (query) { return query.addPropertyName(r'useLibass'); diff --git a/lib/models/sync_preference.dart b/lib/models/sync_preference.dart index 24712b1b..9c8a7767 100644 --- a/lib/models/sync_preference.dart +++ b/lib/models/sync_preference.dart @@ -22,6 +22,12 @@ class SyncPreference { int autoSyncFrequency = 0; + bool syncHistories = false; + + bool syncUpdates = false; + + bool syncSettings = false; + SyncPreference({ this.syncId, this.email, @@ -43,7 +49,10 @@ class SyncPreference { lastSyncUpdate = json['lastSyncUpdate']; server = json['server']; syncOn = json['syncOn'] ?? false; - syncOn = json['autoSyncFrequency'] ?? 0; + autoSyncFrequency = json['autoSyncFrequency'] ?? 0; + syncHistories = json['syncHistories'] ?? false; + syncUpdates = json['syncUpdates'] ?? false; + syncSettings = json['syncSettings'] ?? false; } Map toJson() => { @@ -55,5 +64,8 @@ class SyncPreference { 'lastSyncUpdate': lastSyncUpdate, 'syncOn': syncOn, 'autoSyncFrequency': autoSyncFrequency, + 'syncHistories': syncHistories, + 'syncUpdates': syncUpdates, + 'syncSettings': syncSettings, }; } diff --git a/lib/models/sync_preference.g.dart b/lib/models/sync_preference.g.dart index c118396d..0efcbc0e 100644 --- a/lib/models/sync_preference.g.dart +++ b/lib/models/sync_preference.g.dart @@ -52,10 +52,25 @@ const SyncPreferenceSchema = CollectionSchema( name: r'server', type: IsarType.string, ), - r'syncOn': PropertySchema( + r'syncHistories': PropertySchema( id: 7, + name: r'syncHistories', + type: IsarType.bool, + ), + r'syncOn': PropertySchema( + id: 8, name: r'syncOn', type: IsarType.bool, + ), + r'syncSettings': PropertySchema( + id: 9, + name: r'syncSettings', + type: IsarType.bool, + ), + r'syncUpdates': PropertySchema( + id: 10, + name: r'syncUpdates', + type: IsarType.bool, ) }, estimateSize: _syncPreferenceEstimateSize, @@ -112,7 +127,10 @@ void _syncPreferenceSerialize( writer.writeLong(offsets[4], object.lastSyncManga); writer.writeLong(offsets[5], object.lastSyncUpdate); writer.writeString(offsets[6], object.server); - writer.writeBool(offsets[7], object.syncOn); + writer.writeBool(offsets[7], object.syncHistories); + writer.writeBool(offsets[8], object.syncOn); + writer.writeBool(offsets[9], object.syncSettings); + writer.writeBool(offsets[10], object.syncUpdates); } SyncPreference _syncPreferenceDeserialize( @@ -130,8 +148,11 @@ SyncPreference _syncPreferenceDeserialize( lastSyncUpdate: reader.readLongOrNull(offsets[5]), server: reader.readStringOrNull(offsets[6]), syncId: id, - syncOn: reader.readBoolOrNull(offsets[7]) ?? false, + syncOn: reader.readBoolOrNull(offsets[8]) ?? false, ); + object.syncHistories = reader.readBool(offsets[7]); + object.syncSettings = reader.readBool(offsets[9]); + object.syncUpdates = reader.readBool(offsets[10]); return object; } @@ -157,7 +178,13 @@ P _syncPreferenceDeserializeProp

( case 6: return (reader.readStringOrNull(offset)) as P; case 7: + return (reader.readBool(offset)) as P; + case 8: return (reader.readBoolOrNull(offset) ?? false) as P; + case 9: + return (reader.readBool(offset)) as P; + case 10: + return (reader.readBool(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); } @@ -997,6 +1024,16 @@ extension SyncPreferenceQueryFilter }); } + QueryBuilder + syncHistoriesEqualTo(bool value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'syncHistories', + value: value, + )); + }); + } + QueryBuilder syncIdIsNull() { return QueryBuilder.apply(this, (query) { @@ -1080,6 +1117,26 @@ extension SyncPreferenceQueryFilter )); }); } + + QueryBuilder + syncSettingsEqualTo(bool value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'syncSettings', + value: value, + )); + }); + } + + QueryBuilder + syncUpdatesEqualTo(bool value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'syncUpdates', + value: value, + )); + }); + } } extension SyncPreferenceQueryObject @@ -1184,6 +1241,20 @@ extension SyncPreferenceQuerySortBy }); } + QueryBuilder + sortBySyncHistories() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'syncHistories', Sort.asc); + }); + } + + QueryBuilder + sortBySyncHistoriesDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'syncHistories', Sort.desc); + }); + } + QueryBuilder sortBySyncOn() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'syncOn', Sort.asc); @@ -1196,6 +1267,34 @@ extension SyncPreferenceQuerySortBy return query.addSortBy(r'syncOn', Sort.desc); }); } + + QueryBuilder + sortBySyncSettings() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'syncSettings', Sort.asc); + }); + } + + QueryBuilder + sortBySyncSettingsDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'syncSettings', Sort.desc); + }); + } + + QueryBuilder + sortBySyncUpdates() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'syncUpdates', Sort.asc); + }); + } + + QueryBuilder + sortBySyncUpdatesDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'syncUpdates', Sort.desc); + }); + } } extension SyncPreferenceQuerySortThenBy @@ -1294,6 +1393,20 @@ extension SyncPreferenceQuerySortThenBy }); } + QueryBuilder + thenBySyncHistories() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'syncHistories', Sort.asc); + }); + } + + QueryBuilder + thenBySyncHistoriesDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'syncHistories', Sort.desc); + }); + } + QueryBuilder thenBySyncId() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'syncId', Sort.asc); @@ -1319,6 +1432,34 @@ extension SyncPreferenceQuerySortThenBy return query.addSortBy(r'syncOn', Sort.desc); }); } + + QueryBuilder + thenBySyncSettings() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'syncSettings', Sort.asc); + }); + } + + QueryBuilder + thenBySyncSettingsDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'syncSettings', Sort.desc); + }); + } + + QueryBuilder + thenBySyncUpdates() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'syncUpdates', Sort.asc); + }); + } + + QueryBuilder + thenBySyncUpdatesDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'syncUpdates', Sort.desc); + }); + } } extension SyncPreferenceQueryWhereDistinct @@ -1372,11 +1513,32 @@ extension SyncPreferenceQueryWhereDistinct }); } + QueryBuilder + distinctBySyncHistories() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'syncHistories'); + }); + } + QueryBuilder distinctBySyncOn() { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'syncOn'); }); } + + QueryBuilder + distinctBySyncSettings() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'syncSettings'); + }); + } + + QueryBuilder + distinctBySyncUpdates() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'syncUpdates'); + }); + } } extension SyncPreferenceQueryProperty @@ -1432,9 +1594,27 @@ extension SyncPreferenceQueryProperty }); } + QueryBuilder syncHistoriesProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'syncHistories'); + }); + } + QueryBuilder syncOnProperty() { return QueryBuilder.apply(this, (query) { return query.addPropertyName(r'syncOn'); }); } + + QueryBuilder syncSettingsProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'syncSettings'); + }); + } + + QueryBuilder syncUpdatesProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'syncUpdates'); + }); + } } diff --git a/lib/modules/anime/providers/state_provider.dart b/lib/modules/anime/providers/state_provider.dart index eddf0d3d..d34af243 100644 --- a/lib/modules/anime/providers/state_provider.dart +++ b/lib/modules/anime/providers/state_provider.dart @@ -20,7 +20,11 @@ class SubtitleSettingsState extends _$SubtitleSettingsState { state = value; if (end) { isar.writeTxnSync( - () => isar.settings.putSync(settings!..playerSubtitleSettings = value), + () => isar.settings.putSync( + settings! + ..playerSubtitleSettings = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -39,7 +43,8 @@ class SubtitleSettingsState extends _$SubtitleSettingsState { fontSize: state.fontSize, useBold: state.useBold, useItalic: state.useItalic, - ), + ) + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), ); } diff --git a/lib/modules/anime/providers/state_provider.g.dart b/lib/modules/anime/providers/state_provider.g.dart index c15e4dea..5f6ac99d 100644 --- a/lib/modules/anime/providers/state_provider.g.dart +++ b/lib/modules/anime/providers/state_provider.g.dart @@ -7,7 +7,7 @@ part of 'state_provider.dart'; // ************************************************************************** String _$subtitleSettingsStateHash() => - r'4b89ea55392e662651d5aeee4dfce2fcd23ac0e7'; + r'410485b55561b7a307c7a55f6798bca225f39830'; /// See also [SubtitleSettingsState]. @ProviderFor(SubtitleSettingsState) diff --git a/lib/modules/library/providers/library_state_provider.dart b/lib/modules/library/providers/library_state_provider.dart index 4f011910..175c737c 100644 --- a/lib/modules/library/providers/library_state_provider.dart +++ b/lib/modules/library/providers/library_state_provider.dart @@ -52,7 +52,9 @@ class LibraryDisplayTypeState extends _$LibraryDisplayTypeState { } isar.writeTxnSync(() { - isar.settings.putSync(appSettings); + isar.settings.putSync( + appSettings..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); } } @@ -92,7 +94,9 @@ class LibraryGridSizeState extends _$LibraryGridSizeState { } isar.writeTxnSync(() { - isar.settings.putSync(appSettings); + isar.settings.putSync( + appSettings..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); } } @@ -134,7 +138,9 @@ class MangaFilterDownloadedState extends _$MangaFilterDownloadedState { appSettings = settings..libraryFilterNovelDownloadType = type; } isar.writeTxnSync(() { - isar.settings.putSync(appSettings); + isar.settings.putSync( + appSettings..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); state = type; } @@ -186,7 +192,9 @@ class MangaFilterUnreadState extends _$MangaFilterUnreadState { appSettings = settings..libraryFilterNovelUnreadType = type; } isar.writeTxnSync(() { - isar.settings.putSync(appSettings); + isar.settings.putSync( + appSettings..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); state = type; } @@ -287,7 +295,9 @@ class MangaFilterStartedState extends _$MangaFilterStartedState { appSettings = settings..libraryFilterNovelStartedType = type; } isar.writeTxnSync(() { - isar.settings.putSync(appSettings); + isar.settings.putSync( + appSettings..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); state = type; } @@ -388,7 +398,9 @@ class MangaFilterBookmarkedState extends _$MangaFilterBookmarkedState { appSettings = settings..libraryFilterNovelBookMarkedType = type; } isar.writeTxnSync(() { - isar.settings.putSync(appSettings); + isar.settings.putSync( + appSettings..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); state = type; } @@ -524,7 +536,9 @@ class LibraryShowCategoryTabsState extends _$LibraryShowCategoryTabsState { } state = value; isar.writeTxnSync(() { - isar.settings.putSync(appSettings); + isar.settings.putSync( + appSettings..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); } } @@ -557,7 +571,9 @@ class LibraryDownloadedChaptersState extends _$LibraryDownloadedChaptersState { } state = value; isar.writeTxnSync(() { - isar.settings.putSync(appSettings); + isar.settings.putSync( + appSettings..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); } } @@ -590,7 +606,9 @@ class LibraryLanguageState extends _$LibraryLanguageState { } state = value; isar.writeTxnSync(() { - isar.settings.putSync(appSettings); + isar.settings.putSync( + appSettings..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); } } @@ -623,7 +641,9 @@ class LibraryLocalSourceState extends _$LibraryLocalSourceState { } state = value; isar.writeTxnSync(() { - isar.settings.putSync(appSettings); + isar.settings.putSync( + appSettings..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); } } @@ -656,7 +676,9 @@ class LibraryShowNumbersOfItemsState extends _$LibraryShowNumbersOfItemsState { } state = value; isar.writeTxnSync(() { - isar.settings.putSync(appSettings); + isar.settings.putSync( + appSettings..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); } } @@ -690,7 +712,9 @@ class LibraryShowContinueReadingButtonState } state = value; isar.writeTxnSync(() { - isar.settings.putSync(appSettings); + isar.settings.putSync( + appSettings..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); } } @@ -729,7 +753,9 @@ class SortLibraryMangaState extends _$SortLibraryMangaState { appSettings = settings..sortLibraryNovel = value; } isar.writeTxnSync(() { - isar.settings.putSync(appSettings); + isar.settings.putSync( + appSettings..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); state = value; } diff --git a/lib/modules/library/providers/library_state_provider.g.dart b/lib/modules/library/providers/library_state_provider.g.dart index d0fc945c..6f33272d 100644 --- a/lib/modules/library/providers/library_state_provider.g.dart +++ b/lib/modules/library/providers/library_state_provider.g.dart @@ -7,7 +7,7 @@ part of 'library_state_provider.dart'; // ************************************************************************** String _$libraryDisplayTypeStateHash() => - r'bcc3757a2aec544a3282776536a14e50cfafd03d'; + r'459a91429b3d1490347cae4bd062745c5e372f05'; /// Copied from Dart SDK class _SystemHash { @@ -199,7 +199,7 @@ class _LibraryDisplayTypeStateProviderElement } String _$libraryGridSizeStateHash() => - r'2b41e0dfd5fbc1b01ffc9ee4b5d3a99bce12df18'; + r'288b58266426aae511454e120d76a7fde7d2899b'; abstract class _$LibraryGridSizeState extends BuildlessAutoDisposeNotifier { @@ -346,7 +346,7 @@ class _LibraryGridSizeStateProviderElement } String _$mangaFilterDownloadedStateHash() => - r'455eb734a87b1d3be3e5684902734a9c8c98a330'; + r'6d84bc7063be1734a0c267906a94e6b70e8b72fe'; abstract class _$MangaFilterDownloadedState extends BuildlessAutoDisposeNotifier { @@ -539,7 +539,7 @@ class _MangaFilterDownloadedStateProviderElement } String _$mangaFilterUnreadStateHash() => - r'd48b9b0a5752befdab56601a1c8e2b36d797aeee'; + r'bd96c9f42a40d0610788feda3bee5fb8662afe50'; abstract class _$MangaFilterUnreadState extends BuildlessAutoDisposeNotifier { @@ -730,7 +730,7 @@ class _MangaFilterUnreadStateProviderElement } String _$mangaFilterStartedStateHash() => - r'fc6c919aa27bf338825cd8c252927ae78b8da36c'; + r'7546110e32fe4eac49006ce3c721d8f72a2b3128'; abstract class _$MangaFilterStartedState extends BuildlessAutoDisposeNotifier { @@ -921,7 +921,7 @@ class _MangaFilterStartedStateProviderElement } String _$mangaFilterBookmarkedStateHash() => - r'b013800ec4e42ede752c7cbcb00575678444e8b5'; + r'77e5317ee6504667e001e43c549f0ee5abd3ed53'; abstract class _$MangaFilterBookmarkedState extends BuildlessAutoDisposeNotifier { @@ -1305,7 +1305,7 @@ class _MangasFilterResultStateProviderElement } String _$libraryShowCategoryTabsStateHash() => - r'f8136c8e7b343e50a4fd4884bc9874d888d08901'; + r'0bdaf08a47247175aea9ca1fe515b6c347c27c61'; abstract class _$LibraryShowCategoryTabsState extends BuildlessAutoDisposeNotifier { @@ -1479,7 +1479,7 @@ class _LibraryShowCategoryTabsStateProviderElement } String _$libraryDownloadedChaptersStateHash() => - r'1c93c624dfaa46ccd56de1841233d04fc63e18af'; + r'ac9868c3cda2c6a9097d9c4c8a6fd0a78edffe26'; abstract class _$LibraryDownloadedChaptersState extends BuildlessAutoDisposeNotifier { @@ -1654,7 +1654,7 @@ class _LibraryDownloadedChaptersStateProviderElement } String _$libraryLanguageStateHash() => - r'83045a8db5fbad972fc1b956bbc8225f97fc03b4'; + r'3673dceb22d4220347f104efa31a2e5ecb0e5fb9'; abstract class _$LibraryLanguageState extends BuildlessAutoDisposeNotifier { @@ -1824,7 +1824,7 @@ class _LibraryLanguageStateProviderElement } String _$libraryLocalSourceStateHash() => - r'f3a442394bd9ecbe9be574f6843b9aca4310bdf3'; + r'4a1beb1f43cd4023f848f9d76731c3095236a148'; abstract class _$LibraryLocalSourceState extends BuildlessAutoDisposeNotifier { @@ -1994,7 +1994,7 @@ class _LibraryLocalSourceStateProviderElement } String _$libraryShowNumbersOfItemsStateHash() => - r'8261b0ee660d36d284c53c45debfca7ceb7cbfd3'; + r'040768e98505577b85e52b5e5f6ae6915de1b222'; abstract class _$LibraryShowNumbersOfItemsState extends BuildlessAutoDisposeNotifier { @@ -2169,7 +2169,7 @@ class _LibraryShowNumbersOfItemsStateProviderElement } String _$libraryShowContinueReadingButtonStateHash() => - r'a346c04b41c448c145107f862bbfa86f119edba1'; + r'e85d6a904a1aed27810aff85f55701da150a8a33'; abstract class _$LibraryShowContinueReadingButtonState extends BuildlessAutoDisposeNotifier { @@ -2347,7 +2347,7 @@ class _LibraryShowContinueReadingButtonStateProviderElement } String _$sortLibraryMangaStateHash() => - r'5454965fd1c6c027e5a2dfc93c2570e800bf18c0'; + r'9cf913f9ad66fa19fad1d8b86afdcf52d990c5ee'; abstract class _$SortLibraryMangaState extends BuildlessAutoDisposeNotifier { diff --git a/lib/modules/manga/detail/providers/state_providers.dart b/lib/modules/manga/detail/providers/state_providers.dart index 62432421..e996e095 100644 --- a/lib/modules/manga/detail/providers/state_providers.dart +++ b/lib/modules/manga/detail/providers/state_providers.dart @@ -103,7 +103,11 @@ class SortChapterState extends _$SortChapterState { } sortChapterList.add(value); isar.writeTxnSync(() { - isar.settings.putSync(settings..sortChapterList = sortChapterList); + isar.settings.putSync( + settings + ..sortChapterList = sortChapterList + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); state = value; @@ -152,7 +156,9 @@ class ChapterFilterDownloadedState extends _$ChapterFilterDownloadedState { chapterFilterDownloadedList.add(value); isar.writeTxnSync(() { isar.settings.putSync( - settings..chapterFilterDownloadedList = chapterFilterDownloadedList, + settings + ..chapterFilterDownloadedList = chapterFilterDownloadedList + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ); }); @@ -203,7 +209,9 @@ class ChapterFilterUnreadState extends _$ChapterFilterUnreadState { chapterFilterUnreadList.add(value); isar.writeTxnSync(() { isar.settings.putSync( - settings..chapterFilterUnreadList = chapterFilterUnreadList, + settings + ..chapterFilterUnreadList = chapterFilterUnreadList + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ); }); state = type; @@ -253,7 +261,9 @@ class ChapterFilterBookmarkedState extends _$ChapterFilterBookmarkedState { chapterFilterBookmarkedList.add(value); isar.writeTxnSync(() { isar.settings.putSync( - settings..chapterFilterBookmarkedList = chapterFilterBookmarkedList, + settings + ..chapterFilterBookmarkedList = chapterFilterBookmarkedList + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ); }); state = type; @@ -405,7 +415,9 @@ class ScanlatorsFilterState extends _$ScanlatorsFilterState { filterScanlatorList.add(value); isar.writeTxnSync(() { isar.settings.putSync( - settings..filterScanlatorList = filterScanlatorList, + settings + ..filterScanlatorList = filterScanlatorList + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ); }); state = (_getScanlators(), _getFilterScanlator()!, filterScanlators); diff --git a/lib/modules/manga/detail/providers/state_providers.g.dart b/lib/modules/manga/detail/providers/state_providers.g.dart index 6e2d3f58..ee0d3d3f 100644 --- a/lib/modules/manga/detail/providers/state_providers.g.dart +++ b/lib/modules/manga/detail/providers/state_providers.g.dart @@ -55,7 +55,7 @@ final isExtendedStateProvider = ); typedef _$IsExtendedState = AutoDisposeNotifier; -String _$sortChapterStateHash() => r'0431856a60ee9dd4ff24b620b7b14d3572da8759'; +String _$sortChapterStateHash() => r'a6e547fd4badfa14ecb9270054c7e166dfc6e238'; /// Copied from Dart SDK class _SystemHash { @@ -223,7 +223,7 @@ class _SortChapterStateProviderElement } String _$chapterFilterDownloadedStateHash() => - r'974229e5af42122fbddb42e19fadb4eda82a7814'; + r'1a4309b9dff1fd9d1dc0c09eab18629ee9fe8d66'; abstract class _$ChapterFilterDownloadedState extends BuildlessAutoDisposeNotifier { @@ -372,7 +372,7 @@ class _ChapterFilterDownloadedStateProviderElement } String _$chapterFilterUnreadStateHash() => - r'7fba451c72c9636354b3fbca36fa33fa45bd943f'; + r'95b34a7b0fd3282f8a2c0626c06ac251585fffec'; abstract class _$ChapterFilterUnreadState extends BuildlessAutoDisposeNotifier { @@ -520,7 +520,7 @@ class _ChapterFilterUnreadStateProviderElement } String _$chapterFilterBookmarkedStateHash() => - r'd60b909cd01aa56a4797e7ab9e3613985edc231e'; + r'639c257c1a77766438abf3b19cb61aa0eb7a8db6'; abstract class _$ChapterFilterBookmarkedState extends BuildlessAutoDisposeNotifier { @@ -1274,7 +1274,7 @@ final chaptersListttStateProvider = typedef _$ChaptersListttState = AutoDisposeNotifier>; String _$scanlatorsFilterStateHash() => - r'32eb4315b75478fabcb8ca9eb3f13d289d806fa2'; + r'8da89864801cd7620029d28cfb3f9bee3c67cba8'; abstract class _$ScanlatorsFilterState extends BuildlessAutoDisposeNotifier< (List, List, List)> { diff --git a/lib/modules/manga/detail/providers/track_state_providers.dart b/lib/modules/manga/detail/providers/track_state_providers.dart index 74ad0e7b..8dce1d4a 100644 --- a/lib/modules/manga/detail/providers/track_state_providers.dart +++ b/lib/modules/manga/detail/providers/track_state_providers.dart @@ -178,7 +178,11 @@ class LastTrackerLibraryLocationState final val = "${value.$1},${value.$2}"; state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..lastTrackerLibraryLocation = val), + () => isar.settings.putSync( + settings! + ..lastTrackerLibraryLocation = val + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/manga/detail/providers/track_state_providers.g.dart b/lib/modules/manga/detail/providers/track_state_providers.g.dart index 9f2b525d..480b14d7 100644 --- a/lib/modules/manga/detail/providers/track_state_providers.g.dart +++ b/lib/modules/manga/detail/providers/track_state_providers.g.dart @@ -195,7 +195,7 @@ class _TrackStateProviderElement } String _$lastTrackerLibraryLocationStateHash() => - r'f1e13ed88277e26123c2384fbfd4992678ad498a'; + r'c09efe7fe4f8dda723c31bc6543dbaa571718342'; /// See also [LastTrackerLibraryLocationState]. @ProviderFor(LastTrackerLibraryLocationState) diff --git a/lib/modules/manga/download/providers/download_provider.dart b/lib/modules/manga/download/providers/download_provider.dart index ddbc5fed..b2b4cef9 100644 --- a/lib/modules/manga/download/providers/download_provider.dart +++ b/lib/modules/manga/download/providers/download_provider.dart @@ -172,7 +172,9 @@ Future downloadChapter( ); isar.writeTxnSync( () => isar.settings.putSync( - settings..chapterPageUrlsList = chapterPageUrls, + settings + ..chapterPageUrlsList = chapterPageUrls + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), ); } diff --git a/lib/modules/manga/download/providers/download_provider.g.dart b/lib/modules/manga/download/providers/download_provider.g.dart index 8366f359..c9b1a55f 100644 --- a/lib/modules/manga/download/providers/download_provider.g.dart +++ b/lib/modules/manga/download/providers/download_provider.g.dart @@ -158,7 +158,7 @@ class _AddDownloadToQueueProviderElement Chapter get chapter => (origin as AddDownloadToQueueProvider).chapter; } -String _$downloadChapterHash() => r'914d4c0fda7d031878ef9c7ac0b3a44241558d5d'; +String _$downloadChapterHash() => r'4d008f26f03bf21010742b73cf83643c61f66c2b'; /// See also [downloadChapter]. @ProviderFor(downloadChapter) diff --git a/lib/modules/manga/home/providers/state_provider.dart b/lib/modules/manga/home/providers/state_provider.dart index 7189baa1..1776e7a5 100644 --- a/lib/modules/manga/home/providers/state_provider.dart +++ b/lib/modules/manga/home/providers/state_provider.dart @@ -17,7 +17,11 @@ class MangaHomeDisplayTypeState extends _$MangaHomeDisplayTypeState { state = displayType; isar.writeTxnSync(() { - isar.settings.putSync(settings..mangaHomeDisplayType = displayType); + isar.settings.putSync( + settings + ..mangaHomeDisplayType = displayType + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); } } diff --git a/lib/modules/manga/home/providers/state_provider.g.dart b/lib/modules/manga/home/providers/state_provider.g.dart index 305798d9..a4e0c874 100644 --- a/lib/modules/manga/home/providers/state_provider.g.dart +++ b/lib/modules/manga/home/providers/state_provider.g.dart @@ -7,7 +7,7 @@ part of 'state_provider.dart'; // ************************************************************************** String _$mangaHomeDisplayTypeStateHash() => - r'48582d80d07c966d5765f20ecc92947e9dd0881c'; + r'6e91cef2e4a9925cab1a7a764ac6a0e741398fb2'; /// See also [MangaHomeDisplayTypeState]. @ProviderFor(MangaHomeDisplayTypeState) diff --git a/lib/modules/manga/reader/providers/color_filter_provider.dart b/lib/modules/manga/reader/providers/color_filter_provider.dart index 862cabef..30160534 100644 --- a/lib/modules/manga/reader/providers/color_filter_provider.dart +++ b/lib/modules/manga/reader/providers/color_filter_provider.dart @@ -20,7 +20,11 @@ class CustomColorFilterState extends _$CustomColorFilterState { ..b = b; if (end) { isar.writeTxnSync( - () => isar.settings.putSync(settings!..customColorFilter = value), + () => isar.settings.putSync( + settings! + ..customColorFilter = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } state = value; @@ -38,7 +42,11 @@ class EnableCustomColorFilterState extends _$EnableCustomColorFilterState { final settings = isar.settings.getSync(227); isar.writeTxnSync( - () => isar.settings.putSync(settings!..enableCustomColorFilter = value), + () => isar.settings.putSync( + settings! + ..enableCustomColorFilter = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); state = value; } @@ -55,7 +63,11 @@ class ColorFilterBlendModeState extends _$ColorFilterBlendModeState { final settings = isar.settings.getSync(227); isar.writeTxnSync( - () => isar.settings.putSync(settings!..colorFilterBlendMode = value), + () => isar.settings.putSync( + settings! + ..colorFilterBlendMode = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); state = value; } diff --git a/lib/modules/manga/reader/providers/color_filter_provider.g.dart b/lib/modules/manga/reader/providers/color_filter_provider.g.dart index d7857df7..c8258663 100644 --- a/lib/modules/manga/reader/providers/color_filter_provider.g.dart +++ b/lib/modules/manga/reader/providers/color_filter_provider.g.dart @@ -7,7 +7,7 @@ part of 'color_filter_provider.dart'; // ************************************************************************** String _$customColorFilterStateHash() => - r'5138b52d1465b1e0109b9757375e8ce4fbeb21d9'; + r'e83ed3712f2f69c6ad15b2b3b10ff17cf8bb2898'; /// See also [CustomColorFilterState]. @ProviderFor(CustomColorFilterState) @@ -24,7 +24,7 @@ final customColorFilterStateProvider = AutoDisposeNotifierProvider< typedef _$CustomColorFilterState = AutoDisposeNotifier; String _$enableCustomColorFilterStateHash() => - r'21d9944242971b5a6d034b61cc413d04b3075730'; + r'20579f0101c7f64051d63ea85813aeb068fdb3c9'; /// See also [EnableCustomColorFilterState]. @ProviderFor(EnableCustomColorFilterState) @@ -41,7 +41,7 @@ final enableCustomColorFilterStateProvider = typedef _$EnableCustomColorFilterState = AutoDisposeNotifier; String _$colorFilterBlendModeStateHash() => - r'dc975e92e7217d4803b73d1850ca5d9d3d4d8575'; + r'92e84b352b519dd32d1c418d7477a10a8921bc19'; /// See also [ColorFilterBlendModeState]. @ProviderFor(ColorFilterBlendModeState) diff --git a/lib/modules/manga/reader/providers/reader_controller_provider.dart b/lib/modules/manga/reader/providers/reader_controller_provider.dart index 16b5ee8f..9ea19b84 100644 --- a/lib/modules/manga/reader/providers/reader_controller_provider.dart +++ b/lib/modules/manga/reader/providers/reader_controller_provider.dart @@ -98,7 +98,9 @@ class ReaderController extends _$ReaderController { ); isar.writeTxnSync( () => isar.settings.putSync( - getIsarSetting()..autoScrollPages = autoScrollPagesList, + getIsarSetting() + ..autoScrollPages = autoScrollPagesList + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), ); } @@ -129,7 +131,9 @@ class ReaderController extends _$ReaderController { ); isar.writeTxnSync( () => isar.settings.putSync( - getIsarSetting()..personalReaderModeList = personalReaderModeLists, + getIsarSetting() + ..personalReaderModeList = personalReaderModeLists + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), ); } @@ -148,7 +152,9 @@ class ReaderController extends _$ReaderController { ); isar.writeTxnSync( () => isar.settings.putSync( - getIsarSetting()..personalPageModeList = personalPageModeLists, + getIsarSetting() + ..personalPageModeList = personalPageModeLists + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), ); } @@ -156,7 +162,11 @@ class ReaderController extends _$ReaderController { void setShowPageNumber(bool value) { if (!incognitoMode) { isar.writeTxnSync( - () => isar.settings.putSync(getIsarSetting()..showPagesNumber = value), + () => isar.settings.putSync( + getIsarSetting() + ..showPagesNumber = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -354,7 +364,9 @@ class ReaderController extends _$ReaderController { final chap = chapter; isar.writeTxnSync(() { isar.settings.putSync( - getIsarSetting()..chapterPageIndexList = chapterPageIndexs, + getIsarSetting() + ..chapterPageIndexList = chapterPageIndexs + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ); chap.isRead = isRead; chap.lastPageRead = isRead ? '1' : (newIndex + 1).toString(); diff --git a/lib/modules/manga/reader/providers/reader_controller_provider.g.dart b/lib/modules/manga/reader/providers/reader_controller_provider.g.dart index 00ad0950..753d9d00 100644 --- a/lib/modules/manga/reader/providers/reader_controller_provider.g.dart +++ b/lib/modules/manga/reader/providers/reader_controller_provider.g.dart @@ -171,7 +171,7 @@ class _CurrentIndexProviderElement Chapter get chapter => (origin as CurrentIndexProvider).chapter; } -String _$readerControllerHash() => r'ef8ec616a2ddbd9f7fb1db21017c5b253389d4fa'; +String _$readerControllerHash() => r'8b2995dcf849eddff308a105a2e06c9534096fac'; abstract class _$ReaderController extends BuildlessAutoDisposeNotifier { late final Chapter chapter; diff --git a/lib/modules/more/about/about_screen.dart b/lib/modules/more/about/about_screen.dart index 82a47f95..c401dfd1 100644 --- a/lib/modules/more/about/about_screen.dart +++ b/lib/modules/more/about/about_screen.dart @@ -53,7 +53,10 @@ class AboutScreen extends ConsumerWidget { isar.writeTxnSync(() { final settings = isar.settings.getSync(227); isar.settings.putSync( - settings!..checkForAppUpdates = value, + settings! + ..checkForAppUpdates = value + ..updatedAt = + DateTime.now().millisecondsSinceEpoch, ); }); ref.invalidate(checkForAppUpdatesProvider); diff --git a/lib/modules/more/data_and_storage/providers/auto_backup.dart b/lib/modules/more/data_and_storage/providers/auto_backup.dart index 2370e8de..5bd93ea3 100644 --- a/lib/modules/more/data_and_storage/providers/auto_backup.dart +++ b/lib/modules/more/data_and_storage/providers/auto_backup.dart @@ -33,7 +33,11 @@ class BackupFrequencyOptionsState extends _$BackupFrequencyOptionsState { final settings = isar.settings.getSync(227); state = values; isar.writeTxnSync( - () => isar.settings.putSync(settings!..backupListOptions = values), + () => isar.settings.putSync( + settings! + ..backupListOptions = values + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -50,7 +54,11 @@ class AutoBackupLocationState extends _$AutoBackupLocationState { final settings = isar.settings.getSync(227); state = (p.join(_storageProvider!.path, "backup"), location); isar.writeTxnSync( - () => isar.settings.putSync(settings!..autoBackupLocation = location), + () => isar.settings.putSync( + settings! + ..autoBackupLocation = location + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } @@ -131,7 +139,8 @@ void _setBackupFrequency(int value) { () => isar.settings.putSync( settings! ..backupFrequency = value - ..startDatebackup = startDate?.millisecondsSinceEpoch, + ..startDatebackup = startDate?.millisecondsSinceEpoch + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), ); } diff --git a/lib/modules/more/data_and_storage/providers/auto_backup.g.dart b/lib/modules/more/data_and_storage/providers/auto_backup.g.dart index 02405fad..2e4fe90a 100644 --- a/lib/modules/more/data_and_storage/providers/auto_backup.g.dart +++ b/lib/modules/more/data_and_storage/providers/auto_backup.g.dart @@ -41,7 +41,7 @@ final backupFrequencyStateProvider = typedef _$BackupFrequencyState = AutoDisposeNotifier; String _$backupFrequencyOptionsStateHash() => - r'dd5aa850bc250e584973496fee05214b22eed9b1'; + r'477541f3b59fe662ea3471400ff62066ea7e2196'; /// See also [BackupFrequencyOptionsState]. @ProviderFor(BackupFrequencyOptionsState) @@ -58,7 +58,7 @@ final backupFrequencyOptionsStateProvider = AutoDisposeNotifierProvider< typedef _$BackupFrequencyOptionsState = AutoDisposeNotifier>; String _$autoBackupLocationStateHash() => - r'be78346bb300287ae9b8581e27ee6814483400a7'; + r'45e1942f6f88ccb92f3f96ddfb5c74df477b61ba'; /// See also [AutoBackupLocationState]. @ProviderFor(AutoBackupLocationState) diff --git a/lib/modules/more/data_and_storage/providers/storage_usage.dart b/lib/modules/more/data_and_storage/providers/storage_usage.dart index e02e3e65..663d5b65 100644 --- a/lib/modules/more/data_and_storage/providers/storage_usage.dart +++ b/lib/modules/more/data_and_storage/providers/storage_usage.dart @@ -104,7 +104,9 @@ class ClearChapterCacheOnAppLaunchState state = value; isar.writeTxnSync( () => isar.settings.putSync( - settings!..clearChapterCacheOnAppLaunch = value, + settings! + ..clearChapterCacheOnAppLaunch = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), ); } diff --git a/lib/modules/more/data_and_storage/providers/storage_usage.g.dart b/lib/modules/more/data_and_storage/providers/storage_usage.g.dart index 691eeced..d8aecde6 100644 --- a/lib/modules/more/data_and_storage/providers/storage_usage.g.dart +++ b/lib/modules/more/data_and_storage/providers/storage_usage.g.dart @@ -24,7 +24,7 @@ final totalChapterCacheSizeStateProvider = typedef _$TotalChapterCacheSizeState = AutoDisposeNotifier; String _$clearChapterCacheOnAppLaunchStateHash() => - r'6fdefd7a3bdc4309dd596dad43891c654ec2ba70'; + r'1decadd07db6946a1daaa4ae90e0f082555fab78'; /// See also [ClearChapterCacheOnAppLaunchState]. @ProviderFor(ClearChapterCacheOnAppLaunchState) diff --git a/lib/modules/more/providers/incognito_mode_state_provider.dart b/lib/modules/more/providers/incognito_mode_state_provider.dart index 02b69f16..87cbdd80 100644 --- a/lib/modules/more/providers/incognito_mode_state_provider.dart +++ b/lib/modules/more/providers/incognito_mode_state_provider.dart @@ -14,7 +14,11 @@ class IncognitoModeState extends _$IncognitoModeState { final settings = isar.settings.getSync(227)!; state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings..incognitoMode = state), + () => isar.settings.putSync( + settings + ..incognitoMode = state + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/more/providers/incognito_mode_state_provider.g.dart b/lib/modules/more/providers/incognito_mode_state_provider.g.dart index d5718b99..c5e77e99 100644 --- a/lib/modules/more/providers/incognito_mode_state_provider.g.dart +++ b/lib/modules/more/providers/incognito_mode_state_provider.g.dart @@ -7,7 +7,7 @@ part of 'incognito_mode_state_provider.dart'; // ************************************************************************** String _$incognitoModeStateHash() => - r'54fc89df3bffd0b9665f04d9c9c2f75532925804'; + r'149c4dcbc434fb6efc883e196392320bdc7c0821'; /// See also [IncognitoModeState]. @ProviderFor(IncognitoModeState) diff --git a/lib/modules/more/settings/appearance/providers/app_font_family.dart b/lib/modules/more/settings/appearance/providers/app_font_family.dart index 662dd876..27fd495c 100644 --- a/lib/modules/more/settings/appearance/providers/app_font_family.dart +++ b/lib/modules/more/settings/appearance/providers/app_font_family.dart @@ -22,7 +22,11 @@ class AppFontFamily extends _$AppFontFamily { final settings = isar.settings.getSync(227); state = fontFamily; isar.writeTxnSync( - () => isar.settings.putSync(settings!..appFontFamily = fontFamily), + () => isar.settings.putSync( + settings! + ..appFontFamily = fontFamily + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/more/settings/appearance/providers/app_font_family.g.dart b/lib/modules/more/settings/appearance/providers/app_font_family.g.dart index 994f4fc6..ae4f26da 100644 --- a/lib/modules/more/settings/appearance/providers/app_font_family.g.dart +++ b/lib/modules/more/settings/appearance/providers/app_font_family.g.dart @@ -6,7 +6,7 @@ part of 'app_font_family.dart'; // RiverpodGenerator // ************************************************************************** -String _$appFontFamilyHash() => r'7f115012111256848d806e47382db1f8abcff5ec'; +String _$appFontFamilyHash() => r'edc7d34d3b1aa149fdbd95fa0b07d9746b7279b1'; /// See also [AppFontFamily]. @ProviderFor(AppFontFamily) diff --git a/lib/modules/more/settings/appearance/providers/blend_level_state_provider.dart b/lib/modules/more/settings/appearance/providers/blend_level_state_provider.dart index faf7297e..a0e2f4e0 100644 --- a/lib/modules/more/settings/appearance/providers/blend_level_state_provider.dart +++ b/lib/modules/more/settings/appearance/providers/blend_level_state_provider.dart @@ -15,8 +15,11 @@ class BlendLevelState extends _$BlendLevelState { state = blendLevelValue; if (end) { isar.writeTxnSync( - () => - isar.settings.putSync(settings!..flexColorSchemeBlendLevel = state), + () => isar.settings.putSync( + settings! + ..flexColorSchemeBlendLevel = state + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/more/settings/appearance/providers/blend_level_state_provider.g.dart b/lib/modules/more/settings/appearance/providers/blend_level_state_provider.g.dart index 5ac037e0..e81f2f27 100644 --- a/lib/modules/more/settings/appearance/providers/blend_level_state_provider.g.dart +++ b/lib/modules/more/settings/appearance/providers/blend_level_state_provider.g.dart @@ -6,7 +6,7 @@ part of 'blend_level_state_provider.dart'; // RiverpodGenerator // ************************************************************************** -String _$blendLevelStateHash() => r'ceb7965073b2d6676a91acbe662bfa881f2f5e30'; +String _$blendLevelStateHash() => r'78024b3432868c3b901419bbd919c3f84a4cf713'; /// See also [BlendLevelState]. @ProviderFor(BlendLevelState) diff --git a/lib/modules/more/settings/appearance/providers/date_format_state_provider.dart b/lib/modules/more/settings/appearance/providers/date_format_state_provider.dart index 26962dbc..95bf9064 100644 --- a/lib/modules/more/settings/appearance/providers/date_format_state_provider.dart +++ b/lib/modules/more/settings/appearance/providers/date_format_state_provider.dart @@ -14,7 +14,11 @@ class DateFormatState extends _$DateFormatState { final settings = isar.settings.getSync(227); state = dateFormat; isar.writeTxnSync( - () => isar.settings.putSync(settings!..dateFormat = state), + () => isar.settings.putSync( + settings! + ..dateFormat = state + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -30,7 +34,11 @@ class RelativeTimesTampsState extends _$RelativeTimesTampsState { final settings = isar.settings.getSync(227); state = type; isar.writeTxnSync( - () => isar.settings.putSync(settings!..relativeTimesTamps = state), + () => isar.settings.putSync( + settings! + ..relativeTimesTamps = state + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/more/settings/appearance/providers/date_format_state_provider.g.dart b/lib/modules/more/settings/appearance/providers/date_format_state_provider.g.dart index 1454f009..10bcc13e 100644 --- a/lib/modules/more/settings/appearance/providers/date_format_state_provider.g.dart +++ b/lib/modules/more/settings/appearance/providers/date_format_state_provider.g.dart @@ -6,7 +6,7 @@ part of 'date_format_state_provider.dart'; // RiverpodGenerator // ************************************************************************** -String _$dateFormatStateHash() => r'094aa68b09b654de97be6a59c6d593f30e3bdf79'; +String _$dateFormatStateHash() => r'9b11f72b8fa535b74873365618089dfca957e445'; /// See also [DateFormatState]. @ProviderFor(DateFormatState) @@ -23,7 +23,7 @@ final dateFormatStateProvider = typedef _$DateFormatState = AutoDisposeNotifier; String _$relativeTimesTampsStateHash() => - r'e515ea30e71143ee60f86a02320e8b1f50b5a955'; + r'fc39b88871e857dcd363c01df59de9ca174cb1d6'; /// See also [RelativeTimesTampsState]. @ProviderFor(RelativeTimesTampsState) diff --git a/lib/modules/more/settings/appearance/providers/flex_scheme_color_state_provider.dart b/lib/modules/more/settings/appearance/providers/flex_scheme_color_state_provider.dart index f06b9b3e..96ac01e0 100644 --- a/lib/modules/more/settings/appearance/providers/flex_scheme_color_state_provider.dart +++ b/lib/modules/more/settings/appearance/providers/flex_scheme_color_state_provider.dart @@ -21,7 +21,11 @@ class FlexSchemeColorState extends _$FlexSchemeColorState { final settings = isar.settings.getSync(227); state = color; isar.writeTxnSync( - () => isar.settings.putSync(settings!..flexSchemeColorIndex = index), + () => isar.settings.putSync( + settings! + ..flexSchemeColorIndex = index + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/more/settings/appearance/providers/flex_scheme_color_state_provider.g.dart b/lib/modules/more/settings/appearance/providers/flex_scheme_color_state_provider.g.dart index c0ed9aa8..997d1b1b 100644 --- a/lib/modules/more/settings/appearance/providers/flex_scheme_color_state_provider.g.dart +++ b/lib/modules/more/settings/appearance/providers/flex_scheme_color_state_provider.g.dart @@ -7,7 +7,7 @@ part of 'flex_scheme_color_state_provider.dart'; // ************************************************************************** String _$flexSchemeColorStateHash() => - r'5c535382cc52e144426fa36dc20ea614d6288f53'; + r'0b484f5c16d099fd94e2150bf4a32d9e8338feb3'; /// See also [FlexSchemeColorState]. @ProviderFor(FlexSchemeColorState) diff --git a/lib/modules/more/settings/appearance/providers/pure_black_dark_mode_state_provider.dart b/lib/modules/more/settings/appearance/providers/pure_black_dark_mode_state_provider.dart index b41726dc..9780dede 100644 --- a/lib/modules/more/settings/appearance/providers/pure_black_dark_mode_state_provider.dart +++ b/lib/modules/more/settings/appearance/providers/pure_black_dark_mode_state_provider.dart @@ -14,7 +14,11 @@ class PureBlackDarkModeState extends _$PureBlackDarkModeState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..pureBlackDarkMode = value), + () => isar.settings.putSync( + settings! + ..pureBlackDarkMode = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/more/settings/appearance/providers/pure_black_dark_mode_state_provider.g.dart b/lib/modules/more/settings/appearance/providers/pure_black_dark_mode_state_provider.g.dart index ad1ade4f..0ff37ab7 100644 --- a/lib/modules/more/settings/appearance/providers/pure_black_dark_mode_state_provider.g.dart +++ b/lib/modules/more/settings/appearance/providers/pure_black_dark_mode_state_provider.g.dart @@ -7,7 +7,7 @@ part of 'pure_black_dark_mode_state_provider.dart'; // ************************************************************************** String _$pureBlackDarkModeStateHash() => - r'2dd98617810c8677341dc5cc485d226e6d610cf5'; + r'a597f2ae7d7374fa57fb6c26aed274774d788509'; /// See also [PureBlackDarkModeState]. @ProviderFor(PureBlackDarkModeState) diff --git a/lib/modules/more/settings/appearance/providers/theme_mode_state_provider.dart b/lib/modules/more/settings/appearance/providers/theme_mode_state_provider.dart index 850be721..6b661af3 100644 --- a/lib/modules/more/settings/appearance/providers/theme_mode_state_provider.dart +++ b/lib/modules/more/settings/appearance/providers/theme_mode_state_provider.dart @@ -32,7 +32,11 @@ class ThemeModeState extends _$ThemeModeState { settings.flexSchemeColorIndex!, ); isar.writeTxnSync( - () => isar.settings.putSync(settings..themeIsDark = state), + () => isar.settings.putSync( + settings + ..themeIsDark = state + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } @@ -46,7 +50,11 @@ class ThemeModeState extends _$ThemeModeState { settings.flexSchemeColorIndex!, ); isar.writeTxnSync( - () => isar.settings.putSync(settings..themeIsDark = state), + () => isar.settings.putSync( + settings + ..themeIsDark = state + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -70,7 +78,11 @@ class FollowSystemThemeState extends _$FollowSystemThemeState { } } isar.writeTxnSync( - () => isar.settings.putSync(settings!..followSystemTheme = value), + () => isar.settings.putSync( + settings! + ..followSystemTheme = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/more/settings/appearance/providers/theme_mode_state_provider.g.dart b/lib/modules/more/settings/appearance/providers/theme_mode_state_provider.g.dart index e577d76d..8241fae7 100644 --- a/lib/modules/more/settings/appearance/providers/theme_mode_state_provider.g.dart +++ b/lib/modules/more/settings/appearance/providers/theme_mode_state_provider.g.dart @@ -6,7 +6,7 @@ part of 'theme_mode_state_provider.dart'; // RiverpodGenerator // ************************************************************************** -String _$themeModeStateHash() => r'264bf4a814cec831e34d916f273b4db6513e583c'; +String _$themeModeStateHash() => r'f1a29fab544a04b3f1d9c269e08f5b83ec51e0c3'; /// See also [ThemeModeState]. @ProviderFor(ThemeModeState) @@ -23,7 +23,7 @@ final themeModeStateProvider = typedef _$ThemeModeState = AutoDisposeNotifier; String _$followSystemThemeStateHash() => - r'a2d5e573e05364c3c89abe81f25c7f39b0ae91e2'; + r'07837fff5d56fb0b15b555d203af2bbe94e138f8'; /// See also [FollowSystemThemeState]. @ProviderFor(FollowSystemThemeState) diff --git a/lib/modules/more/settings/browse/providers/browse_state_provider.dart b/lib/modules/more/settings/browse/providers/browse_state_provider.dart index a8791fda..f8619043 100644 --- a/lib/modules/more/settings/browse/providers/browse_state_provider.dart +++ b/lib/modules/more/settings/browse/providers/browse_state_provider.dart @@ -21,7 +21,11 @@ class OnlyIncludePinnedSourceState extends _$OnlyIncludePinnedSourceState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..onlyIncludePinnedSources = value), + () => isar.settings.putSync( + settings! + ..onlyIncludePinnedSources = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -45,12 +49,20 @@ class ExtensionsRepoState extends _$ExtensionsRepoState { isar.writeTxnSync(() { final a = switch (itemType) { ItemType.manga => isar.settings.putSync( - settings..mangaExtensionsRepo = value, + settings + ..mangaExtensionsRepo = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), ItemType.anime => isar.settings.putSync( - settings..animeExtensionsRepo = value, + settings + ..animeExtensionsRepo = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), + _ => isar.settings.putSync( + settings + ..novelExtensionsRepo = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), - _ => isar.settings.putSync(settings..novelExtensionsRepo = value), }; a; }); @@ -78,7 +90,11 @@ class AutoUpdateExtensionsState extends _$AutoUpdateExtensionsState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..autoExtensionsUpdates = value), + () => isar.settings.putSync( + settings! + ..autoExtensionsUpdates = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -94,7 +110,11 @@ class CheckForExtensionsUpdateState extends _$CheckForExtensionsUpdateState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..checkForExtensionUpdates = value), + () => isar.settings.putSync( + settings! + ..checkForExtensionUpdates = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/more/settings/browse/providers/browse_state_provider.g.dart b/lib/modules/more/settings/browse/providers/browse_state_provider.g.dart index 2a58eb3d..b892df7a 100644 --- a/lib/modules/more/settings/browse/providers/browse_state_provider.g.dart +++ b/lib/modules/more/settings/browse/providers/browse_state_provider.g.dart @@ -158,7 +158,7 @@ class _GetRepoInfosProviderElement } String _$onlyIncludePinnedSourceStateHash() => - r'77c4bff96e186c4bce0a5c312871ceec88a269d0'; + r'b9f707348d5d0f7abfa8e615c1d2b35c6dbd57f3'; /// See also [OnlyIncludePinnedSourceState]. @ProviderFor(OnlyIncludePinnedSourceState) @@ -175,7 +175,7 @@ final onlyIncludePinnedSourceStateProvider = typedef _$OnlyIncludePinnedSourceState = AutoDisposeNotifier; String _$extensionsRepoStateHash() => - r'3ea91c79a9bc24f086fce49de2c61a1e06bad1fe'; + r'5c23b8b7ecf83b253b76a2663a71c0c752e53a40'; abstract class _$ExtensionsRepoState extends BuildlessAutoDisposeNotifier> { @@ -322,7 +322,7 @@ class _ExtensionsRepoStateProviderElement } String _$autoUpdateExtensionsStateHash() => - r'30ce3c558504e005f9c85e2fc969ab7a581510cd'; + r'0aa0006368f418e62a8dc9b5a427698f082f29a6'; /// See also [AutoUpdateExtensionsState]. @ProviderFor(AutoUpdateExtensionsState) @@ -339,7 +339,7 @@ final autoUpdateExtensionsStateProvider = typedef _$AutoUpdateExtensionsState = AutoDisposeNotifier; String _$checkForExtensionsUpdateStateHash() => - r'1b1f22a50e0862a7d643fbe0fcb5d563bd0169c2'; + r'c700ecd686cce971b70b74b6086d4950157a3f13'; /// See also [CheckForExtensionsUpdateState]. @ProviderFor(CheckForExtensionsUpdateState) diff --git a/lib/modules/more/settings/downloads/providers/downloads_state_provider.dart b/lib/modules/more/settings/downloads/providers/downloads_state_provider.dart index f0c82a86..41634b22 100644 --- a/lib/modules/more/settings/downloads/providers/downloads_state_provider.dart +++ b/lib/modules/more/settings/downloads/providers/downloads_state_provider.dart @@ -17,7 +17,11 @@ class OnlyOnWifiState extends _$OnlyOnWifiState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..downloadOnlyOnWifi = value), + () => isar.settings.putSync( + settings! + ..downloadOnlyOnWifi = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -33,7 +37,11 @@ class SaveAsCBZArchiveState extends _$SaveAsCBZArchiveState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..saveAsCBZArchive = value), + () => isar.settings.putSync( + settings! + ..saveAsCBZArchive = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -50,7 +58,11 @@ class DownloadLocationState extends _$DownloadLocationState { final settings = isar.settings.getSync(227); state = (path.join(_storageProvider!.path, 'downloads'), location); isar.writeTxnSync( - () => isar.settings.putSync(settings!..downloadLocation = location), + () => isar.settings.putSync( + settings! + ..downloadLocation = location + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } @@ -77,7 +89,11 @@ class ConcurrentDownloadsState extends _$ConcurrentDownloadsState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..concurrentDownloads = value), + () => isar.settings.putSync( + settings! + ..concurrentDownloads = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/more/settings/downloads/providers/downloads_state_provider.g.dart b/lib/modules/more/settings/downloads/providers/downloads_state_provider.g.dart index b4df323a..c3da7aa6 100644 --- a/lib/modules/more/settings/downloads/providers/downloads_state_provider.g.dart +++ b/lib/modules/more/settings/downloads/providers/downloads_state_provider.g.dart @@ -6,7 +6,7 @@ part of 'downloads_state_provider.dart'; // RiverpodGenerator // ************************************************************************** -String _$onlyOnWifiStateHash() => r'613d0fd2a72fdfeb0c8da05dc8ed4144cc8df6f5'; +String _$onlyOnWifiStateHash() => r'ea6df18bb5dc5019a00fca258d45cb0dfee0dffe'; /// See also [OnlyOnWifiState]. @ProviderFor(OnlyOnWifiState) @@ -23,7 +23,7 @@ final onlyOnWifiStateProvider = typedef _$OnlyOnWifiState = AutoDisposeNotifier; String _$saveAsCBZArchiveStateHash() => - r'81c4d07dc96f0fae33274f2067911e5b94ac6161'; + r'836e8cce08b3d307c58d2a850a7dcb3c9d739fc1'; /// See also [SaveAsCBZArchiveState]. @ProviderFor(SaveAsCBZArchiveState) @@ -40,7 +40,7 @@ final saveAsCBZArchiveStateProvider = typedef _$SaveAsCBZArchiveState = AutoDisposeNotifier; String _$downloadLocationStateHash() => - r'dba216dd8de1206c1c272d0f76684e016e10417f'; + r'75e2679930508fdd5e1b59baca632e03aace598e'; /// See also [DownloadLocationState]. @ProviderFor(DownloadLocationState) @@ -57,7 +57,7 @@ final downloadLocationStateProvider = AutoDisposeNotifierProvider< typedef _$DownloadLocationState = AutoDisposeNotifier<(String, String)>; String _$concurrentDownloadsStateHash() => - r'665ec25af7d72e3345ce1ca96319419f11f121e6'; + r'295fe3f49224fd645b01f1aa89ba79dd330fffed'; /// See also [ConcurrentDownloadsState]. @ProviderFor(ConcurrentDownloadsState) diff --git a/lib/modules/more/settings/general/providers/general_state_provider.dart b/lib/modules/more/settings/general/providers/general_state_provider.dart index 7faba34e..ee934757 100644 --- a/lib/modules/more/settings/general/providers/general_state_provider.dart +++ b/lib/modules/more/settings/general/providers/general_state_provider.dart @@ -14,7 +14,11 @@ class EnableDiscordRpcState extends _$EnableDiscordRpcState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..enableDiscordRpc = value), + () => isar.settings.putSync( + settings! + ..enableDiscordRpc = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -30,7 +34,11 @@ class HideDiscordRpcInIncognitoState extends _$HideDiscordRpcInIncognitoState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..hideDiscordRpcInIncognito = value), + () => isar.settings.putSync( + settings! + ..hideDiscordRpcInIncognito = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -48,7 +56,9 @@ class RpcShowReadingWatchingProgressState state = value; isar.writeTxnSync( () => isar.settings.putSync( - settings!..rpcShowReadingWatchingProgress = value, + settings! + ..rpcShowReadingWatchingProgress = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), ); } @@ -65,7 +75,11 @@ class RpcShowTitleState extends _$RpcShowTitleState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..rpcShowTitle = value), + () => isar.settings.putSync( + settings! + ..rpcShowTitle = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -81,7 +95,11 @@ class RpcShowCoverImageState extends _$RpcShowCoverImageState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..rpcShowCoverImage = value), + () => isar.settings.putSync( + settings! + ..rpcShowCoverImage = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/more/settings/general/providers/general_state_provider.g.dart b/lib/modules/more/settings/general/providers/general_state_provider.g.dart index 8e33c23f..7f659f36 100644 --- a/lib/modules/more/settings/general/providers/general_state_provider.g.dart +++ b/lib/modules/more/settings/general/providers/general_state_provider.g.dart @@ -7,7 +7,7 @@ part of 'general_state_provider.dart'; // ************************************************************************** String _$enableDiscordRpcStateHash() => - r'bc134787a33f362087befd5de85692812659faa0'; + r'ab8ce3b29f5d94aedbc88dcb87c7c834648270f5'; /// See also [EnableDiscordRpcState]. @ProviderFor(EnableDiscordRpcState) @@ -24,7 +24,7 @@ final enableDiscordRpcStateProvider = typedef _$EnableDiscordRpcState = AutoDisposeNotifier; String _$hideDiscordRpcInIncognitoStateHash() => - r'8e45104c34b1255b7a3d4a6f182bf43be9e2b93d'; + r'7404a6ef4ae0d831b755c455c51eb3cb7f18f64f'; /// See also [HideDiscordRpcInIncognitoState]. @ProviderFor(HideDiscordRpcInIncognitoState) @@ -41,7 +41,7 @@ final hideDiscordRpcInIncognitoStateProvider = typedef _$HideDiscordRpcInIncognitoState = AutoDisposeNotifier; String _$rpcShowReadingWatchingProgressStateHash() => - r'b4000c10234ce9070b44b535e9d10d16e6b7c0ec'; + r'ce0582267191d4348cfe15f030d60e52c070163e'; /// See also [RpcShowReadingWatchingProgressState]. @ProviderFor(RpcShowReadingWatchingProgressState) @@ -57,7 +57,7 @@ final rpcShowReadingWatchingProgressStateProvider = AutoDisposeNotifierProvider< ); typedef _$RpcShowReadingWatchingProgressState = AutoDisposeNotifier; -String _$rpcShowTitleStateHash() => r'9d7005af8968f61872fcc37979f5c54b745ffe65'; +String _$rpcShowTitleStateHash() => r'b784b58365a72b54cbe46b1582c97c2f9b8057a2'; /// See also [RpcShowTitleState]. @ProviderFor(RpcShowTitleState) @@ -74,7 +74,7 @@ final rpcShowTitleStateProvider = typedef _$RpcShowTitleState = AutoDisposeNotifier; String _$rpcShowCoverImageStateHash() => - r'6ce1c61be44c0a6315fbb51a45ac6e47c3e49b33'; + r'85a460d188319f5410ed0d5b0cb201b03c9759e7'; /// See also [RpcShowCoverImageState]. @ProviderFor(RpcShowCoverImageState) diff --git a/lib/modules/more/settings/player/providers/player_state_provider.dart b/lib/modules/more/settings/player/providers/player_state_provider.dart index 0ba8e9a6..55f1ca48 100644 --- a/lib/modules/more/settings/player/providers/player_state_provider.dart +++ b/lib/modules/more/settings/player/providers/player_state_provider.dart @@ -29,7 +29,8 @@ class DefaultSubtitleLangState extends _$DefaultSubtitleLangState { ..defaultSubtitleLang = L10nLocale( languageCode: locale.languageCode, countryCode: locale.countryCode, - ), + ) + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ); }); state = locale; @@ -47,7 +48,11 @@ class MarkEpisodeAsSeenTypeState extends _$MarkEpisodeAsSeenTypeState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..markEpisodeAsSeenType = value), + () => isar.settings.putSync( + settings! + ..markEpisodeAsSeenType = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -63,7 +68,11 @@ class DefaultSkipIntroLengthState extends _$DefaultSkipIntroLengthState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..defaultSkipIntroLength = value), + () => isar.settings.putSync( + settings! + ..defaultSkipIntroLength = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -81,7 +90,9 @@ class DefaultDoubleTapToSkipLengthState state = value; isar.writeTxnSync( () => isar.settings.putSync( - settings!..defaultDoubleTapToSkipLength = value, + settings! + ..defaultDoubleTapToSkipLength = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), ); } @@ -98,7 +109,11 @@ class DefaultPlayBackSpeedState extends _$DefaultPlayBackSpeedState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..defaultPlayBackSpeed = value), + () => isar.settings.putSync( + settings! + ..defaultPlayBackSpeed = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -114,7 +129,11 @@ class FullScreenPlayerState extends _$FullScreenPlayerState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..fullScreenPlayer = value), + () => isar.settings.putSync( + settings! + ..fullScreenPlayer = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -130,7 +149,11 @@ class EnableAniSkipState extends _$EnableAniSkipState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..enableAniSkip = value), + () => isar.settings.putSync( + settings! + ..enableAniSkip = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -146,7 +169,11 @@ class EnableAutoSkipState extends _$EnableAutoSkipState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..enableAutoSkip = value), + () => isar.settings.putSync( + settings! + ..enableAutoSkip = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -162,7 +189,11 @@ class AniSkipTimeoutLengthState extends _$AniSkipTimeoutLengthState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..aniSkipTimeoutLength = value), + () => isar.settings.putSync( + settings! + ..aniSkipTimeoutLength = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -178,7 +209,11 @@ class UseLibassState extends _$UseLibassState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..useLibass = value), + () => isar.settings.putSync( + settings! + ..useLibass = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -217,7 +252,11 @@ class HwdecModeState extends _$HwdecModeState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..hwdecMode = value), + () => isar.settings.putSync( + settings! + ..hwdecMode = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/more/settings/player/providers/player_state_provider.g.dart b/lib/modules/more/settings/player/providers/player_state_provider.g.dart index 67236f59..54e1f9ec 100644 --- a/lib/modules/more/settings/player/providers/player_state_provider.g.dart +++ b/lib/modules/more/settings/player/providers/player_state_provider.g.dart @@ -7,7 +7,7 @@ part of 'player_state_provider.dart'; // ************************************************************************** String _$defaultSubtitleLangStateHash() => - r'bec45a4fbd70922b767dbef7c98a423d908ed9d3'; + r'ae7b275e168dd15117512d9ed1c474736458753b'; /// See also [DefaultSubtitleLangState]. @ProviderFor(DefaultSubtitleLangState) @@ -24,7 +24,7 @@ final defaultSubtitleLangStateProvider = typedef _$DefaultSubtitleLangState = AutoDisposeNotifier; String _$markEpisodeAsSeenTypeStateHash() => - r'94ae90e6bc51bbd4f88dfc9780cc5e9eb4ed5770'; + r'd25a31a8c5bf99ab6466023ef996613f98357c8c'; /// See also [MarkEpisodeAsSeenTypeState]. @ProviderFor(MarkEpisodeAsSeenTypeState) @@ -41,7 +41,7 @@ final markEpisodeAsSeenTypeStateProvider = typedef _$MarkEpisodeAsSeenTypeState = AutoDisposeNotifier; String _$defaultSkipIntroLengthStateHash() => - r'fee9c7dd76ad84a16c6ac380285f5cdfe43fc537'; + r'cd673c1c8c1d6400caa02c8f7751615c223ca4e3'; /// See also [DefaultSkipIntroLengthState]. @ProviderFor(DefaultSkipIntroLengthState) @@ -58,7 +58,7 @@ final defaultSkipIntroLengthStateProvider = typedef _$DefaultSkipIntroLengthState = AutoDisposeNotifier; String _$defaultDoubleTapToSkipLengthStateHash() => - r'5f60e645c464503f06f992cba5b61fe81cc8d112'; + r'f550eb96cbf5110fdfc18848dd8049653e369459'; /// See also [DefaultDoubleTapToSkipLengthState]. @ProviderFor(DefaultDoubleTapToSkipLengthState) @@ -75,7 +75,7 @@ final defaultDoubleTapToSkipLengthStateProvider = AutoDisposeNotifierProvider< typedef _$DefaultDoubleTapToSkipLengthState = AutoDisposeNotifier; String _$defaultPlayBackSpeedStateHash() => - r'865d17020e99aad291633b0829e0b9b502356c71'; + r'f9c19deb880028f6be06dcb57d4c75abaef48964'; /// See also [DefaultPlayBackSpeedState]. @ProviderFor(DefaultPlayBackSpeedState) @@ -92,7 +92,7 @@ final defaultPlayBackSpeedStateProvider = typedef _$DefaultPlayBackSpeedState = AutoDisposeNotifier; String _$fullScreenPlayerStateHash() => - r'c041e3caa51c8320a3f136c19890120b38bb86be'; + r'8f10fe73e899e05c9e1355f3e628be3593f1c2a6'; /// See also [FullScreenPlayerState]. @ProviderFor(FullScreenPlayerState) @@ -109,7 +109,7 @@ final fullScreenPlayerStateProvider = typedef _$FullScreenPlayerState = AutoDisposeNotifier; String _$enableAniSkipStateHash() => - r'1b448453e54f2a261820d40ca2d82971d165372a'; + r'103d41d30889391851d2eef85ccce7d4f0baf27d'; /// See also [EnableAniSkipState]. @ProviderFor(EnableAniSkipState) @@ -126,7 +126,7 @@ final enableAniSkipStateProvider = typedef _$EnableAniSkipState = AutoDisposeNotifier; String _$enableAutoSkipStateHash() => - r'5f4d5e669cadf98396afe52635e2ec5f2ee7ff2f'; + r'e5880ae4f88cbcf6be1e4b252aea11425d8b78fc'; /// See also [EnableAutoSkipState]. @ProviderFor(EnableAutoSkipState) @@ -143,7 +143,7 @@ final enableAutoSkipStateProvider = typedef _$EnableAutoSkipState = AutoDisposeNotifier; String _$aniSkipTimeoutLengthStateHash() => - r'fc1c16c22fb129e1a2ea5434282baf2dcfa79c82'; + r'2e13a6e7f53bc29c0b35107af18337fcaf79867f'; /// See also [AniSkipTimeoutLengthState]. @ProviderFor(AniSkipTimeoutLengthState) @@ -159,7 +159,7 @@ final aniSkipTimeoutLengthStateProvider = ); typedef _$AniSkipTimeoutLengthState = AutoDisposeNotifier; -String _$useLibassStateHash() => r'91e5bbde72651f57f8775bf0fec14145ea42ced6'; +String _$useLibassStateHash() => r'aa8024f8b754117dfe80594f85155b05311a3152'; /// See also [UseLibassState]. @ProviderFor(UseLibassState) @@ -175,7 +175,7 @@ final useLibassStateProvider = ); typedef _$UseLibassState = AutoDisposeNotifier; -String _$hwdecModeStateHash() => r'e8b8e2b378eb9ac687bd8dad5637a816ad33fedb'; +String _$hwdecModeStateHash() => r'8186e3c5f3db0e952f629d56b2e580e546aed65e'; /// Copied from Dart SDK class _SystemHash { diff --git a/lib/modules/more/settings/reader/providers/reader_state_provider.dart b/lib/modules/more/settings/reader/providers/reader_state_provider.dart index 3e54d373..9f912a8b 100644 --- a/lib/modules/more/settings/reader/providers/reader_state_provider.dart +++ b/lib/modules/more/settings/reader/providers/reader_state_provider.dart @@ -14,7 +14,11 @@ class DefaultReadingModeState extends _$DefaultReadingModeState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..defaultReaderMode = value), + () => isar.settings.putSync( + settings! + ..defaultReaderMode = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -30,7 +34,11 @@ class AnimatePageTransitionsState extends _$AnimatePageTransitionsState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..animatePageTransitions = value), + () => isar.settings.putSync( + settings! + ..animatePageTransitions = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -46,7 +54,11 @@ class DoubleTapAnimationSpeedState extends _$DoubleTapAnimationSpeedState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..doubleTapAnimationSpeed = value), + () => isar.settings.putSync( + settings! + ..doubleTapAnimationSpeed = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -62,7 +74,11 @@ class CropBordersState extends _$CropBordersState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..cropBorders = value), + () => isar.settings.putSync( + settings! + ..cropBorders = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -78,7 +94,11 @@ class ScaleTypeState extends _$ScaleTypeState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..scaleType = value), + () => isar.settings.putSync( + settings! + ..scaleType = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -94,7 +114,11 @@ class PagePreloadAmountState extends _$PagePreloadAmountState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..pagePreloadAmount = value), + () => isar.settings.putSync( + settings! + ..pagePreloadAmount = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -110,7 +134,11 @@ class BackgroundColorState extends _$BackgroundColorState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..backgroundColor = value), + () => isar.settings.putSync( + settings! + ..backgroundColor = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -126,7 +154,11 @@ class UsePageTapZonesState extends _$UsePageTapZonesState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..usePageTapZones = value), + () => isar.settings.putSync( + settings! + ..usePageTapZones = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -142,7 +174,11 @@ class FullScreenReaderState extends _$FullScreenReaderState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..fullScreenReader = value), + () => isar.settings.putSync( + settings! + ..fullScreenReader = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -178,7 +214,11 @@ class NavigationOrderState extends _$NavigationOrderState { final settings = isar.settings.getSync(227); state = values; isar.writeTxnSync( - () => isar.settings.putSync(settings!..navigationOrder = values), + () => isar.settings.putSync( + settings! + ..navigationOrder = values + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -194,7 +234,11 @@ class HideItemsState extends _$HideItemsState { final settings = isar.settings.getSync(227); state = values; isar.writeTxnSync( - () => isar.settings.putSync(settings!..hideItems = values), + () => isar.settings.putSync( + settings! + ..hideItems = values + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -210,7 +254,11 @@ class MergeLibraryNavMobileState extends _$MergeLibraryNavMobileState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..mergeLibraryNavMobile = value), + () => isar.settings.putSync( + settings! + ..mergeLibraryNavMobile = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -226,7 +274,11 @@ class NovelFontSizeState extends _$NovelFontSizeState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..novelFontSize = value), + () => isar.settings.putSync( + settings! + ..novelFontSize = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } @@ -242,7 +294,11 @@ class NovelTextAlignState extends _$NovelTextAlignState { final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => isar.settings.putSync(settings!..novelTextAlign = value), + () => isar.settings.putSync( + settings! + ..novelTextAlign = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/more/settings/reader/providers/reader_state_provider.g.dart b/lib/modules/more/settings/reader/providers/reader_state_provider.g.dart index ea10c04c..ef3f1215 100644 --- a/lib/modules/more/settings/reader/providers/reader_state_provider.g.dart +++ b/lib/modules/more/settings/reader/providers/reader_state_provider.g.dart @@ -7,7 +7,7 @@ part of 'reader_state_provider.dart'; // ************************************************************************** String _$defaultReadingModeStateHash() => - r'2fe1d264041dd115bcc1a8c5648d0062a19f4c44'; + r'6125feb2aff79c017dc55ea2faa2591916af051a'; /// See also [DefaultReadingModeState]. @ProviderFor(DefaultReadingModeState) @@ -24,7 +24,7 @@ final defaultReadingModeStateProvider = typedef _$DefaultReadingModeState = AutoDisposeNotifier; String _$animatePageTransitionsStateHash() => - r'c8fdb2acb7a551c41a54c1aa14e378f6b1edd5c1'; + r'b65e7a08d290f4ec6b9616eb70ce2830b51582e6'; /// See also [AnimatePageTransitionsState]. @ProviderFor(AnimatePageTransitionsState) @@ -41,7 +41,7 @@ final animatePageTransitionsStateProvider = typedef _$AnimatePageTransitionsState = AutoDisposeNotifier; String _$doubleTapAnimationSpeedStateHash() => - r'd88657a8a587a0a77b6230a7fe5b2c1b833afca8'; + r'6b7b88dd088b7c8328960553b3a8fd17066030a6'; /// See also [DoubleTapAnimationSpeedState]. @ProviderFor(DoubleTapAnimationSpeedState) @@ -57,7 +57,7 @@ final doubleTapAnimationSpeedStateProvider = ); typedef _$DoubleTapAnimationSpeedState = AutoDisposeNotifier; -String _$cropBordersStateHash() => r'65d636df7bebd9fb15b3915c1044c61f3479e806'; +String _$cropBordersStateHash() => r'b8a38a59e240909f81a5faad44b54d3ced025de8'; /// See also [CropBordersState]. @ProviderFor(CropBordersState) @@ -73,7 +73,7 @@ final cropBordersStateProvider = ); typedef _$CropBordersState = AutoDisposeNotifier; -String _$scaleTypeStateHash() => r'5e6943ab426e9f0bdfe16685a037f6def3a02ddf'; +String _$scaleTypeStateHash() => r'07f29cba7193242795134b6d37bb393210a191a1'; /// See also [ScaleTypeState]. @ProviderFor(ScaleTypeState) @@ -90,7 +90,7 @@ final scaleTypeStateProvider = typedef _$ScaleTypeState = AutoDisposeNotifier; String _$pagePreloadAmountStateHash() => - r'f3b7f78ba1acc10631dc433298c49abe417f254e'; + r'45e9810e73e93b7a88a1a3b876da73123024cc71'; /// See also [PagePreloadAmountState]. @ProviderFor(PagePreloadAmountState) @@ -107,7 +107,7 @@ final pagePreloadAmountStateProvider = typedef _$PagePreloadAmountState = AutoDisposeNotifier; String _$backgroundColorStateHash() => - r'912db0bc09d8aafe20b8eb46ed2f07a9d5439aaa'; + r'4abc4c6b95bf97fe50a3290da94cddf935fa96da'; /// See also [BackgroundColorState]. @ProviderFor(BackgroundColorState) @@ -124,7 +124,7 @@ final backgroundColorStateProvider = typedef _$BackgroundColorState = AutoDisposeNotifier; String _$usePageTapZonesStateHash() => - r'476a7831ca38386e6cd9c83e7c8943f1f4ba20b7'; + r'8bdfc5d257eeba63bb4f4ff3ceda766bcc58dc37'; /// See also [UsePageTapZonesState]. @ProviderFor(UsePageTapZonesState) @@ -141,7 +141,7 @@ final usePageTapZonesStateProvider = typedef _$UsePageTapZonesState = AutoDisposeNotifier; String _$fullScreenReaderStateHash() => - r'fe95b7d8cb6aee8910466f86bba97c854994b2d1'; + r'6685d29e04c71975c3442a5299299e761ff72997'; /// See also [FullScreenReaderState]. @ProviderFor(FullScreenReaderState) @@ -158,7 +158,7 @@ final fullScreenReaderStateProvider = typedef _$FullScreenReaderState = AutoDisposeNotifier; String _$navigationOrderStateHash() => - r'15ad6f31d8c5f3acd8cd6f4e4131e7536914cfc6'; + r'7b40ce1b52f02ebac46ed6d0d5ab9ff9590b6885'; /// See also [NavigationOrderState]. @ProviderFor(NavigationOrderState) @@ -174,7 +174,7 @@ final navigationOrderStateProvider = ); typedef _$NavigationOrderState = AutoDisposeNotifier>; -String _$hideItemsStateHash() => r'312605bf45a83d7628d9c1da0597bb151362052b'; +String _$hideItemsStateHash() => r'3e719a5dfb38c1510214f7bcd8dbd786a13c4566'; /// See also [HideItemsState]. @ProviderFor(HideItemsState) @@ -191,7 +191,7 @@ final hideItemsStateProvider = typedef _$HideItemsState = AutoDisposeNotifier>; String _$mergeLibraryNavMobileStateHash() => - r'a69f669b69d036835128b2b922ed7da37877aaa8'; + r'9b7979f6fb9082dd48a90447d44715628d312116'; /// See also [MergeLibraryNavMobileState]. @ProviderFor(MergeLibraryNavMobileState) @@ -208,7 +208,7 @@ final mergeLibraryNavMobileStateProvider = typedef _$MergeLibraryNavMobileState = AutoDisposeNotifier; String _$novelFontSizeStateHash() => - r'fd104e358203d3f86e14d933518f2dbd067cec13'; + r'9e4fa59d8c6b06b36ce485671ee059f8c4a7445e'; /// See also [NovelFontSizeState]. @ProviderFor(NovelFontSizeState) @@ -225,7 +225,7 @@ final novelFontSizeStateProvider = typedef _$NovelFontSizeState = AutoDisposeNotifier; String _$novelTextAlignStateHash() => - r'87664160c3962b96b8582a7581cf1e4ebb870363'; + r'383ff78e9ce21503e163f13d5b87dd021aef6ab4'; /// See also [NovelTextAlignState]. @ProviderFor(NovelTextAlignState) diff --git a/lib/modules/more/settings/sync/providers/sync_providers.dart b/lib/modules/more/settings/sync/providers/sync_providers.dart index 7da63aba..d2b3ec16 100644 --- a/lib/modules/more/settings/sync/providers/sync_providers.dart +++ b/lib/modules/more/settings/sync/providers/sync_providers.dart @@ -73,6 +73,27 @@ class Synching extends _$Synching { ref.invalidateSelf(); } + void setSyncHistories(bool value) { + isar.writeTxnSync(() { + isar.syncPreferences.putSync(state..syncHistories = value); + }); + ref.invalidateSelf(); + } + + void setSyncUpdates(bool value) { + isar.writeTxnSync(() { + isar.syncPreferences.putSync(state..syncUpdates = value); + }); + ref.invalidateSelf(); + } + + void setSyncSettings(bool value) { + isar.writeTxnSync(() { + isar.syncPreferences.putSync(state..syncSettings = value); + }); + ref.invalidateSelf(); + } + List getAllChangedParts() { return isar.changedParts.filter().idIsNotNull().findAllSync(); } diff --git a/lib/modules/more/settings/sync/providers/sync_providers.g.dart b/lib/modules/more/settings/sync/providers/sync_providers.g.dart index 0e3b8f1d..798745a0 100644 --- a/lib/modules/more/settings/sync/providers/sync_providers.g.dart +++ b/lib/modules/more/settings/sync/providers/sync_providers.g.dart @@ -6,7 +6,7 @@ part of 'sync_providers.dart'; // RiverpodGenerator // ************************************************************************** -String _$synchingHash() => r'5d138375c0be625ec3ca62123520d6f1d5f37018'; +String _$synchingHash() => r'b8ae212a8874cf9a170b71d05a91350849a824d1'; /// Copied from Dart SDK class _SystemHash { diff --git a/lib/modules/more/settings/sync/sync.dart b/lib/modules/more/settings/sync/sync.dart index f39ef907..92f7d084 100644 --- a/lib/modules/more/settings/sync/sync.dart +++ b/lib/modules/more/settings/sync/sync.dart @@ -16,10 +16,6 @@ class SyncScreen extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final syncProvider = ref.watch(synchingProvider(syncId: 1)); - final autoSyncFrequency = ref - .watch(synchingProvider(syncId: 1)) - .autoSyncFrequency; final l10n = l10nLocalizations(context)!; final autoSyncOptions = { l10n.sync_auto_off: 0, @@ -46,7 +42,7 @@ class SyncScreen extends ConsumerWidget { return Column( children: [ SwitchListTile( - value: syncProvider.syncOn, + value: syncPreference.syncOn, title: Text(context.l10n.sync_on), onChanged: (value) { ref @@ -81,7 +77,7 @@ class SyncScreen extends ConsumerWidget { dense: true, contentPadding: const EdgeInsets.all(0), value: optionValue, - groupValue: autoSyncFrequency, + groupValue: syncPreference.autoSyncFrequency, onChanged: (value) { ref .read( @@ -120,7 +116,7 @@ class SyncScreen extends ConsumerWidget { title: Text(l10n.sync_auto), subtitle: Text( autoSyncOptions.entries - .where((o) => o.value == autoSyncFrequency) + .where((o) => o.value == syncPreference.autoSyncFrequency) .first .key, style: TextStyle( @@ -151,6 +147,33 @@ class SyncScreen extends ConsumerWidget { ), ), ), + SwitchListTile( + value: syncPreference.syncHistories, + title: Text(context.l10n.sync_enable_histories), + onChanged: syncPreference.syncOn ? (value) { + ref + .read(SynchingProvider(syncId: 1).notifier) + .setSyncHistories(value); + } : null, + ), + SwitchListTile( + value: syncPreference.syncUpdates, + title: Text(context.l10n.sync_enable_updates), + onChanged: syncPreference.syncOn ? (value) { + ref + .read(SynchingProvider(syncId: 1).notifier) + .setSyncUpdates(value); + } : null, + ), + SwitchListTile( + value: syncPreference.syncSettings, + title: Text(context.l10n.sync_enable_settings), + onChanged: syncPreference.syncOn ? (value) { + ref + .read(SynchingProvider(syncId: 1).notifier) + .setSyncSettings(value); + } : null, + ), Padding( padding: const EdgeInsets.only( left: 15, @@ -267,6 +290,7 @@ class SyncScreen extends ConsumerWidget { ), ], ), + const SizedBox(height: 20), ], ); }, @@ -276,7 +300,11 @@ class SyncScreen extends ConsumerWidget { } } -void _showDialogLogin(BuildContext context, WidgetRef ref, SyncPreference syncPreference) { +void _showDialogLogin( + BuildContext context, + WidgetRef ref, + SyncPreference syncPreference, +) { final serverController = TextEditingController(text: syncPreference.server); final emailController = TextEditingController(text: syncPreference.email); final passwordController = TextEditingController(); diff --git a/lib/modules/more/settings/track/providers/track_providers.dart b/lib/modules/more/settings/track/providers/track_providers.dart index a451b5ca..1d944576 100644 --- a/lib/modules/more/settings/track/providers/track_providers.dart +++ b/lib/modules/more/settings/track/providers/track_providers.dart @@ -72,8 +72,11 @@ class UpdateProgressAfterReadingState final settings = isar.settings.getSync(227); state = value; isar.writeTxnSync( - () => - isar.settings.putSync(settings!..updateProgressAfterReading = value), + () => isar.settings.putSync( + settings! + ..updateProgressAfterReading = value + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), ); } } diff --git a/lib/modules/more/settings/track/providers/track_providers.g.dart b/lib/modules/more/settings/track/providers/track_providers.g.dart index 180e9527..80dc2447 100644 --- a/lib/modules/more/settings/track/providers/track_providers.g.dart +++ b/lib/modules/more/settings/track/providers/track_providers.g.dart @@ -171,7 +171,7 @@ class _TracksProviderElement } String _$updateProgressAfterReadingStateHash() => - r'ad615c0c03d376adf8bc4728aac4288e61facee5'; + r'ff62bff97327d9c6b2c694fb20ca8df98e5107a0'; /// See also [UpdateProgressAfterReadingState]. @ProviderFor(UpdateProgressAfterReadingState) diff --git a/lib/modules/widgets/manga_image_card_widget.dart b/lib/modules/widgets/manga_image_card_widget.dart index 1eb3d1f6..faf8b92d 100644 --- a/lib/modules/widgets/manga_image_card_widget.dart +++ b/lib/modules/widgets/manga_image_card_widget.dart @@ -371,7 +371,8 @@ Future pushToMangaReaderDetail({ ..sortChapterList = sortChapterList ..chapterFilterBookmarkedList = chapterFilterBookmarkedList ..chapterFilterDownloadedList = chapterFilterDownloadedList - ..chapterFilterUnreadList = chapterFilterUnreadList, + ..chapterFilterUnreadList = chapterFilterUnreadList + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ); }); } diff --git a/lib/providers/l10n_providers.dart b/lib/providers/l10n_providers.dart index 03d599c2..90d95d8d 100644 --- a/lib/providers/l10n_providers.dart +++ b/lib/providers/l10n_providers.dart @@ -28,7 +28,8 @@ class L10nLocaleState extends _$L10nLocaleState { ..locale = L10nLocale( languageCode: locale.languageCode, countryCode: locale.countryCode, - ), + ) + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ); }); state = locale; diff --git a/lib/providers/l10n_providers.g.dart b/lib/providers/l10n_providers.g.dart index 065ca90e..32e309dc 100644 --- a/lib/providers/l10n_providers.g.dart +++ b/lib/providers/l10n_providers.g.dart @@ -6,7 +6,7 @@ part of 'l10n_providers.dart'; // RiverpodGenerator // ************************************************************************** -String _$l10nLocaleStateHash() => r'1c6cb9d6c0a56d54a6a5e7bc1b2dbc6c29538593'; +String _$l10nLocaleStateHash() => r'eb373ea1cc24b6d826f395755bbe0e445f592b0d'; /// See also [L10nLocaleState]. @ProviderFor(L10nLocaleState) diff --git a/lib/services/get_chapter_pages.dart b/lib/services/get_chapter_pages.dart index 5dfa05db..d073a765 100644 --- a/lib/services/get_chapter_pages.dart +++ b/lib/services/get_chapter_pages.dart @@ -128,7 +128,11 @@ Future getChapterPages( : null, ); isar.writeTxnSync(() { - isar.settings.putSync(settings..chapterPageUrlsList = chapterPageUrls); + isar.settings.putSync( + settings + ..chapterPageUrlsList = chapterPageUrls + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ); }); } for (var i = 0; i < pageUrls.length; i++) { diff --git a/lib/services/get_chapter_pages.g.dart b/lib/services/get_chapter_pages.g.dart index 1260f496..90f0e848 100644 --- a/lib/services/get_chapter_pages.g.dart +++ b/lib/services/get_chapter_pages.g.dart @@ -6,7 +6,7 @@ part of 'get_chapter_pages.dart'; // RiverpodGenerator // ************************************************************************** -String _$getChapterPagesHash() => r'7cf8c373e081959a8871a96eb8f9c9317bc65321'; +String _$getChapterPagesHash() => r'08f56022f03c4834c69c50d0020007fa8b26c091'; /// Copied from Dart SDK class _SystemHash { diff --git a/lib/services/get_video_list.g.dart b/lib/services/get_video_list.g.dart index bb7792fe..049149c3 100644 --- a/lib/services/get_video_list.g.dart +++ b/lib/services/get_video_list.g.dart @@ -6,7 +6,7 @@ part of 'get_video_list.dart'; // RiverpodGenerator // ************************************************************************** -String _$getVideoListHash() => r'74838334ee25412c4a3f151bc598705145bb659c'; +String _$getVideoListHash() => r'aeed8a24962e960a374d6bc7294e798ad3d0c05e'; /// Copied from Dart SDK class _SystemHash { diff --git a/lib/services/http/m_client.dart b/lib/services/http/m_client.dart index bbccd1c7..ee0c43ab 100644 --- a/lib/services/http/m_client.dart +++ b/lib/services/http/m_client.dart @@ -119,7 +119,13 @@ class MClient { } if (ua.isNotEmpty) { final settings = await isar.settings.get(227); - await isar.writeTxn(() => isar.settings.put(settings!..userAgent = ua)); + await isar.writeTxn( + () => isar.settings.put( + settings! + ..userAgent = ua + ..updatedAt = DateTime.now().millisecondsSinceEpoch, + ), + ); } } diff --git a/lib/services/sync_server.dart b/lib/services/sync_server.dart index f8f81b07..e38238f5 100644 --- a/lib/services/sync_server.dart +++ b/lib/services/sync_server.dart @@ -7,9 +7,16 @@ import 'package:mangayomi/models/changed.dart'; import 'package:mangayomi/models/chapter.dart'; import 'package:mangayomi/models/history.dart'; import 'package:mangayomi/models/manga.dart'; +import 'package:mangayomi/models/settings.dart'; import 'package:mangayomi/models/track.dart'; import 'package:mangayomi/models/update.dart'; +import 'package:mangayomi/modules/more/settings/appearance/providers/blend_level_state_provider.dart'; +import 'package:mangayomi/modules/more/settings/appearance/providers/flex_scheme_color_state_provider.dart'; +import 'package:mangayomi/modules/more/settings/appearance/providers/pure_black_dark_mode_state_provider.dart'; +import 'package:mangayomi/modules/more/settings/appearance/providers/theme_mode_state_provider.dart'; +import 'package:mangayomi/modules/more/settings/browse/providers/browse_state_provider.dart'; import 'package:mangayomi/modules/more/settings/sync/providers/sync_providers.dart'; +import 'package:mangayomi/providers/l10n_providers.dart'; import 'package:mangayomi/services/http/m_client.dart'; import 'dart:convert'; import 'package:riverpod_annotation/riverpod_annotation.dart'; @@ -23,6 +30,7 @@ class SyncServer extends _$SyncServer { final String _syncMangaUrl = '/sync/manga'; final String _syncHistoryUrl = '/sync/histories'; final String _syncUpdateUrl = '/sync/updates'; + final String _syncSettingsUrl = '/sync/settings'; @override void build({required int syncId}) {} @@ -64,6 +72,7 @@ class SyncServer extends _$SyncServer { botToast(l10n.sync_starting, second: 500); } try { + final syncPreference = ref.read(synchingProvider(syncId: syncId)); final syncNotifier = ref.read(synchingProvider(syncId: syncId).notifier); final resultManga = await _syncManga(l10n, syncNotifier); @@ -71,15 +80,26 @@ class SyncServer extends _$SyncServer { botToast(l10n.sync_failed, second: 5); return; } - final resultHistory = await _syncHistory(l10n, syncNotifier); - if (!resultHistory) { - botToast(l10n.sync_failed, second: 5); - return; + if (syncPreference.syncHistories) { + final resultHistory = await _syncHistory(l10n, syncNotifier); + if (!resultHistory) { + botToast(l10n.sync_failed, second: 5); + return; + } } - final resultUpdate = await _syncUpdate(l10n, syncNotifier); - if (!resultUpdate) { - botToast(l10n.sync_failed, second: 5); - return; + if (syncPreference.syncUpdates) { + final resultUpdate = await _syncUpdate(l10n, syncNotifier); + if (!resultUpdate) { + botToast(l10n.sync_failed, second: 5); + return; + } + } + if (syncPreference.syncSettings) { + final resultSettings = await _syncSettings(l10n); + if (!resultSettings) { + botToast(l10n.sync_failed, second: 5); + return; + } } ref.invalidate(synchingProvider(syncId: syncId)); @@ -88,7 +108,6 @@ class SyncServer extends _$SyncServer { } } catch (error) { botToast(error.toString(), second: 5); - rethrow; } } @@ -170,6 +189,28 @@ class SyncServer extends _$SyncServer { return true; } + Future _syncSettings(AppLocalizations l10n) async { + final settingsData = _getSettingsData(); + final accessToken = _getAccessToken(); + var response = await http.post( + Uri.parse('${_getServer()}$_syncSettingsUrl'), + headers: { + 'Content-Type': 'application/json', + 'Cookie': 'id=$accessToken', + }, + body: settingsData, + ); + if (response.statusCode != 200) { + botToast(l10n.sync_failed, second: 5); + return false; + } + + final jsonData = jsonDecode(response.body) as Map; + await _upsertSettings(jsonData); + + return true; + } + Future _upsertCategories( Map jsonData, Synching syncNotifier, @@ -366,6 +407,23 @@ class SyncServer extends _$SyncServer { }); } + Future _upsertSettings(Map jsonData) async { + final oldSettings = isar.settings.getSync(227)!; + final settings = Settings.fromJson(jsonData["settings"]); + await isar.writeTxn(() async { + await isar.settings.put(settings..cookiesList = oldSettings.cookiesList); + ref.invalidate(followSystemThemeStateProvider); + ref.invalidate(themeModeStateProvider); + ref.invalidate(blendLevelStateProvider); + ref.invalidate(flexSchemeColorStateProvider); + ref.invalidate(pureBlackDarkModeStateProvider); + ref.invalidate(l10nLocaleStateProvider); + ref.invalidate(extensionsRepoStateProvider(ItemType.manga)); + ref.invalidate(extensionsRepoStateProvider(ItemType.anime)); + ref.invalidate(extensionsRepoStateProvider(ItemType.novel)); + }); + } + String _getMangaData() { Map data = {}; data["categories"] = _getCategories(); @@ -393,6 +451,12 @@ class SyncServer extends _$SyncServer { return jsonEncode(data); } + String _getSettingsData() { + Map data = {}; + data["settings"] = isar.settings.getSync(227)!..updatedAt ??= DateTime.now().millisecondsSinceEpoch..cookiesList = []; + return jsonEncode(data); + } + List _getDeletedObjects(ActionType actionType) { return ref .read(synchingProvider(syncId: syncId).notifier) @@ -407,7 +471,7 @@ class SyncServer extends _$SyncServer { .filter() .idIsNotNull() .findAllSync() - .map((e) => e.toJson()) + .map((e) => (e..customCoverImage = null).toJson()) .toList(); } diff --git a/lib/services/sync_server.g.dart b/lib/services/sync_server.g.dart index a7159723..30ccc0ed 100644 --- a/lib/services/sync_server.g.dart +++ b/lib/services/sync_server.g.dart @@ -6,7 +6,7 @@ part of 'sync_server.dart'; // RiverpodGenerator // ************************************************************************** -String _$syncServerHash() => r'2513418dc8cde9defca0ff778b8ea23fe1f59e9b'; +String _$syncServerHash() => r'97a778696e0cc8b8e4c706de50d60464bb7b2f03'; /// Copied from Dart SDK class _SystemHash { diff --git a/lib/services/torrent_server.dart b/lib/services/torrent_server.dart index ff493025..065e2372 100644 --- a/lib/services/torrent_server.dart +++ b/lib/services/torrent_server.dart @@ -123,7 +123,9 @@ String get _baseUrl { void _setBtServerPort(int newPort) { isar.writeTxnSync( () => isar.settings.putSync( - isar.settings.getSync(227)!..btServerPort = newPort, + isar.settings.getSync(227)! + ..btServerPort = newPort + ..updatedAt = DateTime.now().millisecondsSinceEpoch, ), ); }