mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-03-11 17:25:32 +00:00
added option to disable merged library navigation
This commit is contained in:
parent
b4da640df8
commit
c680427c0c
23 changed files with 325 additions and 144 deletions
|
|
@ -479,5 +479,6 @@
|
|||
"track_library_add_confirm": "Add tracked item to local library",
|
||||
"track_library_not_logged": "Login to the corresponding tracker to use this feature!",
|
||||
"track_library_switch": "Switch to another tracker",
|
||||
"go_back": "Go back"
|
||||
"go_back": "Go back",
|
||||
"merge_library_nav_mobile": "Merge library navigation on mobile"
|
||||
}
|
||||
|
|
@ -2999,6 +2999,12 @@ abstract class AppLocalizations {
|
|||
/// In en, this message translates to:
|
||||
/// **'Go back'**
|
||||
String get go_back;
|
||||
|
||||
/// No description provided for @merge_library_nav_mobile.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Merge library navigation on mobile'**
|
||||
String get merge_library_nav_mobile;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
|
|
|||
|
|
@ -1533,4 +1533,7 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get go_back => 'Go back';
|
||||
|
||||
@override
|
||||
String get merge_library_nav_mobile => 'Merge library navigation on mobile';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1546,4 +1546,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get go_back => 'Zurück';
|
||||
|
||||
@override
|
||||
String get merge_library_nav_mobile => 'Merge library navigation on mobile';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1533,4 +1533,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get go_back => 'Go back';
|
||||
|
||||
@override
|
||||
String get merge_library_nav_mobile => 'Merge library navigation on mobile';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1550,6 +1550,9 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get go_back => 'Go back';
|
||||
|
||||
@override
|
||||
String get merge_library_nav_mobile => 'Merge library navigation on mobile';
|
||||
}
|
||||
|
||||
/// The translations for Spanish Castilian, as used in Latin America and the Caribbean (`es_419`).
|
||||
|
|
|
|||
|
|
@ -1555,4 +1555,7 @@ class AppLocalizationsFr extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get go_back => 'Go back';
|
||||
|
||||
@override
|
||||
String get merge_library_nav_mobile => 'Merge library navigation on mobile';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1539,4 +1539,7 @@ class AppLocalizationsId extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get go_back => 'Go back';
|
||||
|
||||
@override
|
||||
String get merge_library_nav_mobile => 'Merge library navigation on mobile';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1549,4 +1549,7 @@ class AppLocalizationsIt extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get go_back => 'Go back';
|
||||
|
||||
@override
|
||||
String get merge_library_nav_mobile => 'Merge library navigation on mobile';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1547,6 +1547,9 @@ class AppLocalizationsPt extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get go_back => 'Go back';
|
||||
|
||||
@override
|
||||
String get merge_library_nav_mobile => 'Merge library navigation on mobile';
|
||||
}
|
||||
|
||||
/// The translations for Portuguese, as used in Brazil (`pt_BR`).
|
||||
|
|
|
|||
|
|
@ -1549,4 +1549,7 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get go_back => 'Go back';
|
||||
|
||||
@override
|
||||
String get merge_library_nav_mobile => 'Merge library navigation on mobile';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1534,4 +1534,7 @@ class AppLocalizationsTh extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get go_back => 'Go back';
|
||||
|
||||
@override
|
||||
String get merge_library_nav_mobile => 'Merge library navigation on mobile';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1540,4 +1540,7 @@ class AppLocalizationsTr extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get go_back => 'Go back';
|
||||
|
||||
@override
|
||||
String get merge_library_nav_mobile => 'Merge library navigation on mobile';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1502,4 +1502,7 @@ class AppLocalizationsZh extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get go_back => 'Go back';
|
||||
|
||||
@override
|
||||
String get merge_library_nav_mobile => 'Merge library navigation on mobile';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -244,6 +244,8 @@ class Settings {
|
|||
|
||||
String? lastTrackerLibraryLocation;
|
||||
|
||||
bool? mergeLibraryNavMobile;
|
||||
|
||||
Settings({
|
||||
this.id = 227,
|
||||
this.displayType = DisplayType.compactGrid,
|
||||
|
|
@ -352,6 +354,7 @@ class Settings {
|
|||
this.animeExtensionsRepo,
|
||||
this.novelExtensionsRepo,
|
||||
this.lastTrackerLibraryLocation,
|
||||
this.mergeLibraryNavMobile = false,
|
||||
});
|
||||
|
||||
Settings.fromJson(Map<String, dynamic> json) {
|
||||
|
|
@ -566,6 +569,7 @@ class Settings {
|
|||
.toList();
|
||||
}
|
||||
lastTrackerLibraryLocation = json['lastTrackerLibraryLocation'];
|
||||
mergeLibraryNavMobile = json['mergeLibraryNavMobile'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
|
|
@ -697,6 +701,7 @@ class Settings {
|
|||
'animeExtensionsRepo': animeExtensionsRepo?.map((e) => e.toJson()).toList(),
|
||||
'novelExtensionsRepo': novelExtensionsRepo?.map((e) => e.toJson()).toList(),
|
||||
'lastTrackerLibraryLocation': lastTrackerLibraryLocation,
|
||||
'mergeLibraryNavMobile': mergeLibraryNavMobile,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -437,174 +437,179 @@ const SettingsSchema = CollectionSchema(
|
|||
name: r'markEpisodeAsSeenType',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'navigationOrder': PropertySchema(
|
||||
r'mergeLibraryNavMobile': PropertySchema(
|
||||
id: 80,
|
||||
name: r'mergeLibraryNavMobile',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'navigationOrder': PropertySchema(
|
||||
id: 81,
|
||||
name: r'navigationOrder',
|
||||
type: IsarType.stringList,
|
||||
),
|
||||
r'novelDisplayType': PropertySchema(
|
||||
id: 81,
|
||||
id: 82,
|
||||
name: r'novelDisplayType',
|
||||
type: IsarType.byte,
|
||||
enumMap: _SettingsnovelDisplayTypeEnumValueMap,
|
||||
),
|
||||
r'novelExtensionsRepo': PropertySchema(
|
||||
id: 82,
|
||||
id: 83,
|
||||
name: r'novelExtensionsRepo',
|
||||
type: IsarType.objectList,
|
||||
target: r'Repo',
|
||||
),
|
||||
r'novelFontSize': PropertySchema(
|
||||
id: 83,
|
||||
id: 84,
|
||||
name: r'novelFontSize',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'novelGridSize': PropertySchema(
|
||||
id: 84,
|
||||
id: 85,
|
||||
name: r'novelGridSize',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'novelLibraryDownloadedChapters': PropertySchema(
|
||||
id: 85,
|
||||
id: 86,
|
||||
name: r'novelLibraryDownloadedChapters',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'novelLibraryLocalSource': PropertySchema(
|
||||
id: 86,
|
||||
id: 87,
|
||||
name: r'novelLibraryLocalSource',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'novelLibraryShowCategoryTabs': PropertySchema(
|
||||
id: 87,
|
||||
id: 88,
|
||||
name: r'novelLibraryShowCategoryTabs',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'novelLibraryShowContinueReadingButton': PropertySchema(
|
||||
id: 88,
|
||||
id: 89,
|
||||
name: r'novelLibraryShowContinueReadingButton',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'novelLibraryShowLanguage': PropertySchema(
|
||||
id: 89,
|
||||
id: 90,
|
||||
name: r'novelLibraryShowLanguage',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'novelLibraryShowNumbersOfItems': PropertySchema(
|
||||
id: 90,
|
||||
id: 91,
|
||||
name: r'novelLibraryShowNumbersOfItems',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'novelTextAlign': PropertySchema(
|
||||
id: 91,
|
||||
id: 92,
|
||||
name: r'novelTextAlign',
|
||||
type: IsarType.byte,
|
||||
enumMap: _SettingsnovelTextAlignEnumValueMap,
|
||||
),
|
||||
r'onlyIncludePinnedSources': PropertySchema(
|
||||
id: 92,
|
||||
id: 93,
|
||||
name: r'onlyIncludePinnedSources',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'pagePreloadAmount': PropertySchema(
|
||||
id: 93,
|
||||
id: 94,
|
||||
name: r'pagePreloadAmount',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'personalPageModeList': PropertySchema(
|
||||
id: 94,
|
||||
id: 95,
|
||||
name: r'personalPageModeList',
|
||||
type: IsarType.objectList,
|
||||
target: r'PersonalPageMode',
|
||||
),
|
||||
r'personalReaderModeList': PropertySchema(
|
||||
id: 95,
|
||||
id: 96,
|
||||
name: r'personalReaderModeList',
|
||||
type: IsarType.objectList,
|
||||
target: r'PersonalReaderMode',
|
||||
),
|
||||
r'playerSubtitleSettings': PropertySchema(
|
||||
id: 96,
|
||||
id: 97,
|
||||
name: r'playerSubtitleSettings',
|
||||
type: IsarType.object,
|
||||
target: r'PlayerSubtitleSettings',
|
||||
),
|
||||
r'pureBlackDarkMode': PropertySchema(
|
||||
id: 97,
|
||||
id: 98,
|
||||
name: r'pureBlackDarkMode',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'relativeTimesTamps': PropertySchema(
|
||||
id: 98,
|
||||
id: 99,
|
||||
name: r'relativeTimesTamps',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'saveAsCBZArchive': PropertySchema(
|
||||
id: 99,
|
||||
id: 100,
|
||||
name: r'saveAsCBZArchive',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'scaleType': PropertySchema(
|
||||
id: 100,
|
||||
id: 101,
|
||||
name: r'scaleType',
|
||||
type: IsarType.byte,
|
||||
enumMap: _SettingsscaleTypeEnumValueMap,
|
||||
),
|
||||
r'showPagesNumber': PropertySchema(
|
||||
id: 101,
|
||||
id: 102,
|
||||
name: r'showPagesNumber',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'sortChapterList': PropertySchema(
|
||||
id: 102,
|
||||
id: 103,
|
||||
name: r'sortChapterList',
|
||||
type: IsarType.objectList,
|
||||
target: r'SortChapter',
|
||||
),
|
||||
r'sortLibraryAnime': PropertySchema(
|
||||
id: 103,
|
||||
id: 104,
|
||||
name: r'sortLibraryAnime',
|
||||
type: IsarType.object,
|
||||
target: r'SortLibraryManga',
|
||||
),
|
||||
r'sortLibraryManga': PropertySchema(
|
||||
id: 104,
|
||||
id: 105,
|
||||
name: r'sortLibraryManga',
|
||||
type: IsarType.object,
|
||||
target: r'SortLibraryManga',
|
||||
),
|
||||
r'sortLibraryNovel': PropertySchema(
|
||||
id: 105,
|
||||
id: 106,
|
||||
name: r'sortLibraryNovel',
|
||||
type: IsarType.object,
|
||||
target: r'SortLibraryManga',
|
||||
),
|
||||
r'startDatebackup': PropertySchema(
|
||||
id: 106,
|
||||
id: 107,
|
||||
name: r'startDatebackup',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'themeIsDark': PropertySchema(
|
||||
id: 107,
|
||||
id: 108,
|
||||
name: r'themeIsDark',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'updateProgressAfterReading': PropertySchema(
|
||||
id: 108,
|
||||
id: 109,
|
||||
name: r'updateProgressAfterReading',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'useLibass': PropertySchema(
|
||||
id: 109,
|
||||
id: 110,
|
||||
name: r'useLibass',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'usePageTapZones': PropertySchema(
|
||||
id: 110,
|
||||
id: 111,
|
||||
name: r'usePageTapZones',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'userAgent': PropertySchema(
|
||||
id: 111,
|
||||
id: 112,
|
||||
name: r'userAgent',
|
||||
type: IsarType.string,
|
||||
)
|
||||
|
|
@ -1133,78 +1138,79 @@ void _settingsSerialize(
|
|||
writer.writeLong(offsets[77], object.mangaGridSize);
|
||||
writer.writeByte(offsets[78], object.mangaHomeDisplayType.index);
|
||||
writer.writeLong(offsets[79], object.markEpisodeAsSeenType);
|
||||
writer.writeStringList(offsets[80], object.navigationOrder);
|
||||
writer.writeByte(offsets[81], object.novelDisplayType.index);
|
||||
writer.writeBool(offsets[80], object.mergeLibraryNavMobile);
|
||||
writer.writeStringList(offsets[81], object.navigationOrder);
|
||||
writer.writeByte(offsets[82], object.novelDisplayType.index);
|
||||
writer.writeObjectList<Repo>(
|
||||
offsets[82],
|
||||
offsets[83],
|
||||
allOffsets,
|
||||
RepoSchema.serialize,
|
||||
object.novelExtensionsRepo,
|
||||
);
|
||||
writer.writeLong(offsets[83], object.novelFontSize);
|
||||
writer.writeLong(offsets[84], object.novelGridSize);
|
||||
writer.writeBool(offsets[85], object.novelLibraryDownloadedChapters);
|
||||
writer.writeBool(offsets[86], object.novelLibraryLocalSource);
|
||||
writer.writeBool(offsets[87], object.novelLibraryShowCategoryTabs);
|
||||
writer.writeBool(offsets[88], object.novelLibraryShowContinueReadingButton);
|
||||
writer.writeBool(offsets[89], object.novelLibraryShowLanguage);
|
||||
writer.writeBool(offsets[90], object.novelLibraryShowNumbersOfItems);
|
||||
writer.writeByte(offsets[91], object.novelTextAlign.index);
|
||||
writer.writeBool(offsets[92], object.onlyIncludePinnedSources);
|
||||
writer.writeLong(offsets[93], object.pagePreloadAmount);
|
||||
writer.writeLong(offsets[84], object.novelFontSize);
|
||||
writer.writeLong(offsets[85], object.novelGridSize);
|
||||
writer.writeBool(offsets[86], object.novelLibraryDownloadedChapters);
|
||||
writer.writeBool(offsets[87], object.novelLibraryLocalSource);
|
||||
writer.writeBool(offsets[88], object.novelLibraryShowCategoryTabs);
|
||||
writer.writeBool(offsets[89], object.novelLibraryShowContinueReadingButton);
|
||||
writer.writeBool(offsets[90], object.novelLibraryShowLanguage);
|
||||
writer.writeBool(offsets[91], object.novelLibraryShowNumbersOfItems);
|
||||
writer.writeByte(offsets[92], object.novelTextAlign.index);
|
||||
writer.writeBool(offsets[93], object.onlyIncludePinnedSources);
|
||||
writer.writeLong(offsets[94], object.pagePreloadAmount);
|
||||
writer.writeObjectList<PersonalPageMode>(
|
||||
offsets[94],
|
||||
offsets[95],
|
||||
allOffsets,
|
||||
PersonalPageModeSchema.serialize,
|
||||
object.personalPageModeList,
|
||||
);
|
||||
writer.writeObjectList<PersonalReaderMode>(
|
||||
offsets[95],
|
||||
offsets[96],
|
||||
allOffsets,
|
||||
PersonalReaderModeSchema.serialize,
|
||||
object.personalReaderModeList,
|
||||
);
|
||||
writer.writeObject<PlayerSubtitleSettings>(
|
||||
offsets[96],
|
||||
offsets[97],
|
||||
allOffsets,
|
||||
PlayerSubtitleSettingsSchema.serialize,
|
||||
object.playerSubtitleSettings,
|
||||
);
|
||||
writer.writeBool(offsets[97], object.pureBlackDarkMode);
|
||||
writer.writeLong(offsets[98], object.relativeTimesTamps);
|
||||
writer.writeBool(offsets[99], object.saveAsCBZArchive);
|
||||
writer.writeByte(offsets[100], object.scaleType.index);
|
||||
writer.writeBool(offsets[101], object.showPagesNumber);
|
||||
writer.writeBool(offsets[98], object.pureBlackDarkMode);
|
||||
writer.writeLong(offsets[99], object.relativeTimesTamps);
|
||||
writer.writeBool(offsets[100], object.saveAsCBZArchive);
|
||||
writer.writeByte(offsets[101], object.scaleType.index);
|
||||
writer.writeBool(offsets[102], object.showPagesNumber);
|
||||
writer.writeObjectList<SortChapter>(
|
||||
offsets[102],
|
||||
offsets[103],
|
||||
allOffsets,
|
||||
SortChapterSchema.serialize,
|
||||
object.sortChapterList,
|
||||
);
|
||||
writer.writeObject<SortLibraryManga>(
|
||||
offsets[103],
|
||||
offsets[104],
|
||||
allOffsets,
|
||||
SortLibraryMangaSchema.serialize,
|
||||
object.sortLibraryAnime,
|
||||
);
|
||||
writer.writeObject<SortLibraryManga>(
|
||||
offsets[104],
|
||||
offsets[105],
|
||||
allOffsets,
|
||||
SortLibraryMangaSchema.serialize,
|
||||
object.sortLibraryManga,
|
||||
);
|
||||
writer.writeObject<SortLibraryManga>(
|
||||
offsets[105],
|
||||
offsets[106],
|
||||
allOffsets,
|
||||
SortLibraryMangaSchema.serialize,
|
||||
object.sortLibraryNovel,
|
||||
);
|
||||
writer.writeLong(offsets[106], object.startDatebackup);
|
||||
writer.writeBool(offsets[107], object.themeIsDark);
|
||||
writer.writeBool(offsets[108], object.updateProgressAfterReading);
|
||||
writer.writeBool(offsets[109], object.useLibass);
|
||||
writer.writeBool(offsets[110], object.usePageTapZones);
|
||||
writer.writeString(offsets[111], object.userAgent);
|
||||
writer.writeLong(offsets[107], object.startDatebackup);
|
||||
writer.writeBool(offsets[108], object.themeIsDark);
|
||||
writer.writeBool(offsets[109], object.updateProgressAfterReading);
|
||||
writer.writeBool(offsets[110], object.useLibass);
|
||||
writer.writeBool(offsets[111], object.usePageTapZones);
|
||||
writer.writeString(offsets[112], object.userAgent);
|
||||
}
|
||||
|
||||
Settings _settingsDeserialize(
|
||||
|
|
@ -1343,79 +1349,80 @@ Settings _settingsDeserialize(
|
|||
reader.readByteOrNull(offsets[78])] ??
|
||||
DisplayType.comfortableGrid,
|
||||
markEpisodeAsSeenType: reader.readLongOrNull(offsets[79]),
|
||||
navigationOrder: reader.readStringList(offsets[80]),
|
||||
mergeLibraryNavMobile: reader.readBoolOrNull(offsets[80]),
|
||||
navigationOrder: reader.readStringList(offsets[81]),
|
||||
novelDisplayType: _SettingsnovelDisplayTypeValueEnumMap[
|
||||
reader.readByteOrNull(offsets[81])] ??
|
||||
reader.readByteOrNull(offsets[82])] ??
|
||||
DisplayType.comfortableGrid,
|
||||
novelExtensionsRepo: reader.readObjectList<Repo>(
|
||||
offsets[82],
|
||||
offsets[83],
|
||||
RepoSchema.deserialize,
|
||||
allOffsets,
|
||||
Repo(),
|
||||
),
|
||||
novelFontSize: reader.readLongOrNull(offsets[83]),
|
||||
novelLibraryDownloadedChapters: reader.readBoolOrNull(offsets[85]),
|
||||
novelLibraryLocalSource: reader.readBoolOrNull(offsets[86]),
|
||||
novelLibraryShowCategoryTabs: reader.readBoolOrNull(offsets[87]),
|
||||
novelLibraryShowContinueReadingButton: reader.readBoolOrNull(offsets[88]),
|
||||
novelLibraryShowLanguage: reader.readBoolOrNull(offsets[89]),
|
||||
novelLibraryShowNumbersOfItems: reader.readBoolOrNull(offsets[90]),
|
||||
novelFontSize: reader.readLongOrNull(offsets[84]),
|
||||
novelLibraryDownloadedChapters: reader.readBoolOrNull(offsets[86]),
|
||||
novelLibraryLocalSource: reader.readBoolOrNull(offsets[87]),
|
||||
novelLibraryShowCategoryTabs: reader.readBoolOrNull(offsets[88]),
|
||||
novelLibraryShowContinueReadingButton: reader.readBoolOrNull(offsets[89]),
|
||||
novelLibraryShowLanguage: reader.readBoolOrNull(offsets[90]),
|
||||
novelLibraryShowNumbersOfItems: reader.readBoolOrNull(offsets[91]),
|
||||
novelTextAlign: _SettingsnovelTextAlignValueEnumMap[
|
||||
reader.readByteOrNull(offsets[91])] ??
|
||||
reader.readByteOrNull(offsets[92])] ??
|
||||
NovelTextAlign.left,
|
||||
onlyIncludePinnedSources: reader.readBoolOrNull(offsets[92]),
|
||||
pagePreloadAmount: reader.readLongOrNull(offsets[93]),
|
||||
onlyIncludePinnedSources: reader.readBoolOrNull(offsets[93]),
|
||||
pagePreloadAmount: reader.readLongOrNull(offsets[94]),
|
||||
personalPageModeList: reader.readObjectList<PersonalPageMode>(
|
||||
offsets[94],
|
||||
offsets[95],
|
||||
PersonalPageModeSchema.deserialize,
|
||||
allOffsets,
|
||||
PersonalPageMode(),
|
||||
),
|
||||
personalReaderModeList: reader.readObjectList<PersonalReaderMode>(
|
||||
offsets[95],
|
||||
offsets[96],
|
||||
PersonalReaderModeSchema.deserialize,
|
||||
allOffsets,
|
||||
PersonalReaderMode(),
|
||||
),
|
||||
playerSubtitleSettings: reader.readObjectOrNull<PlayerSubtitleSettings>(
|
||||
offsets[96],
|
||||
offsets[97],
|
||||
PlayerSubtitleSettingsSchema.deserialize,
|
||||
allOffsets,
|
||||
),
|
||||
pureBlackDarkMode: reader.readBoolOrNull(offsets[97]),
|
||||
relativeTimesTamps: reader.readLongOrNull(offsets[98]),
|
||||
saveAsCBZArchive: reader.readBoolOrNull(offsets[99]),
|
||||
pureBlackDarkMode: reader.readBoolOrNull(offsets[98]),
|
||||
relativeTimesTamps: reader.readLongOrNull(offsets[99]),
|
||||
saveAsCBZArchive: reader.readBoolOrNull(offsets[100]),
|
||||
scaleType:
|
||||
_SettingsscaleTypeValueEnumMap[reader.readByteOrNull(offsets[100])] ??
|
||||
_SettingsscaleTypeValueEnumMap[reader.readByteOrNull(offsets[101])] ??
|
||||
ScaleType.fitScreen,
|
||||
showPagesNumber: reader.readBoolOrNull(offsets[101]),
|
||||
showPagesNumber: reader.readBoolOrNull(offsets[102]),
|
||||
sortChapterList: reader.readObjectList<SortChapter>(
|
||||
offsets[102],
|
||||
offsets[103],
|
||||
SortChapterSchema.deserialize,
|
||||
allOffsets,
|
||||
SortChapter(),
|
||||
),
|
||||
sortLibraryAnime: reader.readObjectOrNull<SortLibraryManga>(
|
||||
offsets[103],
|
||||
SortLibraryMangaSchema.deserialize,
|
||||
allOffsets,
|
||||
),
|
||||
sortLibraryManga: reader.readObjectOrNull<SortLibraryManga>(
|
||||
offsets[104],
|
||||
SortLibraryMangaSchema.deserialize,
|
||||
allOffsets,
|
||||
),
|
||||
sortLibraryNovel: reader.readObjectOrNull<SortLibraryManga>(
|
||||
sortLibraryManga: reader.readObjectOrNull<SortLibraryManga>(
|
||||
offsets[105],
|
||||
SortLibraryMangaSchema.deserialize,
|
||||
allOffsets,
|
||||
),
|
||||
startDatebackup: reader.readLongOrNull(offsets[106]),
|
||||
themeIsDark: reader.readBoolOrNull(offsets[107]),
|
||||
updateProgressAfterReading: reader.readBoolOrNull(offsets[108]),
|
||||
useLibass: reader.readBoolOrNull(offsets[109]),
|
||||
usePageTapZones: reader.readBoolOrNull(offsets[110]),
|
||||
userAgent: reader.readStringOrNull(offsets[111]),
|
||||
sortLibraryNovel: reader.readObjectOrNull<SortLibraryManga>(
|
||||
offsets[106],
|
||||
SortLibraryMangaSchema.deserialize,
|
||||
allOffsets,
|
||||
),
|
||||
startDatebackup: reader.readLongOrNull(offsets[107]),
|
||||
themeIsDark: reader.readBoolOrNull(offsets[108]),
|
||||
updateProgressAfterReading: reader.readBoolOrNull(offsets[109]),
|
||||
useLibass: reader.readBoolOrNull(offsets[110]),
|
||||
usePageTapZones: reader.readBoolOrNull(offsets[111]),
|
||||
userAgent: reader.readStringOrNull(offsets[112]),
|
||||
);
|
||||
object.chapterFilterBookmarkedList =
|
||||
reader.readObjectList<ChapterFilterBookmarked>(
|
||||
|
|
@ -1446,7 +1453,7 @@ Settings _settingsDeserialize(
|
|||
L10nLocaleSchema.deserialize,
|
||||
allOffsets,
|
||||
);
|
||||
object.novelGridSize = reader.readLongOrNull(offsets[84]);
|
||||
object.novelGridSize = reader.readLongOrNull(offsets[85]);
|
||||
return object;
|
||||
}
|
||||
|
||||
|
|
@ -1693,24 +1700,24 @@ P _settingsDeserializeProp<P>(
|
|||
case 79:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 80:
|
||||
return (reader.readStringList(offset)) as P;
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 81:
|
||||
return (reader.readStringList(offset)) as P;
|
||||
case 82:
|
||||
return (_SettingsnovelDisplayTypeValueEnumMap[
|
||||
reader.readByteOrNull(offset)] ??
|
||||
DisplayType.comfortableGrid) as P;
|
||||
case 82:
|
||||
case 83:
|
||||
return (reader.readObjectList<Repo>(
|
||||
offset,
|
||||
RepoSchema.deserialize,
|
||||
allOffsets,
|
||||
Repo(),
|
||||
)) as P;
|
||||
case 83:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 84:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 85:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 86:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 87:
|
||||
|
|
@ -1722,57 +1729,53 @@ P _settingsDeserializeProp<P>(
|
|||
case 90:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 91:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 92:
|
||||
return (_SettingsnovelTextAlignValueEnumMap[
|
||||
reader.readByteOrNull(offset)] ??
|
||||
NovelTextAlign.left) as P;
|
||||
case 92:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 93:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 94:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 95:
|
||||
return (reader.readObjectList<PersonalPageMode>(
|
||||
offset,
|
||||
PersonalPageModeSchema.deserialize,
|
||||
allOffsets,
|
||||
PersonalPageMode(),
|
||||
)) as P;
|
||||
case 95:
|
||||
case 96:
|
||||
return (reader.readObjectList<PersonalReaderMode>(
|
||||
offset,
|
||||
PersonalReaderModeSchema.deserialize,
|
||||
allOffsets,
|
||||
PersonalReaderMode(),
|
||||
)) as P;
|
||||
case 96:
|
||||
case 97:
|
||||
return (reader.readObjectOrNull<PlayerSubtitleSettings>(
|
||||
offset,
|
||||
PlayerSubtitleSettingsSchema.deserialize,
|
||||
allOffsets,
|
||||
)) as P;
|
||||
case 97:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 98:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 99:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 99:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 100:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 101:
|
||||
return (_SettingsscaleTypeValueEnumMap[reader.readByteOrNull(offset)] ??
|
||||
ScaleType.fitScreen) as P;
|
||||
case 101:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 102:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 103:
|
||||
return (reader.readObjectList<SortChapter>(
|
||||
offset,
|
||||
SortChapterSchema.deserialize,
|
||||
allOffsets,
|
||||
SortChapter(),
|
||||
)) as P;
|
||||
case 103:
|
||||
return (reader.readObjectOrNull<SortLibraryManga>(
|
||||
offset,
|
||||
SortLibraryMangaSchema.deserialize,
|
||||
allOffsets,
|
||||
)) as P;
|
||||
case 104:
|
||||
return (reader.readObjectOrNull<SortLibraryManga>(
|
||||
offset,
|
||||
|
|
@ -1786,9 +1789,13 @@ P _settingsDeserializeProp<P>(
|
|||
allOffsets,
|
||||
)) as P;
|
||||
case 106:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
return (reader.readObjectOrNull<SortLibraryManga>(
|
||||
offset,
|
||||
SortLibraryMangaSchema.deserialize,
|
||||
allOffsets,
|
||||
)) as P;
|
||||
case 107:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 108:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 109:
|
||||
|
|
@ -1796,6 +1803,8 @@ P _settingsDeserializeProp<P>(
|
|||
case 110:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 111:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 112:
|
||||
return (reader.readStringOrNull(offset)) as P;
|
||||
default:
|
||||
throw IsarError('Unknown property with id $propertyId');
|
||||
|
|
@ -7673,6 +7682,34 @@ extension SettingsQueryFilter
|
|||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterFilterCondition>
|
||||
mergeLibraryNavMobileIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'mergeLibraryNavMobile',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterFilterCondition>
|
||||
mergeLibraryNavMobileIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'mergeLibraryNavMobile',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterFilterCondition>
|
||||
mergeLibraryNavMobileEqualTo(bool? value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'mergeLibraryNavMobile',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterFilterCondition>
|
||||
navigationOrderIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
|
|
@ -10556,6 +10593,19 @@ extension SettingsQuerySortBy on QueryBuilder<Settings, Settings, QSortBy> {
|
|||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy> sortByMergeLibraryNavMobile() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'mergeLibraryNavMobile', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy>
|
||||
sortByMergeLibraryNavMobileDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'mergeLibraryNavMobile', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy> sortByNovelDisplayType() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'novelDisplayType', Sort.asc);
|
||||
|
|
@ -11724,6 +11774,19 @@ extension SettingsQuerySortThenBy
|
|||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy> thenByMergeLibraryNavMobile() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'mergeLibraryNavMobile', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy>
|
||||
thenByMergeLibraryNavMobileDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'mergeLibraryNavMobile', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QAfterSortBy> thenByNovelDisplayType() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'novelDisplayType', Sort.asc);
|
||||
|
|
@ -12468,6 +12531,13 @@ extension SettingsQueryWhereDistinct
|
|||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QDistinct>
|
||||
distinctByMergeLibraryNavMobile() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addDistinctBy(r'mergeLibraryNavMobile');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, Settings, QDistinct> distinctByNavigationOrder() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addDistinctBy(r'navigationOrder');
|
||||
|
|
@ -13167,6 +13237,13 @@ extension SettingsQueryProperty
|
|||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, bool?, QQueryOperations>
|
||||
mergeLibraryNavMobileProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'mergeLibraryNavMobile');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Settings, List<String>?, QQueryOperations>
|
||||
navigationOrderProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
|
|
|
|||
|
|
@ -160,6 +160,7 @@ class _MainScreenState extends ConsumerState<MainScreen> {
|
|||
final route = GoRouter.of(context);
|
||||
final navigationOrder = ref.watch(navigationOrderStateProvider);
|
||||
final hideItems = ref.watch(hideItemsStateProvider);
|
||||
final mergeLibraryNavMobile = ref.watch(mergeLibraryNavMobileStateProvider);
|
||||
final location = ref.watch(routerCurrentLocationStateProvider);
|
||||
|
||||
return ref
|
||||
|
|
@ -169,7 +170,7 @@ class _MainScreenState extends ConsumerState<MainScreen> {
|
|||
builder: (context, ref, child) {
|
||||
final isReadingScreen = _isReadingScreen(location);
|
||||
bool uniqueSwitch = false;
|
||||
final dest = !context.isTablet && isLibSwitch
|
||||
List<String> dest = !context.isTablet && isLibSwitch
|
||||
? [
|
||||
"_disableLibSwitch",
|
||||
...navigationOrder.where(
|
||||
|
|
@ -178,30 +179,35 @@ class _MainScreenState extends ConsumerState<MainScreen> {
|
|||
].where((nav) => !hideItems.contains(nav)).toList()
|
||||
: navigationOrder
|
||||
.where((nav) => !hideItems.contains(nav))
|
||||
.map((nav) {
|
||||
if (!context.isTablet &&
|
||||
!isLibSwitch &&
|
||||
[
|
||||
"/MangaLibrary",
|
||||
"/AnimeLibrary",
|
||||
"/NovelLibrary",
|
||||
].contains(nav)) {
|
||||
if (uniqueSwitch) return null;
|
||||
uniqueSwitch = true;
|
||||
return "_enableLibSwitch";
|
||||
}
|
||||
return nav;
|
||||
})
|
||||
.nonNulls
|
||||
.toList();
|
||||
|
||||
if (mergeLibraryNavMobile && !context.isTablet && !isLibSwitch) {
|
||||
dest = dest
|
||||
.map((nav) {
|
||||
if ([
|
||||
"/MangaLibrary",
|
||||
"/AnimeLibrary",
|
||||
"/NovelLibrary",
|
||||
].contains(nav)) {
|
||||
if (uniqueSwitch) return null;
|
||||
uniqueSwitch = true;
|
||||
return "_enableLibSwitch";
|
||||
}
|
||||
return nav;
|
||||
})
|
||||
.nonNulls
|
||||
.toList();
|
||||
}
|
||||
|
||||
if (isLibSwitch &&
|
||||
(currentIndex >= dest.length ||
|
||||
!libLocationRegex.hasMatch(location ?? ""))) {
|
||||
currentIndex = 0;
|
||||
} else {
|
||||
String? libLocation;
|
||||
if (!context.isTablet && !isLibSwitch) {
|
||||
if (mergeLibraryNavMobile &&
|
||||
!context.isTablet &&
|
||||
!isLibSwitch) {
|
||||
libLocation = location?.replaceAll(
|
||||
libLocationRegex,
|
||||
"_enableLibSwitch",
|
||||
|
|
|
|||
|
|
@ -19,11 +19,28 @@ class _CustomNavigationSettingsState
|
|||
final l10n = context.l10n;
|
||||
final navigationOrder = ref.watch(navigationOrderStateProvider);
|
||||
final hideItems = ref.watch(hideItemsStateProvider);
|
||||
final mergeLibraryNavMobile = ref.watch(mergeLibraryNavMobileStateProvider);
|
||||
return Scaffold(
|
||||
appBar: AppBar(title: Text(l10n.reorder_navigation)),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 15),
|
||||
child: ReorderableListView.builder(
|
||||
header: Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 10),
|
||||
child: Stack(
|
||||
children: [
|
||||
SwitchListTile(
|
||||
value: mergeLibraryNavMobile,
|
||||
title: Text(context.l10n.merge_library_nav_mobile),
|
||||
onChanged: (value) {
|
||||
ref
|
||||
.read(mergeLibraryNavMobileStateProvider.notifier)
|
||||
.set(value);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
buildDefaultDragHandles: false,
|
||||
itemCount: navigationOrder.length,
|
||||
itemBuilder: (context, index) {
|
||||
|
|
|
|||
|
|
@ -199,6 +199,22 @@ class HideItemsState extends _$HideItemsState {
|
|||
}
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class MergeLibraryNavMobileState extends _$MergeLibraryNavMobileState {
|
||||
@override
|
||||
bool build() {
|
||||
return isar.settings.getSync(227)!.mergeLibraryNavMobile ?? false;
|
||||
}
|
||||
|
||||
void set(bool value) {
|
||||
final settings = isar.settings.getSync(227);
|
||||
state = value;
|
||||
isar.writeTxnSync(
|
||||
() => isar.settings.putSync(settings!..mergeLibraryNavMobile = value),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class NovelFontSizeState extends _$NovelFontSizeState {
|
||||
@override
|
||||
|
|
|
|||
|
|
@ -190,6 +190,23 @@ final hideItemsStateProvider =
|
|||
);
|
||||
|
||||
typedef _$HideItemsState = AutoDisposeNotifier<List<String>>;
|
||||
String _$mergeLibraryNavMobileStateHash() =>
|
||||
r'a69f669b69d036835128b2b922ed7da37877aaa8';
|
||||
|
||||
/// See also [MergeLibraryNavMobileState].
|
||||
@ProviderFor(MergeLibraryNavMobileState)
|
||||
final mergeLibraryNavMobileStateProvider =
|
||||
AutoDisposeNotifierProvider<MergeLibraryNavMobileState, bool>.internal(
|
||||
MergeLibraryNavMobileState.new,
|
||||
name: r'mergeLibraryNavMobileStateProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$mergeLibraryNavMobileStateHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$MergeLibraryNavMobileState = AutoDisposeNotifier<bool>;
|
||||
String _$novelFontSizeStateHash() =>
|
||||
r'fd104e358203d3f86e14d933518f2dbd067cec13';
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'router.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$routerHash() => r'52271f834e5242820afdb209d765c3cee8f3fe5b';
|
||||
String _$routerHash() => r'fe1b18b9e03bd3df71cf66eabd78f0da3ac36247';
|
||||
|
||||
/// See also [router].
|
||||
@ProviderFor(router)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'anilist.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$anilistHash() => r'530f1aaee260808ae894e4da0604b8b34e4f3742';
|
||||
String _$anilistHash() => r'179af3d1b13b4a03d5009e5519195fee1f8ec0f7';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'myanimelist.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$myAnimeListHash() => r'885e6c50439c699f12c4f17c9e26b4a53b1d2036';
|
||||
String _$myAnimeListHash() => r'98746d3f3ac88a6165b46de18acb268dc32a16f8';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
Loading…
Reference in a new issue