Settings features: check for extension updates, auto extension updates
This commit is contained in:
parent
2eb4efe435
commit
a914f6edaa
16 changed files with 545 additions and 345 deletions
|
|
@ -215,6 +215,9 @@
|
|||
"image_loading_error":"This image couldn't be loaded",
|
||||
"add_episodes":"Add Episodes",
|
||||
"select_video_quality":"Select video quality",
|
||||
"select_video_subtitle":"Select video subtitle"
|
||||
"select_video_subtitle":"Select video subtitle",
|
||||
"check_for_extension_updates":"Check for extension updates",
|
||||
"auto_extensions_updates":"Auto extension updates",
|
||||
"auto_extensions_updates_subtitle":"Will automatically update the extension when a new version is available."
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@
|
|||
"only_on_wifi":"Uniquement en Wi-Fi",
|
||||
"save_as_cbz_archive":"Enregistrer comme archive CBZ",
|
||||
"browse_subtitle":"Sources, extensions, recherche globale",
|
||||
"only_include_pinned_sources":"Rechercher uniquement les sources épinglées dans la recherche globale",
|
||||
"only_include_pinned_sources":"N'inclure que les sources épinglées",
|
||||
"nsfw_sources":"Contenu +18",
|
||||
"nsfw_sources_show":"Afficher dans les listes de sources et d'extensions",
|
||||
"nsfw_sources_info":"Ceci n'empêche pas les extensions non officielles ou potentiellement mal signalées de diffuser du contenu +18 dans l'application.",
|
||||
|
|
@ -215,5 +215,8 @@
|
|||
"image_loading_error":"L'image n'a pas pu être chargée",
|
||||
"add_episodes":"Ajouter Épisodes",
|
||||
"select_video_quality":"Selectionner une qualité video",
|
||||
"select_video_subtitle":"Selectionner un sous-titrage video"
|
||||
"select_video_subtitle":"Selectionner un sous-titrage video",
|
||||
"check_for_extension_updates":"Vérifier les mise à jour d'extensions",
|
||||
"auto_extensions_updates":"Mises à jour auto des extensions",
|
||||
"auto_extensions_updates_subtitle":"Mettra automatiquement à jour l'extension lorsqu'une nouvelle version est disponible."
|
||||
}
|
||||
|
|
@ -88,7 +88,7 @@ class Settings {
|
|||
|
||||
final sources = IsarLinks<Source>();
|
||||
|
||||
bool? autoUpdateExtensions;
|
||||
bool? autoExtensionsUpdates;
|
||||
|
||||
bool? cropBorders;
|
||||
|
||||
|
|
@ -121,6 +121,8 @@ class Settings {
|
|||
|
||||
int? pagePreloadAmount;
|
||||
|
||||
bool? checkForExtensionUpdates;
|
||||
|
||||
@enumerated
|
||||
ScaleType scaleType;
|
||||
|
||||
|
|
@ -162,7 +164,7 @@ class Settings {
|
|||
this.downloadLocation = "",
|
||||
this.cropBorders = false,
|
||||
this.libraryLocalSource,
|
||||
this.autoUpdateExtensions = false,
|
||||
this.autoExtensionsUpdates = false,
|
||||
this.animeDisplayType = DisplayType.compactGrid,
|
||||
this.libraryFilterAnimeDownloadType = 0,
|
||||
this.libraryFilterAnimeUnreadType = 0,
|
||||
|
|
@ -176,7 +178,8 @@ class Settings {
|
|||
this.animeLibraryLocalSource,
|
||||
this.sortLibraryAnime,
|
||||
this.pagePreloadAmount = 6,
|
||||
this.scaleType = ScaleType.fitScreen});
|
||||
this.scaleType = ScaleType.fitScreen,
|
||||
this.checkForExtensionUpdates = true});
|
||||
}
|
||||
|
||||
enum DisplayType {
|
||||
|
|
|
|||
|
|
@ -58,9 +58,9 @@ const SettingsSchema = CollectionSchema(
|
|||
name: r'animeLibraryShowNumbersOfItems',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'autoUpdateExtensions': PropertySchema(
|
||||
r'autoExtensionsUpdates': PropertySchema(
|
||||
id: 8,
|
||||
name: r'autoUpdateExtensions',
|
||||
name: r'autoExtensionsUpdates',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'chapterFilterBookmarkedList': PropertySchema(
|
||||
|
|
@ -93,218 +93,223 @@ const SettingsSchema = CollectionSchema(
|
|||
type: IsarType.objectList,
|
||||
target: r'ChapterPageurls',
|
||||
),
|
||||
r'cookiesList': PropertySchema(
|
||||
r'checkForExtensionUpdates': PropertySchema(
|
||||
id: 14,
|
||||
name: r'checkForExtensionUpdates',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'cookiesList': PropertySchema(
|
||||
id: 15,
|
||||
name: r'cookiesList',
|
||||
type: IsarType.objectList,
|
||||
target: r'Cookie',
|
||||
),
|
||||
r'cropBorders': PropertySchema(
|
||||
id: 15,
|
||||
id: 16,
|
||||
name: r'cropBorders',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'dateFormat': PropertySchema(
|
||||
id: 16,
|
||||
id: 17,
|
||||
name: r'dateFormat',
|
||||
type: IsarType.string,
|
||||
),
|
||||
r'defaultReaderMode': PropertySchema(
|
||||
id: 17,
|
||||
id: 18,
|
||||
name: r'defaultReaderMode',
|
||||
type: IsarType.byte,
|
||||
enumMap: _SettingsdefaultReaderModeEnumValueMap,
|
||||
),
|
||||
r'displayType': PropertySchema(
|
||||
id: 18,
|
||||
id: 19,
|
||||
name: r'displayType',
|
||||
type: IsarType.byte,
|
||||
enumMap: _SettingsdisplayTypeEnumValueMap,
|
||||
),
|
||||
r'doubleTapAnimationSpeed': PropertySchema(
|
||||
id: 19,
|
||||
id: 20,
|
||||
name: r'doubleTapAnimationSpeed',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'downloadLocation': PropertySchema(
|
||||
id: 20,
|
||||
id: 21,
|
||||
name: r'downloadLocation',
|
||||
type: IsarType.string,
|
||||
),
|
||||
r'downloadOnlyOnWifi': PropertySchema(
|
||||
id: 21,
|
||||
id: 22,
|
||||
name: r'downloadOnlyOnWifi',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'filterScanlatorList': PropertySchema(
|
||||
id: 22,
|
||||
id: 23,
|
||||
name: r'filterScanlatorList',
|
||||
type: IsarType.objectList,
|
||||
target: r'FilterScanlator',
|
||||
),
|
||||
r'flexColorSchemeBlendLevel': PropertySchema(
|
||||
id: 23,
|
||||
id: 24,
|
||||
name: r'flexColorSchemeBlendLevel',
|
||||
type: IsarType.double,
|
||||
),
|
||||
r'flexSchemeColorIndex': PropertySchema(
|
||||
id: 24,
|
||||
id: 25,
|
||||
name: r'flexSchemeColorIndex',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'incognitoMode': PropertySchema(
|
||||
id: 25,
|
||||
id: 26,
|
||||
name: r'incognitoMode',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'libraryDownloadedChapters': PropertySchema(
|
||||
id: 26,
|
||||
id: 27,
|
||||
name: r'libraryDownloadedChapters',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'libraryFilterAnimeBookMarkedType': PropertySchema(
|
||||
id: 27,
|
||||
id: 28,
|
||||
name: r'libraryFilterAnimeBookMarkedType',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'libraryFilterAnimeDownloadType': PropertySchema(
|
||||
id: 28,
|
||||
id: 29,
|
||||
name: r'libraryFilterAnimeDownloadType',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'libraryFilterAnimeStartedType': PropertySchema(
|
||||
id: 29,
|
||||
id: 30,
|
||||
name: r'libraryFilterAnimeStartedType',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'libraryFilterAnimeUnreadType': PropertySchema(
|
||||
id: 30,
|
||||
id: 31,
|
||||
name: r'libraryFilterAnimeUnreadType',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'libraryFilterMangasBookMarkedType': PropertySchema(
|
||||
id: 31,
|
||||
id: 32,
|
||||
name: r'libraryFilterMangasBookMarkedType',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'libraryFilterMangasDownloadType': PropertySchema(
|
||||
id: 32,
|
||||
id: 33,
|
||||
name: r'libraryFilterMangasDownloadType',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'libraryFilterMangasStartedType': PropertySchema(
|
||||
id: 33,
|
||||
id: 34,
|
||||
name: r'libraryFilterMangasStartedType',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'libraryFilterMangasUnreadType': PropertySchema(
|
||||
id: 34,
|
||||
id: 35,
|
||||
name: r'libraryFilterMangasUnreadType',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'libraryLocalSource': PropertySchema(
|
||||
id: 35,
|
||||
id: 36,
|
||||
name: r'libraryLocalSource',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'libraryShowCategoryTabs': PropertySchema(
|
||||
id: 36,
|
||||
id: 37,
|
||||
name: r'libraryShowCategoryTabs',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'libraryShowContinueReadingButton': PropertySchema(
|
||||
id: 37,
|
||||
id: 38,
|
||||
name: r'libraryShowContinueReadingButton',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'libraryShowLanguage': PropertySchema(
|
||||
id: 38,
|
||||
id: 39,
|
||||
name: r'libraryShowLanguage',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'libraryShowNumbersOfItems': PropertySchema(
|
||||
id: 39,
|
||||
id: 40,
|
||||
name: r'libraryShowNumbersOfItems',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'locale': PropertySchema(
|
||||
id: 40,
|
||||
id: 41,
|
||||
name: r'locale',
|
||||
type: IsarType.object,
|
||||
target: r'L10nLocale',
|
||||
),
|
||||
r'onlyIncludePinnedSources': PropertySchema(
|
||||
id: 41,
|
||||
id: 42,
|
||||
name: r'onlyIncludePinnedSources',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'pagePreloadAmount': PropertySchema(
|
||||
id: 42,
|
||||
id: 43,
|
||||
name: r'pagePreloadAmount',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'personalReaderModeList': PropertySchema(
|
||||
id: 43,
|
||||
id: 44,
|
||||
name: r'personalReaderModeList',
|
||||
type: IsarType.objectList,
|
||||
target: r'PersonalReaderMode',
|
||||
),
|
||||
r'pureBlackDarkMode': PropertySchema(
|
||||
id: 44,
|
||||
id: 45,
|
||||
name: r'pureBlackDarkMode',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'relativeTimesTamps': PropertySchema(
|
||||
id: 45,
|
||||
id: 46,
|
||||
name: r'relativeTimesTamps',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'saveAsCBZArchive': PropertySchema(
|
||||
id: 46,
|
||||
id: 47,
|
||||
name: r'saveAsCBZArchive',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'scaleType': PropertySchema(
|
||||
id: 47,
|
||||
id: 48,
|
||||
name: r'scaleType',
|
||||
type: IsarType.byte,
|
||||
enumMap: _SettingsscaleTypeEnumValueMap,
|
||||
),
|
||||
r'showNSFW': PropertySchema(
|
||||
id: 48,
|
||||
id: 49,
|
||||
name: r'showNSFW',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'showPagesNumber': PropertySchema(
|
||||
id: 49,
|
||||
id: 50,
|
||||
name: r'showPagesNumber',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'sortChapterList': PropertySchema(
|
||||
id: 50,
|
||||
id: 51,
|
||||
name: r'sortChapterList',
|
||||
type: IsarType.objectList,
|
||||
target: r'SortChapter',
|
||||
),
|
||||
r'sortLibraryAnime': PropertySchema(
|
||||
id: 51,
|
||||
id: 52,
|
||||
name: r'sortLibraryAnime',
|
||||
type: IsarType.object,
|
||||
target: r'SortLibraryManga',
|
||||
),
|
||||
r'sortLibraryManga': PropertySchema(
|
||||
id: 52,
|
||||
id: 53,
|
||||
name: r'sortLibraryManga',
|
||||
type: IsarType.object,
|
||||
target: r'SortLibraryManga',
|
||||
),
|
||||
r'themeIsDark': PropertySchema(
|
||||
id: 53,
|
||||
id: 54,
|
||||
name: r'themeIsDark',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'userAgent': PropertySchema(
|
||||
id: 54,
|
||||
id: 55,
|
||||
name: r'userAgent',
|
||||
type: IsarType.string,
|
||||
)
|
||||
|
|
@ -532,7 +537,7 @@ void _settingsSerialize(
|
|||
writer.writeBool(offsets[5], object.animeLibraryShowContinueReadingButton);
|
||||
writer.writeBool(offsets[6], object.animeLibraryShowLanguage);
|
||||
writer.writeBool(offsets[7], object.animeLibraryShowNumbersOfItems);
|
||||
writer.writeBool(offsets[8], object.autoUpdateExtensions);
|
||||
writer.writeBool(offsets[8], object.autoExtensionsUpdates);
|
||||
writer.writeObjectList<ChapterFilterBookmarked>(
|
||||
offsets[9],
|
||||
allOffsets,
|
||||
|
|
@ -563,82 +568,83 @@ void _settingsSerialize(
|
|||
ChapterPageurlsSchema.serialize,
|
||||
object.chapterPageUrlsList,
|
||||
);
|
||||
writer.writeBool(offsets[14], object.checkForExtensionUpdates);
|
||||
writer.writeObjectList<Cookie>(
|
||||
offsets[14],
|
||||
offsets[15],
|
||||
allOffsets,
|
||||
CookieSchema.serialize,
|
||||
object.cookiesList,
|
||||
);
|
||||
writer.writeBool(offsets[15], object.cropBorders);
|
||||
writer.writeString(offsets[16], object.dateFormat);
|
||||
writer.writeByte(offsets[17], object.defaultReaderMode.index);
|
||||
writer.writeByte(offsets[18], object.displayType.index);
|
||||
writer.writeLong(offsets[19], object.doubleTapAnimationSpeed);
|
||||
writer.writeString(offsets[20], object.downloadLocation);
|
||||
writer.writeBool(offsets[21], object.downloadOnlyOnWifi);
|
||||
writer.writeBool(offsets[16], object.cropBorders);
|
||||
writer.writeString(offsets[17], object.dateFormat);
|
||||
writer.writeByte(offsets[18], object.defaultReaderMode.index);
|
||||
writer.writeByte(offsets[19], object.displayType.index);
|
||||
writer.writeLong(offsets[20], object.doubleTapAnimationSpeed);
|
||||
writer.writeString(offsets[21], object.downloadLocation);
|
||||
writer.writeBool(offsets[22], object.downloadOnlyOnWifi);
|
||||
writer.writeObjectList<FilterScanlator>(
|
||||
offsets[22],
|
||||
offsets[23],
|
||||
allOffsets,
|
||||
FilterScanlatorSchema.serialize,
|
||||
object.filterScanlatorList,
|
||||
);
|
||||
writer.writeDouble(offsets[23], object.flexColorSchemeBlendLevel);
|
||||
writer.writeLong(offsets[24], object.flexSchemeColorIndex);
|
||||
writer.writeBool(offsets[25], object.incognitoMode);
|
||||
writer.writeBool(offsets[26], object.libraryDownloadedChapters);
|
||||
writer.writeLong(offsets[27], object.libraryFilterAnimeBookMarkedType);
|
||||
writer.writeLong(offsets[28], object.libraryFilterAnimeDownloadType);
|
||||
writer.writeLong(offsets[29], object.libraryFilterAnimeStartedType);
|
||||
writer.writeLong(offsets[30], object.libraryFilterAnimeUnreadType);
|
||||
writer.writeLong(offsets[31], object.libraryFilterMangasBookMarkedType);
|
||||
writer.writeLong(offsets[32], object.libraryFilterMangasDownloadType);
|
||||
writer.writeLong(offsets[33], object.libraryFilterMangasStartedType);
|
||||
writer.writeLong(offsets[34], object.libraryFilterMangasUnreadType);
|
||||
writer.writeBool(offsets[35], object.libraryLocalSource);
|
||||
writer.writeBool(offsets[36], object.libraryShowCategoryTabs);
|
||||
writer.writeBool(offsets[37], object.libraryShowContinueReadingButton);
|
||||
writer.writeBool(offsets[38], object.libraryShowLanguage);
|
||||
writer.writeBool(offsets[39], object.libraryShowNumbersOfItems);
|
||||
writer.writeDouble(offsets[24], object.flexColorSchemeBlendLevel);
|
||||
writer.writeLong(offsets[25], object.flexSchemeColorIndex);
|
||||
writer.writeBool(offsets[26], object.incognitoMode);
|
||||
writer.writeBool(offsets[27], object.libraryDownloadedChapters);
|
||||
writer.writeLong(offsets[28], object.libraryFilterAnimeBookMarkedType);
|
||||
writer.writeLong(offsets[29], object.libraryFilterAnimeDownloadType);
|
||||
writer.writeLong(offsets[30], object.libraryFilterAnimeStartedType);
|
||||
writer.writeLong(offsets[31], object.libraryFilterAnimeUnreadType);
|
||||
writer.writeLong(offsets[32], object.libraryFilterMangasBookMarkedType);
|
||||
writer.writeLong(offsets[33], object.libraryFilterMangasDownloadType);
|
||||
writer.writeLong(offsets[34], object.libraryFilterMangasStartedType);
|
||||
writer.writeLong(offsets[35], object.libraryFilterMangasUnreadType);
|
||||
writer.writeBool(offsets[36], object.libraryLocalSource);
|
||||
writer.writeBool(offsets[37], object.libraryShowCategoryTabs);
|
||||
writer.writeBool(offsets[38], object.libraryShowContinueReadingButton);
|
||||
writer.writeBool(offsets[39], object.libraryShowLanguage);
|
||||
writer.writeBool(offsets[40], object.libraryShowNumbersOfItems);
|
||||
writer.writeObject<L10nLocale>(
|
||||
offsets[40],
|
||||
offsets[41],
|
||||
allOffsets,
|
||||
L10nLocaleSchema.serialize,
|
||||
object.locale,
|
||||
);
|
||||
writer.writeBool(offsets[41], object.onlyIncludePinnedSources);
|
||||
writer.writeLong(offsets[42], object.pagePreloadAmount);
|
||||
writer.writeBool(offsets[42], object.onlyIncludePinnedSources);
|
||||
writer.writeLong(offsets[43], object.pagePreloadAmount);
|
||||
writer.writeObjectList<PersonalReaderMode>(
|
||||
offsets[43],
|
||||
offsets[44],
|
||||
allOffsets,
|
||||
PersonalReaderModeSchema.serialize,
|
||||
object.personalReaderModeList,
|
||||
);
|
||||
writer.writeBool(offsets[44], object.pureBlackDarkMode);
|
||||
writer.writeLong(offsets[45], object.relativeTimesTamps);
|
||||
writer.writeBool(offsets[46], object.saveAsCBZArchive);
|
||||
writer.writeByte(offsets[47], object.scaleType.index);
|
||||
writer.writeBool(offsets[48], object.showNSFW);
|
||||
writer.writeBool(offsets[49], object.showPagesNumber);
|
||||
writer.writeBool(offsets[45], object.pureBlackDarkMode);
|
||||
writer.writeLong(offsets[46], object.relativeTimesTamps);
|
||||
writer.writeBool(offsets[47], object.saveAsCBZArchive);
|
||||
writer.writeByte(offsets[48], object.scaleType.index);
|
||||
writer.writeBool(offsets[49], object.showNSFW);
|
||||
writer.writeBool(offsets[50], object.showPagesNumber);
|
||||
writer.writeObjectList<SortChapter>(
|
||||
offsets[50],
|
||||
offsets[51],
|
||||
allOffsets,
|
||||
SortChapterSchema.serialize,
|
||||
object.sortChapterList,
|
||||
);
|
||||
writer.writeObject<SortLibraryManga>(
|
||||
offsets[51],
|
||||
offsets[52],
|
||||
allOffsets,
|
||||
SortLibraryMangaSchema.serialize,
|
||||
object.sortLibraryAnime,
|
||||
);
|
||||
writer.writeObject<SortLibraryManga>(
|
||||
offsets[52],
|
||||
offsets[53],
|
||||
allOffsets,
|
||||
SortLibraryMangaSchema.serialize,
|
||||
object.sortLibraryManga,
|
||||
);
|
||||
writer.writeBool(offsets[53], object.themeIsDark);
|
||||
writer.writeString(offsets[54], object.userAgent);
|
||||
writer.writeBool(offsets[54], object.themeIsDark);
|
||||
writer.writeString(offsets[55], object.userAgent);
|
||||
}
|
||||
|
||||
Settings _settingsDeserialize(
|
||||
|
|
@ -658,7 +664,7 @@ Settings _settingsDeserialize(
|
|||
animeLibraryShowContinueReadingButton: reader.readBoolOrNull(offsets[5]),
|
||||
animeLibraryShowLanguage: reader.readBoolOrNull(offsets[6]),
|
||||
animeLibraryShowNumbersOfItems: reader.readBoolOrNull(offsets[7]),
|
||||
autoUpdateExtensions: reader.readBoolOrNull(offsets[8]),
|
||||
autoExtensionsUpdates: reader.readBoolOrNull(offsets[8]),
|
||||
chapterFilterDownloadedList: reader.readObjectList<ChapterFilterDownloaded>(
|
||||
offsets[10],
|
||||
ChapterFilterDownloadedSchema.deserialize,
|
||||
|
|
@ -677,75 +683,76 @@ Settings _settingsDeserialize(
|
|||
allOffsets,
|
||||
ChapterPageurls(),
|
||||
),
|
||||
checkForExtensionUpdates: reader.readBoolOrNull(offsets[14]),
|
||||
cookiesList: reader.readObjectList<Cookie>(
|
||||
offsets[14],
|
||||
offsets[15],
|
||||
CookieSchema.deserialize,
|
||||
allOffsets,
|
||||
Cookie(),
|
||||
),
|
||||
cropBorders: reader.readBoolOrNull(offsets[15]),
|
||||
dateFormat: reader.readStringOrNull(offsets[16]),
|
||||
cropBorders: reader.readBoolOrNull(offsets[16]),
|
||||
dateFormat: reader.readStringOrNull(offsets[17]),
|
||||
defaultReaderMode: _SettingsdefaultReaderModeValueEnumMap[
|
||||
reader.readByteOrNull(offsets[17])] ??
|
||||
reader.readByteOrNull(offsets[18])] ??
|
||||
ReaderMode.vertical,
|
||||
displayType:
|
||||
_SettingsdisplayTypeValueEnumMap[reader.readByteOrNull(offsets[18])] ??
|
||||
_SettingsdisplayTypeValueEnumMap[reader.readByteOrNull(offsets[19])] ??
|
||||
DisplayType.compactGrid,
|
||||
doubleTapAnimationSpeed: reader.readLongOrNull(offsets[19]),
|
||||
downloadLocation: reader.readStringOrNull(offsets[20]),
|
||||
downloadOnlyOnWifi: reader.readBoolOrNull(offsets[21]),
|
||||
flexColorSchemeBlendLevel: reader.readDoubleOrNull(offsets[23]),
|
||||
flexSchemeColorIndex: reader.readLongOrNull(offsets[24]),
|
||||
doubleTapAnimationSpeed: reader.readLongOrNull(offsets[20]),
|
||||
downloadLocation: reader.readStringOrNull(offsets[21]),
|
||||
downloadOnlyOnWifi: reader.readBoolOrNull(offsets[22]),
|
||||
flexColorSchemeBlendLevel: reader.readDoubleOrNull(offsets[24]),
|
||||
flexSchemeColorIndex: reader.readLongOrNull(offsets[25]),
|
||||
id: id,
|
||||
incognitoMode: reader.readBoolOrNull(offsets[25]),
|
||||
libraryDownloadedChapters: reader.readBoolOrNull(offsets[26]),
|
||||
libraryFilterAnimeBookMarkedType: reader.readLongOrNull(offsets[27]),
|
||||
libraryFilterAnimeDownloadType: reader.readLongOrNull(offsets[28]),
|
||||
libraryFilterAnimeStartedType: reader.readLongOrNull(offsets[29]),
|
||||
libraryFilterAnimeUnreadType: reader.readLongOrNull(offsets[30]),
|
||||
libraryFilterMangasBookMarkedType: reader.readLongOrNull(offsets[31]),
|
||||
libraryFilterMangasDownloadType: reader.readLongOrNull(offsets[32]),
|
||||
libraryFilterMangasStartedType: reader.readLongOrNull(offsets[33]),
|
||||
libraryFilterMangasUnreadType: reader.readLongOrNull(offsets[34]),
|
||||
libraryLocalSource: reader.readBoolOrNull(offsets[35]),
|
||||
libraryShowCategoryTabs: reader.readBoolOrNull(offsets[36]),
|
||||
libraryShowContinueReadingButton: reader.readBoolOrNull(offsets[37]),
|
||||
libraryShowLanguage: reader.readBoolOrNull(offsets[38]),
|
||||
libraryShowNumbersOfItems: reader.readBoolOrNull(offsets[39]),
|
||||
onlyIncludePinnedSources: reader.readBoolOrNull(offsets[41]),
|
||||
pagePreloadAmount: reader.readLongOrNull(offsets[42]),
|
||||
incognitoMode: reader.readBoolOrNull(offsets[26]),
|
||||
libraryDownloadedChapters: reader.readBoolOrNull(offsets[27]),
|
||||
libraryFilterAnimeBookMarkedType: reader.readLongOrNull(offsets[28]),
|
||||
libraryFilterAnimeDownloadType: reader.readLongOrNull(offsets[29]),
|
||||
libraryFilterAnimeStartedType: reader.readLongOrNull(offsets[30]),
|
||||
libraryFilterAnimeUnreadType: reader.readLongOrNull(offsets[31]),
|
||||
libraryFilterMangasBookMarkedType: reader.readLongOrNull(offsets[32]),
|
||||
libraryFilterMangasDownloadType: reader.readLongOrNull(offsets[33]),
|
||||
libraryFilterMangasStartedType: reader.readLongOrNull(offsets[34]),
|
||||
libraryFilterMangasUnreadType: reader.readLongOrNull(offsets[35]),
|
||||
libraryLocalSource: reader.readBoolOrNull(offsets[36]),
|
||||
libraryShowCategoryTabs: reader.readBoolOrNull(offsets[37]),
|
||||
libraryShowContinueReadingButton: reader.readBoolOrNull(offsets[38]),
|
||||
libraryShowLanguage: reader.readBoolOrNull(offsets[39]),
|
||||
libraryShowNumbersOfItems: reader.readBoolOrNull(offsets[40]),
|
||||
onlyIncludePinnedSources: reader.readBoolOrNull(offsets[42]),
|
||||
pagePreloadAmount: reader.readLongOrNull(offsets[43]),
|
||||
personalReaderModeList: reader.readObjectList<PersonalReaderMode>(
|
||||
offsets[43],
|
||||
offsets[44],
|
||||
PersonalReaderModeSchema.deserialize,
|
||||
allOffsets,
|
||||
PersonalReaderMode(),
|
||||
),
|
||||
pureBlackDarkMode: reader.readBoolOrNull(offsets[44]),
|
||||
relativeTimesTamps: reader.readLongOrNull(offsets[45]),
|
||||
saveAsCBZArchive: reader.readBoolOrNull(offsets[46]),
|
||||
pureBlackDarkMode: reader.readBoolOrNull(offsets[45]),
|
||||
relativeTimesTamps: reader.readLongOrNull(offsets[46]),
|
||||
saveAsCBZArchive: reader.readBoolOrNull(offsets[47]),
|
||||
scaleType:
|
||||
_SettingsscaleTypeValueEnumMap[reader.readByteOrNull(offsets[47])] ??
|
||||
_SettingsscaleTypeValueEnumMap[reader.readByteOrNull(offsets[48])] ??
|
||||
ScaleType.fitScreen,
|
||||
showNSFW: reader.readBoolOrNull(offsets[48]),
|
||||
showPagesNumber: reader.readBoolOrNull(offsets[49]),
|
||||
showNSFW: reader.readBoolOrNull(offsets[49]),
|
||||
showPagesNumber: reader.readBoolOrNull(offsets[50]),
|
||||
sortChapterList: reader.readObjectList<SortChapter>(
|
||||
offsets[50],
|
||||
offsets[51],
|
||||
SortChapterSchema.deserialize,
|
||||
allOffsets,
|
||||
SortChapter(),
|
||||
),
|
||||
sortLibraryAnime: reader.readObjectOrNull<SortLibraryManga>(
|
||||
offsets[51],
|
||||
SortLibraryMangaSchema.deserialize,
|
||||
allOffsets,
|
||||
),
|
||||
sortLibraryManga: reader.readObjectOrNull<SortLibraryManga>(
|
||||
offsets[52],
|
||||
SortLibraryMangaSchema.deserialize,
|
||||
allOffsets,
|
||||
),
|
||||
themeIsDark: reader.readBoolOrNull(offsets[53]),
|
||||
userAgent: reader.readStringOrNull(offsets[54]),
|
||||
sortLibraryManga: reader.readObjectOrNull<SortLibraryManga>(
|
||||
offsets[53],
|
||||
SortLibraryMangaSchema.deserialize,
|
||||
allOffsets,
|
||||
),
|
||||
themeIsDark: reader.readBoolOrNull(offsets[54]),
|
||||
userAgent: reader.readStringOrNull(offsets[55]),
|
||||
);
|
||||
object.chapterFilterBookmarkedList =
|
||||
reader.readObjectList<ChapterFilterBookmarked>(
|
||||
|
|
@ -761,13 +768,13 @@ Settings _settingsDeserialize(
|
|||
ChapterFilterUnread(),
|
||||
);
|
||||
object.filterScanlatorList = reader.readObjectList<FilterScanlator>(
|
||||
offsets[22],
|
||||
offsets[23],
|
||||
FilterScanlatorSchema.deserialize,
|
||||
allOffsets,
|
||||
FilterScanlator(),
|
||||
);
|
||||
object.locale = reader.readObjectOrNull<L10nLocale>(
|
||||
offsets[40],
|
||||
offsets[41],
|
||||
L10nLocaleSchema.deserialize,
|
||||
allOffsets,
|
||||
);
|
||||
|
|
@ -837,46 +844,46 @@ P _settingsDeserializeProp<P>(
|
|||
ChapterPageurls(),
|
||||
)) as P;
|
||||
case 14:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 15:
|
||||
return (reader.readObjectList<Cookie>(
|
||||
offset,
|
||||
CookieSchema.deserialize,
|
||||
allOffsets,
|
||||
Cookie(),
|
||||
)) as P;
|
||||
case 15:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 16:
|
||||
return (reader.readStringOrNull(offset)) as P;
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 17:
|
||||
return (reader.readStringOrNull(offset)) as P;
|
||||
case 18:
|
||||
return (_SettingsdefaultReaderModeValueEnumMap[
|
||||
reader.readByteOrNull(offset)] ??
|
||||
ReaderMode.vertical) as P;
|
||||
case 18:
|
||||
case 19:
|
||||
return (_SettingsdisplayTypeValueEnumMap[reader.readByteOrNull(offset)] ??
|
||||
DisplayType.compactGrid) as P;
|
||||
case 19:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 20:
|
||||
return (reader.readStringOrNull(offset)) as P;
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 21:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
return (reader.readStringOrNull(offset)) as P;
|
||||
case 22:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 23:
|
||||
return (reader.readObjectList<FilterScanlator>(
|
||||
offset,
|
||||
FilterScanlatorSchema.deserialize,
|
||||
allOffsets,
|
||||
FilterScanlator(),
|
||||
)) as P;
|
||||
case 23:
|
||||
return (reader.readDoubleOrNull(offset)) as P;
|
||||
case 24:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
return (reader.readDoubleOrNull(offset)) as P;
|
||||
case 25:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 26:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 27:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 28:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 29:
|
||||
|
|
@ -892,7 +899,7 @@ P _settingsDeserializeProp<P>(
|
|||
case 34:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 35:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 36:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 37:
|
||||
|
|
@ -902,48 +909,44 @@ P _settingsDeserializeProp<P>(
|
|||
case 39:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 40:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 41:
|
||||
return (reader.readObjectOrNull<L10nLocale>(
|
||||
offset,
|
||||
L10nLocaleSchema.deserialize,
|
||||
allOffsets,
|
||||
)) as P;
|
||||
case 41:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 42:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 43:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 44:
|
||||
return (reader.readObjectList<PersonalReaderMode>(
|
||||
offset,
|
||||
PersonalReaderModeSchema.deserialize,
|
||||
allOffsets,
|
||||
PersonalReaderMode(),
|
||||
)) as P;
|
||||
case 44:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 45:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 46:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 46:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 47:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 48:
|
||||
return (_SettingsscaleTypeValueEnumMap[reader.readByteOrNull(offset)] ??
|
||||
ScaleType.fitScreen) as P;
|
||||
case 48:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 49:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 50:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 51:
|
||||
return (reader.readObjectList<SortChapter>(
|
||||
offset,
|
||||
SortChapterSchema.deserialize,
|
||||
allOffsets,
|
||||
SortChapter(),
|
||||
)) as P;
|
||||
case 51:
|
||||
return (reader.readObjectOrNull<SortLibraryManga>(
|
||||
offset,
|
||||
SortLibraryMangaSchema.deserialize,
|
||||
allOffsets,
|
||||
)) as P;
|
||||
case 52:
|
||||
return (reader.readObjectOrNull<SortLibraryManga>(
|
||||
offset,
|
||||
|
|
@ -951,8 +954,14 @@ P _settingsDeserializeProp<P>(
|
|||
allOffsets,
|
||||
)) as P;
|
||||
case 53:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
return (reader.readObjectOrNull<SortLibraryManga>(
|
||||
offset,
|
||||
SortLibraryMangaSchema.deserialize,
|
||||
allOffsets,
|
||||
)) as P;
|
||||
case 54:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 55:
|
||||
return (reader.readStringOrNull(offset)) as P;
|
||||
default:
|
||||
throw IsarError('Unknown property with id $propertyId');
|
||||
|
|
@ -1357,28 +1366,28 @@ extension SettingsQueryFilter
|
|||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterFilterCondition>
|
||||
autoUpdateExtensionsIsNull() {
|
||||
autoExtensionsUpdatesIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'autoUpdateExtensions',
|
||||
property: r'autoExtensionsUpdates',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterFilterCondition>
|
||||
autoUpdateExtensionsIsNotNull() {
|
||||
autoExtensionsUpdatesIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'autoUpdateExtensions',
|
||||
property: r'autoExtensionsUpdates',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterFilterCondition>
|
||||
autoUpdateExtensionsEqualTo(bool? value) {
|
||||
autoExtensionsUpdatesEqualTo(bool? value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'autoUpdateExtensions',
|
||||
property: r'autoExtensionsUpdates',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
|
|
@ -1919,6 +1928,34 @@ extension SettingsQueryFilter
|
|||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterFilterCondition>
|
||||
checkForExtensionUpdatesIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'checkForExtensionUpdates',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterFilterCondition>
|
||||
checkForExtensionUpdatesIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'checkForExtensionUpdates',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterFilterCondition>
|
||||
checkForExtensionUpdatesEqualTo(bool? value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'checkForExtensionUpdates',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterFilterCondition> cookiesListIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
|
|
@ -4728,16 +4765,30 @@ extension SettingsQuerySortBy on QueryBuilder<Settings, Settings, QSortBy> {
|
|||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy> sortByAutoUpdateExtensions() {
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy> sortByAutoExtensionsUpdates() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'autoUpdateExtensions', Sort.asc);
|
||||
return query.addSortBy(r'autoExtensionsUpdates', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy>
|
||||
sortByAutoUpdateExtensionsDesc() {
|
||||
sortByAutoExtensionsUpdatesDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'autoUpdateExtensions', Sort.desc);
|
||||
return query.addSortBy(r'autoExtensionsUpdates', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy>
|
||||
sortByCheckForExtensionUpdates() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'checkForExtensionUpdates', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy>
|
||||
sortByCheckForExtensionUpdatesDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'checkForExtensionUpdates', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -5299,16 +5350,30 @@ extension SettingsQuerySortThenBy
|
|||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy> thenByAutoUpdateExtensions() {
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy> thenByAutoExtensionsUpdates() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'autoUpdateExtensions', Sort.asc);
|
||||
return query.addSortBy(r'autoExtensionsUpdates', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy>
|
||||
thenByAutoUpdateExtensionsDesc() {
|
||||
thenByAutoExtensionsUpdatesDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'autoUpdateExtensions', Sort.desc);
|
||||
return query.addSortBy(r'autoExtensionsUpdates', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy>
|
||||
thenByCheckForExtensionUpdates() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'checkForExtensionUpdates', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy>
|
||||
thenByCheckForExtensionUpdatesDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'checkForExtensionUpdates', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -5825,9 +5890,17 @@ extension SettingsQueryWhereDistinct
|
|||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QDistinct> distinctByAutoUpdateExtensions() {
|
||||
QueryBuilder<Settings, Settings, QDistinct>
|
||||
distinctByAutoExtensionsUpdates() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addDistinctBy(r'autoUpdateExtensions');
|
||||
return query.addDistinctBy(r'autoExtensionsUpdates');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QDistinct>
|
||||
distinctByCheckForExtensionUpdates() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addDistinctBy(r'checkForExtensionUpdates');
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -6120,9 +6193,9 @@ extension SettingsQueryProperty
|
|||
}
|
||||
|
||||
QueryBuilder<Settings, bool?, QQueryOperations>
|
||||
autoUpdateExtensionsProperty() {
|
||||
autoExtensionsUpdatesProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'autoUpdateExtensions');
|
||||
return query.addPropertyName(r'autoExtensionsUpdates');
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -6161,6 +6234,13 @@ extension SettingsQueryProperty
|
|||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, bool?, QQueryOperations>
|
||||
checkForExtensionUpdatesProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'checkForExtensionUpdates');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, List<Cookie>?, QQueryOperations>
|
||||
cookiesListProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import 'dart:convert';
|
||||
import 'package:mangayomi/main.dart';
|
||||
import 'package:mangayomi/models/settings.dart';
|
||||
import 'package:mangayomi/models/source.dart';
|
||||
import 'package:mangayomi/modules/browse/extension/providers/fetch_manga_sources.dart';
|
||||
import 'package:mangayomi/modules/more/settings/browse/providers/browse_state_provider.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
|
|
@ -10,62 +10,31 @@ part 'fetch_anime_sources.g.dart';
|
|||
|
||||
@riverpod
|
||||
Future fetchAnimeSourcesList(FetchAnimeSourcesListRef ref, {int? id}) async {
|
||||
final info = await PackageInfo.fromPlatform();
|
||||
final req = await http.get(Uri.parse(
|
||||
"https://kodjodevf.github.io/mangayomi-extensions/anime_index.json"));
|
||||
final res = jsonDecode(req.body) as List;
|
||||
if (ref.watch(checkForExtensionsUpdateStateProvider)) {
|
||||
final info = await PackageInfo.fromPlatform();
|
||||
final req = await http.get(Uri.parse(
|
||||
"https://kodjodevf.github.io/mangayomi-extensions/anime_index.json"));
|
||||
final res = jsonDecode(req.body) as List;
|
||||
|
||||
final sourceList = res.map((e) => Source.fromJson(e)).toList();
|
||||
final sourceList = res.map((e) => Source.fromJson(e)).toList();
|
||||
|
||||
isar.writeTxnSync(() async {
|
||||
for (var source in sourceList) {
|
||||
if (source.appMinVerReq != null) {
|
||||
if (compareVersions(info.version, source.appMinVerReq!) > -1) {
|
||||
if (!source.isManga!) {
|
||||
if (id != null) {
|
||||
if (id == source.id) {
|
||||
final sourc = isar.sources.getSync(id)!;
|
||||
final req = await http.get(Uri.parse(source.sourceCodeUrl!));
|
||||
final headers = await getHeaders(req.body, source.baseUrl!);
|
||||
isar.writeTxnSync(() {
|
||||
isar.sources.putSync(sourc
|
||||
..headers = headers ?? ""
|
||||
..isAdded = true
|
||||
..sourceCode = req.body
|
||||
..sourceCodeUrl = source.sourceCodeUrl
|
||||
..id = id
|
||||
..apiUrl = source.apiUrl
|
||||
..baseUrl = source.baseUrl
|
||||
..dateFormat = source.dateFormat
|
||||
..dateFormatLocale = source.dateFormatLocale
|
||||
..hasCloudflare = source.hasCloudflare
|
||||
..iconUrl = source.iconUrl
|
||||
..typeSource = source.typeSource
|
||||
..lang = source.lang
|
||||
..isNsfw = source.isNsfw
|
||||
..name = source.name
|
||||
..version = source.version
|
||||
..versionLast = source.version
|
||||
..isManga = source.isManga
|
||||
..isFullData = source.isFullData ?? false
|
||||
..appMinVerReq = source.appMinVerReq);
|
||||
});
|
||||
// log("successfully installed");
|
||||
}
|
||||
} else if (isar.sources.getSync(source.id!) != null) {
|
||||
// log("exist");
|
||||
final sourc = isar.sources.getSync(source.id!)!;
|
||||
if (compareVersions(sourc.version!, source.version!) < 0) {
|
||||
// log("update aivalable auto update");
|
||||
if (isar.settings.getSync(227)!.autoUpdateExtensions ?? false) {
|
||||
isar.writeTxnSync(() async {
|
||||
for (var source in sourceList) {
|
||||
if (source.appMinVerReq != null) {
|
||||
if (compareVersions(info.version, source.appMinVerReq!) > -1) {
|
||||
if (!source.isManga!) {
|
||||
if (id != null) {
|
||||
if (id == source.id) {
|
||||
final sourc = isar.sources.getSync(id)!;
|
||||
final req = await http.get(Uri.parse(source.sourceCodeUrl!));
|
||||
final headers = await getHeaders(req.body, source.baseUrl!);
|
||||
isar.writeTxnSync(() {
|
||||
isar.sources.putSync(sourc
|
||||
..headers = headers
|
||||
..headers = headers ?? ""
|
||||
..isAdded = true
|
||||
..sourceCode = req.body
|
||||
..sourceCodeUrl = source.sourceCodeUrl
|
||||
..id = source.id
|
||||
..id = id
|
||||
..apiUrl = source.apiUrl
|
||||
..baseUrl = source.baseUrl
|
||||
..dateFormat = source.dateFormat
|
||||
|
|
@ -73,46 +42,80 @@ Future fetchAnimeSourcesList(FetchAnimeSourcesListRef ref, {int? id}) async {
|
|||
..hasCloudflare = source.hasCloudflare
|
||||
..iconUrl = source.iconUrl
|
||||
..typeSource = source.typeSource
|
||||
..isFullData = source.isFullData ?? false
|
||||
..lang = source.lang
|
||||
..isNsfw = source.isNsfw
|
||||
..name = source.name
|
||||
..version = source.version
|
||||
..versionLast = source.version
|
||||
..isManga = source.isManga
|
||||
..isFullData = source.isFullData
|
||||
..isFullData = source.isFullData ?? false
|
||||
..appMinVerReq = source.appMinVerReq);
|
||||
});
|
||||
} else {
|
||||
// log("update aivalable");
|
||||
isar.sources.putSync(sourc..versionLast = source.version);
|
||||
// log("successfully installed");
|
||||
}
|
||||
} else if (isar.sources.getSync(source.id!) != null) {
|
||||
// log("exist");
|
||||
final sourc = isar.sources.getSync(source.id!)!;
|
||||
if (compareVersions(sourc.version!, source.version!) < 0) {
|
||||
// log("update aivalable auto update");
|
||||
if (ref.watch(autoUpdateExtensionsStateProvider)) {
|
||||
final req =
|
||||
await http.get(Uri.parse(source.sourceCodeUrl!));
|
||||
final headers = await getHeaders(req.body, source.baseUrl!);
|
||||
isar.writeTxnSync(() {
|
||||
isar.sources.putSync(sourc
|
||||
..headers = headers
|
||||
..sourceCode = req.body
|
||||
..sourceCodeUrl = source.sourceCodeUrl
|
||||
..id = source.id
|
||||
..apiUrl = source.apiUrl
|
||||
..baseUrl = source.baseUrl
|
||||
..dateFormat = source.dateFormat
|
||||
..dateFormatLocale = source.dateFormatLocale
|
||||
..hasCloudflare = source.hasCloudflare
|
||||
..iconUrl = source.iconUrl
|
||||
..typeSource = source.typeSource
|
||||
..isFullData = source.isFullData ?? false
|
||||
..lang = source.lang
|
||||
..isNsfw = source.isNsfw
|
||||
..name = source.name
|
||||
..version = source.version
|
||||
..versionLast = source.version
|
||||
..isManga = source.isManga
|
||||
..isFullData = source.isFullData
|
||||
..appMinVerReq = source.appMinVerReq);
|
||||
});
|
||||
} else {
|
||||
// log("update aivalable");
|
||||
isar.sources.putSync(sourc..versionLast = source.version);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
isar.sources.putSync(Source()
|
||||
..sourceCodeUrl = source.sourceCodeUrl
|
||||
..id = source.id
|
||||
..sourceCode = source.sourceCode
|
||||
..apiUrl = source.apiUrl
|
||||
..baseUrl = source.baseUrl
|
||||
..dateFormat = source.dateFormat
|
||||
..dateFormatLocale = source.dateFormatLocale
|
||||
..hasCloudflare = source.hasCloudflare
|
||||
..iconUrl = source.iconUrl
|
||||
..typeSource = source.typeSource
|
||||
..lang = source.lang
|
||||
..isNsfw = source.isNsfw
|
||||
..name = source.name
|
||||
..version = source.version
|
||||
..versionLast = source.version
|
||||
..isManga = source.isManga
|
||||
..isFullData = source.isFullData ?? false
|
||||
..appMinVerReq = source.appMinVerReq);
|
||||
// log("new source");
|
||||
}
|
||||
} else {
|
||||
isar.sources.putSync(Source()
|
||||
..sourceCodeUrl = source.sourceCodeUrl
|
||||
..id = source.id
|
||||
..sourceCode = source.sourceCode
|
||||
..apiUrl = source.apiUrl
|
||||
..baseUrl = source.baseUrl
|
||||
..dateFormat = source.dateFormat
|
||||
..dateFormatLocale = source.dateFormatLocale
|
||||
..hasCloudflare = source.hasCloudflare
|
||||
..iconUrl = source.iconUrl
|
||||
..typeSource = source.typeSource
|
||||
..lang = source.lang
|
||||
..isNsfw = source.isNsfw
|
||||
..name = source.name
|
||||
..version = source.version
|
||||
..versionLast = source.version
|
||||
..isManga = source.isManga
|
||||
..isFullData = source.isFullData ?? false
|
||||
..appMinVerReq = source.appMinVerReq);
|
||||
// log("new source");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ part of 'fetch_anime_sources.dart';
|
|||
// **************************************************************************
|
||||
|
||||
String _$fetchAnimeSourcesListHash() =>
|
||||
r'c497fc574934c7b3313d19a518097460f95dbdf1';
|
||||
r'51594d405256b56228e36f285f095e24333ea273';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ import 'package:dart_eval/stdlib/core.dart';
|
|||
import 'package:mangayomi/eval/compiler/compiler.dart';
|
||||
import 'package:mangayomi/eval/runtime/runtime.dart';
|
||||
import 'package:mangayomi/main.dart';
|
||||
import 'package:mangayomi/models/settings.dart';
|
||||
import 'package:mangayomi/models/source.dart';
|
||||
import 'package:mangayomi/modules/more/settings/browse/providers/browse_state_provider.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
|
|
@ -12,62 +12,31 @@ part 'fetch_manga_sources.g.dart';
|
|||
|
||||
@riverpod
|
||||
Future fetchMangaSourcesList(FetchMangaSourcesListRef ref, {int? id}) async {
|
||||
final info = await PackageInfo.fromPlatform();
|
||||
final req = await http.get(
|
||||
Uri.parse("https://kodjodevf.github.io/mangayomi-extensions/index.json"));
|
||||
final res = jsonDecode(req.body) as List;
|
||||
if (ref.watch(checkForExtensionsUpdateStateProvider)) {
|
||||
final info = await PackageInfo.fromPlatform();
|
||||
final req = await http.get(Uri.parse(
|
||||
"https://kodjodevf.github.io/mangayomi-extensions/index.json"));
|
||||
final res = jsonDecode(req.body) as List;
|
||||
|
||||
final sourceList = res.map((e) => Source.fromJson(e)).toList();
|
||||
final sourceList = res.map((e) => Source.fromJson(e)).toList();
|
||||
|
||||
isar.writeTxnSync(() async {
|
||||
for (var source in sourceList) {
|
||||
if (source.appMinVerReq != null) {
|
||||
if (compareVersions(info.version, source.appMinVerReq!) > -1) {
|
||||
if (source.isManga!) {
|
||||
if (id != null) {
|
||||
if (id == source.id) {
|
||||
final sourc = isar.sources.getSync(id)!;
|
||||
final req = await http.get(Uri.parse(source.sourceCodeUrl!));
|
||||
final headers = await getHeaders(req.body, source.baseUrl!);
|
||||
isar.writeTxnSync(() {
|
||||
isar.sources.putSync(sourc
|
||||
..headers = headers ?? ""
|
||||
..isAdded = true
|
||||
..sourceCode = req.body
|
||||
..sourceCodeUrl = source.sourceCodeUrl
|
||||
..id = id
|
||||
..apiUrl = source.apiUrl
|
||||
..baseUrl = source.baseUrl
|
||||
..dateFormat = source.dateFormat
|
||||
..dateFormatLocale = source.dateFormatLocale
|
||||
..hasCloudflare = source.hasCloudflare
|
||||
..iconUrl = source.iconUrl
|
||||
..typeSource = source.typeSource
|
||||
..lang = source.lang
|
||||
..isNsfw = source.isNsfw
|
||||
..name = source.name
|
||||
..version = source.version
|
||||
..versionLast = source.version
|
||||
..isManga = source.isManga
|
||||
..isFullData = source.isFullData ?? false
|
||||
..appMinVerReq = source.appMinVerReq);
|
||||
});
|
||||
// log("successfully installed");
|
||||
}
|
||||
} else if (isar.sources.getSync(source.id!) != null) {
|
||||
// log("exist");
|
||||
final sourc = isar.sources.getSync(source.id!)!;
|
||||
if (compareVersions(sourc.version!, source.version!) < 0) {
|
||||
// log("update aivalable auto update");
|
||||
if (isar.settings.getSync(227)!.autoUpdateExtensions ?? false) {
|
||||
isar.writeTxnSync(() async {
|
||||
for (var source in sourceList) {
|
||||
if (source.appMinVerReq != null) {
|
||||
if (compareVersions(info.version, source.appMinVerReq!) > -1) {
|
||||
if (source.isManga!) {
|
||||
if (id != null) {
|
||||
if (id == source.id) {
|
||||
final sourc = isar.sources.getSync(id)!;
|
||||
final req = await http.get(Uri.parse(source.sourceCodeUrl!));
|
||||
final headers = await getHeaders(req.body, source.baseUrl!);
|
||||
isar.writeTxnSync(() {
|
||||
isar.sources.putSync(sourc
|
||||
..headers = headers
|
||||
..headers = headers ?? ""
|
||||
..isAdded = true
|
||||
..sourceCode = req.body
|
||||
..sourceCodeUrl = source.sourceCodeUrl
|
||||
..id = source.id
|
||||
..id = id
|
||||
..apiUrl = source.apiUrl
|
||||
..baseUrl = source.baseUrl
|
||||
..dateFormat = source.dateFormat
|
||||
|
|
@ -75,48 +44,82 @@ Future fetchMangaSourcesList(FetchMangaSourcesListRef ref, {int? id}) async {
|
|||
..hasCloudflare = source.hasCloudflare
|
||||
..iconUrl = source.iconUrl
|
||||
..typeSource = source.typeSource
|
||||
..isFullData = source.isFullData ?? false
|
||||
..lang = source.lang
|
||||
..isNsfw = source.isNsfw
|
||||
..name = source.name
|
||||
..version = source.version
|
||||
..versionLast = source.version
|
||||
..isManga = source.isManga
|
||||
..isFullData = source.isFullData
|
||||
..isFullData = source.isFullData ?? false
|
||||
..appMinVerReq = source.appMinVerReq);
|
||||
});
|
||||
} else {
|
||||
// log("update aivalable");
|
||||
isar.sources.putSync(sourc..versionLast = source.version);
|
||||
// log("successfully installed");
|
||||
}
|
||||
} else if (isar.sources.getSync(source.id!) != null) {
|
||||
// log("exist");
|
||||
final sourc = isar.sources.getSync(source.id!)!;
|
||||
if (compareVersions(sourc.version!, source.version!) < 0) {
|
||||
// log("update aivalable auto update");
|
||||
if (ref.watch(autoUpdateExtensionsStateProvider)) {
|
||||
final req =
|
||||
await http.get(Uri.parse(source.sourceCodeUrl!));
|
||||
final headers = await getHeaders(req.body, source.baseUrl!);
|
||||
isar.writeTxnSync(() {
|
||||
isar.sources.putSync(sourc
|
||||
..headers = headers
|
||||
..sourceCode = req.body
|
||||
..sourceCodeUrl = source.sourceCodeUrl
|
||||
..id = source.id
|
||||
..apiUrl = source.apiUrl
|
||||
..baseUrl = source.baseUrl
|
||||
..dateFormat = source.dateFormat
|
||||
..dateFormatLocale = source.dateFormatLocale
|
||||
..hasCloudflare = source.hasCloudflare
|
||||
..iconUrl = source.iconUrl
|
||||
..typeSource = source.typeSource
|
||||
..isFullData = source.isFullData ?? false
|
||||
..lang = source.lang
|
||||
..isNsfw = source.isNsfw
|
||||
..name = source.name
|
||||
..version = source.version
|
||||
..versionLast = source.version
|
||||
..isManga = source.isManga
|
||||
..isFullData = source.isFullData
|
||||
..appMinVerReq = source.appMinVerReq);
|
||||
});
|
||||
} else {
|
||||
// log("update aivalable");
|
||||
isar.sources.putSync(sourc..versionLast = source.version);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
isar.sources.putSync(Source()
|
||||
..sourceCodeUrl = source.sourceCodeUrl
|
||||
..id = source.id
|
||||
..sourceCode = source.sourceCode
|
||||
..apiUrl = source.apiUrl
|
||||
..baseUrl = source.baseUrl
|
||||
..dateFormat = source.dateFormat
|
||||
..dateFormatLocale = source.dateFormatLocale
|
||||
..hasCloudflare = source.hasCloudflare
|
||||
..iconUrl = source.iconUrl
|
||||
..typeSource = source.typeSource
|
||||
..lang = source.lang
|
||||
..isNsfw = source.isNsfw
|
||||
..name = source.name
|
||||
..version = source.version
|
||||
..versionLast = source.version
|
||||
..isManga = source.isManga
|
||||
..isFullData = source.isFullData ?? false
|
||||
..appMinVerReq = source.appMinVerReq);
|
||||
// log("new source");
|
||||
}
|
||||
} else {
|
||||
isar.sources.putSync(Source()
|
||||
..sourceCodeUrl = source.sourceCodeUrl
|
||||
..id = source.id
|
||||
..sourceCode = source.sourceCode
|
||||
..apiUrl = source.apiUrl
|
||||
..baseUrl = source.baseUrl
|
||||
..dateFormat = source.dateFormat
|
||||
..dateFormatLocale = source.dateFormatLocale
|
||||
..hasCloudflare = source.hasCloudflare
|
||||
..iconUrl = source.iconUrl
|
||||
..typeSource = source.typeSource
|
||||
..lang = source.lang
|
||||
..isNsfw = source.isNsfw
|
||||
..name = source.name
|
||||
..version = source.version
|
||||
..versionLast = source.version
|
||||
..isManga = source.isManga
|
||||
..isFullData = source.isFullData ?? false
|
||||
..appMinVerReq = source.appMinVerReq);
|
||||
// log("new source");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
int compareVersions(String version1, String version2) {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ part of 'fetch_manga_sources.dart';
|
|||
// **************************************************************************
|
||||
|
||||
String _$fetchMangaSourcesListHash() =>
|
||||
r'6cea7a764dfc6d93e38854c9d3adb9fd9bd91de2';
|
||||
r'719d582950ddb40cf7367ddca871ec46145ab0eb';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ part of 'local_archive.dart';
|
|||
// **************************************************************************
|
||||
|
||||
String _$importArchivesFromFileHash() =>
|
||||
r'afa44597ec3e225e22be1207958b6f4553420fb8';
|
||||
r'421b9f4f54cd22968cfc6447f174470712d684fc';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ class BrowseSScreen extends ConsumerWidget {
|
|||
final showNSFWS = ref.watch(showNSFWStateProvider);
|
||||
final onlyIncludePinnedSource =
|
||||
ref.watch(onlyIncludePinnedSourceStateProvider);
|
||||
final checkForExtensionUpdates =
|
||||
ref.watch(checkForExtensionsUpdateStateProvider);
|
||||
final autoUpdateExtensions = ref.watch(autoUpdateExtensionsStateProvider);
|
||||
final l10n = l10nLocalizations(context);
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
|
|
@ -19,6 +22,44 @@ class BrowseSScreen extends ConsumerWidget {
|
|||
),
|
||||
body: Column(
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(bottom: 30, top: 20),
|
||||
child: Column(
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 15),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(l10n.extensions,
|
||||
style: TextStyle(
|
||||
fontSize: 13, color: primaryColor(context))),
|
||||
],
|
||||
),
|
||||
),
|
||||
SwitchListTile(
|
||||
value: checkForExtensionUpdates,
|
||||
title: Text(l10n.check_for_extension_updates),
|
||||
onChanged: (value) {
|
||||
ref
|
||||
.read(checkForExtensionsUpdateStateProvider.notifier)
|
||||
.set(value);
|
||||
}),
|
||||
if (checkForExtensionUpdates)
|
||||
SwitchListTile(
|
||||
value: autoUpdateExtensions,
|
||||
title: Text(l10n.auto_extensions_updates),
|
||||
subtitle: Text(
|
||||
l10n.auto_extensions_updates_subtitle,
|
||||
style: TextStyle(
|
||||
fontSize: 11, color: secondaryColor(context))),
|
||||
onChanged: (value) {
|
||||
ref
|
||||
.read(autoUpdateExtensionsStateProvider.notifier)
|
||||
.set(value);
|
||||
}),
|
||||
],
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(bottom: 30),
|
||||
child: Column(
|
||||
|
|
|
|||
|
|
@ -31,3 +31,33 @@ class ShowNSFWState extends _$ShowNSFWState {
|
|||
isar.writeTxnSync(() => isar.settings.putSync(settings!..showNSFW = value));
|
||||
}
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class AutoUpdateExtensionsState extends _$AutoUpdateExtensionsState {
|
||||
@override
|
||||
bool build() {
|
||||
return isar.settings.getSync(227)!.autoExtensionsUpdates ?? false;
|
||||
}
|
||||
|
||||
void set(bool value) {
|
||||
final settings = isar.settings.getSync(227);
|
||||
state = value;
|
||||
isar.writeTxnSync(
|
||||
() => isar.settings.putSync(settings!..autoExtensionsUpdates = value));
|
||||
}
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class CheckForExtensionsUpdateState extends _$CheckForExtensionsUpdateState {
|
||||
@override
|
||||
bool build() {
|
||||
return isar.settings.getSync(227)!.checkForExtensionUpdates ?? true;
|
||||
}
|
||||
|
||||
void set(bool value) {
|
||||
final settings = isar.settings.getSync(227);
|
||||
state = value;
|
||||
isar.writeTxnSync(() =>
|
||||
isar.settings.putSync(settings!..checkForExtensionUpdates = value));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,5 +39,39 @@ final showNSFWStateProvider =
|
|||
);
|
||||
|
||||
typedef _$ShowNSFWState = AutoDisposeNotifier<bool>;
|
||||
String _$autoUpdateExtensionsStateHash() =>
|
||||
r'dda58b6f78d486f82150e1edee4c1dadb9776df4';
|
||||
|
||||
/// See also [AutoUpdateExtensionsState].
|
||||
@ProviderFor(AutoUpdateExtensionsState)
|
||||
final autoUpdateExtensionsStateProvider =
|
||||
AutoDisposeNotifierProvider<AutoUpdateExtensionsState, bool>.internal(
|
||||
AutoUpdateExtensionsState.new,
|
||||
name: r'autoUpdateExtensionsStateProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$autoUpdateExtensionsStateHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$AutoUpdateExtensionsState = AutoDisposeNotifier<bool>;
|
||||
String _$checkForExtensionsUpdateStateHash() =>
|
||||
r'1b1f22a50e0862a7d643fbe0fcb5d563bd0169c2';
|
||||
|
||||
/// See also [CheckForExtensionsUpdateState].
|
||||
@ProviderFor(CheckForExtensionsUpdateState)
|
||||
final checkForExtensionsUpdateStateProvider =
|
||||
AutoDisposeNotifierProvider<CheckForExtensionsUpdateState, bool>.internal(
|
||||
CheckForExtensionsUpdateState.new,
|
||||
name: r'checkForExtensionsUpdateStateProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$checkForExtensionsUpdateStateHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$CheckForExtensionsUpdateState = AutoDisposeNotifier<bool>;
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'get_anime_servers.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$getAnimeServersHash() => r'8ca741fabdfe469251370c89edf3405f6738c52f';
|
||||
String _$getAnimeServersHash() => r'26be3f4055c08947e6dca4d8e62abe07ddb98481';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ part of 'get_latest_updates_manga.dart';
|
|||
// **************************************************************************
|
||||
|
||||
String _$getLatestUpdatesMangaHash() =>
|
||||
r'ae5b5ed757a02801592ff62617d1bdea4f763cda';
|
||||
r'b4de1c71b935893780b02be6a4fa1980651a833d';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'get_popular_manga.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$getPopularMangaHash() => r'0ba0bb05d0e47aac2f5f1efb742b0b0f8739b1e8';
|
||||
String _$getPopularMangaHash() => r'f5a1f5a66bad652cb461ef0ed9d30f60ff7a000a';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'search_manga.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$searchMangaHash() => r'99e54e1c87c86e992e4e8234672c4fccac2d3ad0';
|
||||
String _$searchMangaHash() => r'9bbf3d7b3cb8f1aa92201200e6a4616721cd3037';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
Loading…
Reference in a new issue