chapter link to open in webview ,fix

This commit is contained in:
kodjomoustapha 2023-05-17 16:14:00 +01:00
parent 07b8f4303a
commit 7cdf1f92b7
13 changed files with 631 additions and 1067 deletions

View file

@ -10,7 +10,6 @@ import 'package:mangayomi/models/category.dart';
import 'package:mangayomi/models/chapter.dart';
import 'package:mangayomi/models/download.dart';
import 'package:mangayomi/models/history.dart';
import 'package:mangayomi/models/reader_settings.dart';
import 'package:mangayomi/models/settings.dart';
import 'package:mangayomi/models/source.dart';
import 'package:mangayomi/models/manga.dart';
@ -20,9 +19,14 @@ import 'package:mangayomi/views/more/settings/appearance/providers/flex_scheme_c
import 'package:mangayomi/views/more/settings/appearance/providers/theme_mode_state_provider.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart' as path;
import 'package:desktop_webview_window/desktop_webview_window.dart';
late Isar isar;
void main() async {
void main(List<String> args) async {
debugPrint('args: $args');
if (runWebViewTitleBarWidget(args)) {
return;
}
WidgetsFlutterBinding.ensureInitialized();
await _initDB();
runApp(const ProviderScope(child: MyApp()));
@ -39,8 +43,6 @@ _initDB() async {
HistorySchema,
DownloadSchema,
SourceSchema,
PersonalReaderModeSchema,
ReaderSettingsSchema,
SettingsSchema
],
directory: dir.path,
@ -55,8 +57,6 @@ _initDB() async {
HistorySchema,
DownloadSchema,
SourceSchema,
PersonalReaderModeSchema,
ReaderSettingsSchema,
SettingsSchema
], directory: dbDir, name: "mangayomiDb");
}
@ -71,7 +71,8 @@ _initDB() async {
..chapterFilterUnreadList = []
..chapterPageUrlsList = []
..chapterPageIndexList = []
..cookiesList = []);
..cookiesList = []
..personalReaderModeList = []);
},
);
}

View file

@ -1,31 +0,0 @@
import 'package:isar/isar.dart';
part 'reader_settings.g.dart';
@collection
@Name("Reader settings")
class ReaderSettings {
Id? id;
@enumerated
ReaderMode defaultReaderMode = ReaderMode.vertical;
ReaderSettings({this.id = 227, required this.defaultReaderMode});
}
@collection
@Name("Personal ReaderMode")
class PersonalReaderMode {
Id? id;
int? mangaId;
@enumerated
ReaderMode readerMode;
PersonalReaderMode(
{this.id = Isar.autoIncrement,
required this.mangaId,
required this.readerMode});
}
enum ReaderMode { vertical, ltr, rtl, verticalContinuous, webtoon }

View file

@ -1,935 +0,0 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'reader_settings.dart';
// **************************************************************************
// IsarCollectionGenerator
// **************************************************************************
// coverage:ignore-file
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types
extension GetReaderSettingsCollection on Isar {
IsarCollection<ReaderSettings> get readerSettings => this.collection();
}
const ReaderSettingsSchema = CollectionSchema(
name: r'Reader settings',
id: -7593704226870717670,
properties: {
r'defaultReaderMode': PropertySchema(
id: 0,
name: r'defaultReaderMode',
type: IsarType.byte,
enumMap: _ReaderSettingsdefaultReaderModeEnumValueMap,
)
},
estimateSize: _readerSettingsEstimateSize,
serialize: _readerSettingsSerialize,
deserialize: _readerSettingsDeserialize,
deserializeProp: _readerSettingsDeserializeProp,
idName: r'id',
indexes: {},
links: {},
embeddedSchemas: {},
getId: _readerSettingsGetId,
getLinks: _readerSettingsGetLinks,
attach: _readerSettingsAttach,
version: '3.1.0+1',
);
int _readerSettingsEstimateSize(
ReaderSettings object,
List<int> offsets,
Map<Type, List<int>> allOffsets,
) {
var bytesCount = offsets.last;
return bytesCount;
}
void _readerSettingsSerialize(
ReaderSettings object,
IsarWriter writer,
List<int> offsets,
Map<Type, List<int>> allOffsets,
) {
writer.writeByte(offsets[0], object.defaultReaderMode.index);
}
ReaderSettings _readerSettingsDeserialize(
Id id,
IsarReader reader,
List<int> offsets,
Map<Type, List<int>> allOffsets,
) {
final object = ReaderSettings(
defaultReaderMode: _ReaderSettingsdefaultReaderModeValueEnumMap[
reader.readByteOrNull(offsets[0])] ??
ReaderMode.vertical,
id: id,
);
return object;
}
P _readerSettingsDeserializeProp<P>(
IsarReader reader,
int propertyId,
int offset,
Map<Type, List<int>> allOffsets,
) {
switch (propertyId) {
case 0:
return (_ReaderSettingsdefaultReaderModeValueEnumMap[
reader.readByteOrNull(offset)] ??
ReaderMode.vertical) as P;
default:
throw IsarError('Unknown property with id $propertyId');
}
}
const _ReaderSettingsdefaultReaderModeEnumValueMap = {
'vertical': 0,
'ltr': 1,
'rtl': 2,
'verticalContinuous': 3,
'webtoon': 4,
};
const _ReaderSettingsdefaultReaderModeValueEnumMap = {
0: ReaderMode.vertical,
1: ReaderMode.ltr,
2: ReaderMode.rtl,
3: ReaderMode.verticalContinuous,
4: ReaderMode.webtoon,
};
Id _readerSettingsGetId(ReaderSettings object) {
return object.id ?? Isar.autoIncrement;
}
List<IsarLinkBase<dynamic>> _readerSettingsGetLinks(ReaderSettings object) {
return [];
}
void _readerSettingsAttach(
IsarCollection<dynamic> col, Id id, ReaderSettings object) {
object.id = id;
}
extension ReaderSettingsQueryWhereSort
on QueryBuilder<ReaderSettings, ReaderSettings, QWhere> {
QueryBuilder<ReaderSettings, ReaderSettings, QAfterWhere> anyId() {
return QueryBuilder.apply(this, (query) {
return query.addWhereClause(const IdWhereClause.any());
});
}
}
extension ReaderSettingsQueryWhere
on QueryBuilder<ReaderSettings, ReaderSettings, QWhereClause> {
QueryBuilder<ReaderSettings, ReaderSettings, QAfterWhereClause> idEqualTo(
Id id) {
return QueryBuilder.apply(this, (query) {
return query.addWhereClause(IdWhereClause.between(
lower: id,
upper: id,
));
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterWhereClause> idNotEqualTo(
Id id) {
return QueryBuilder.apply(this, (query) {
if (query.whereSort == Sort.asc) {
return query
.addWhereClause(
IdWhereClause.lessThan(upper: id, includeUpper: false),
)
.addWhereClause(
IdWhereClause.greaterThan(lower: id, includeLower: false),
);
} else {
return query
.addWhereClause(
IdWhereClause.greaterThan(lower: id, includeLower: false),
)
.addWhereClause(
IdWhereClause.lessThan(upper: id, includeUpper: false),
);
}
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterWhereClause> idGreaterThan(
Id id,
{bool include = false}) {
return QueryBuilder.apply(this, (query) {
return query.addWhereClause(
IdWhereClause.greaterThan(lower: id, includeLower: include),
);
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterWhereClause> idLessThan(
Id id,
{bool include = false}) {
return QueryBuilder.apply(this, (query) {
return query.addWhereClause(
IdWhereClause.lessThan(upper: id, includeUpper: include),
);
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterWhereClause> idBetween(
Id lowerId,
Id upperId, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addWhereClause(IdWhereClause.between(
lower: lowerId,
includeLower: includeLower,
upper: upperId,
includeUpper: includeUpper,
));
});
}
}
extension ReaderSettingsQueryFilter
on QueryBuilder<ReaderSettings, ReaderSettings, QFilterCondition> {
QueryBuilder<ReaderSettings, ReaderSettings, QAfterFilterCondition>
defaultReaderModeEqualTo(ReaderMode value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'defaultReaderMode',
value: value,
));
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterFilterCondition>
defaultReaderModeGreaterThan(
ReaderMode value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'defaultReaderMode',
value: value,
));
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterFilterCondition>
defaultReaderModeLessThan(
ReaderMode value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'defaultReaderMode',
value: value,
));
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterFilterCondition>
defaultReaderModeBetween(
ReaderMode lower,
ReaderMode upper, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between(
property: r'defaultReaderMode',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
));
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterFilterCondition>
idIsNull() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(const FilterCondition.isNull(
property: r'id',
));
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterFilterCondition>
idIsNotNull() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(const FilterCondition.isNotNull(
property: r'id',
));
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterFilterCondition> idEqualTo(
Id? value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'id',
value: value,
));
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterFilterCondition>
idGreaterThan(
Id? value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'id',
value: value,
));
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterFilterCondition>
idLessThan(
Id? value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'id',
value: value,
));
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterFilterCondition> idBetween(
Id? lower,
Id? upper, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between(
property: r'id',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
));
});
}
}
extension ReaderSettingsQueryObject
on QueryBuilder<ReaderSettings, ReaderSettings, QFilterCondition> {}
extension ReaderSettingsQueryLinks
on QueryBuilder<ReaderSettings, ReaderSettings, QFilterCondition> {}
extension ReaderSettingsQuerySortBy
on QueryBuilder<ReaderSettings, ReaderSettings, QSortBy> {
QueryBuilder<ReaderSettings, ReaderSettings, QAfterSortBy>
sortByDefaultReaderMode() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'defaultReaderMode', Sort.asc);
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterSortBy>
sortByDefaultReaderModeDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'defaultReaderMode', Sort.desc);
});
}
}
extension ReaderSettingsQuerySortThenBy
on QueryBuilder<ReaderSettings, ReaderSettings, QSortThenBy> {
QueryBuilder<ReaderSettings, ReaderSettings, QAfterSortBy>
thenByDefaultReaderMode() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'defaultReaderMode', Sort.asc);
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterSortBy>
thenByDefaultReaderModeDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'defaultReaderMode', Sort.desc);
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterSortBy> thenById() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'id', Sort.asc);
});
}
QueryBuilder<ReaderSettings, ReaderSettings, QAfterSortBy> thenByIdDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'id', Sort.desc);
});
}
}
extension ReaderSettingsQueryWhereDistinct
on QueryBuilder<ReaderSettings, ReaderSettings, QDistinct> {
QueryBuilder<ReaderSettings, ReaderSettings, QDistinct>
distinctByDefaultReaderMode() {
return QueryBuilder.apply(this, (query) {
return query.addDistinctBy(r'defaultReaderMode');
});
}
}
extension ReaderSettingsQueryProperty
on QueryBuilder<ReaderSettings, ReaderSettings, QQueryProperty> {
QueryBuilder<ReaderSettings, int, QQueryOperations> idProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'id');
});
}
QueryBuilder<ReaderSettings, ReaderMode, QQueryOperations>
defaultReaderModeProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'defaultReaderMode');
});
}
}
// coverage:ignore-file
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types
extension GetPersonalReaderModeCollection on Isar {
IsarCollection<PersonalReaderMode> get personalReaderModes =>
this.collection();
}
const PersonalReaderModeSchema = CollectionSchema(
name: r'Personal ReaderMode',
id: -6358434224379634897,
properties: {
r'mangaId': PropertySchema(
id: 0,
name: r'mangaId',
type: IsarType.long,
),
r'readerMode': PropertySchema(
id: 1,
name: r'readerMode',
type: IsarType.byte,
enumMap: _PersonalReaderModereaderModeEnumValueMap,
)
},
estimateSize: _personalReaderModeEstimateSize,
serialize: _personalReaderModeSerialize,
deserialize: _personalReaderModeDeserialize,
deserializeProp: _personalReaderModeDeserializeProp,
idName: r'id',
indexes: {},
links: {},
embeddedSchemas: {},
getId: _personalReaderModeGetId,
getLinks: _personalReaderModeGetLinks,
attach: _personalReaderModeAttach,
version: '3.1.0+1',
);
int _personalReaderModeEstimateSize(
PersonalReaderMode object,
List<int> offsets,
Map<Type, List<int>> allOffsets,
) {
var bytesCount = offsets.last;
return bytesCount;
}
void _personalReaderModeSerialize(
PersonalReaderMode object,
IsarWriter writer,
List<int> offsets,
Map<Type, List<int>> allOffsets,
) {
writer.writeLong(offsets[0], object.mangaId);
writer.writeByte(offsets[1], object.readerMode.index);
}
PersonalReaderMode _personalReaderModeDeserialize(
Id id,
IsarReader reader,
List<int> offsets,
Map<Type, List<int>> allOffsets,
) {
final object = PersonalReaderMode(
id: id,
mangaId: reader.readLongOrNull(offsets[0]),
readerMode: _PersonalReaderModereaderModeValueEnumMap[
reader.readByteOrNull(offsets[1])] ??
ReaderMode.vertical,
);
return object;
}
P _personalReaderModeDeserializeProp<P>(
IsarReader reader,
int propertyId,
int offset,
Map<Type, List<int>> allOffsets,
) {
switch (propertyId) {
case 0:
return (reader.readLongOrNull(offset)) as P;
case 1:
return (_PersonalReaderModereaderModeValueEnumMap[
reader.readByteOrNull(offset)] ??
ReaderMode.vertical) as P;
default:
throw IsarError('Unknown property with id $propertyId');
}
}
const _PersonalReaderModereaderModeEnumValueMap = {
'vertical': 0,
'ltr': 1,
'rtl': 2,
'verticalContinuous': 3,
'webtoon': 4,
};
const _PersonalReaderModereaderModeValueEnumMap = {
0: ReaderMode.vertical,
1: ReaderMode.ltr,
2: ReaderMode.rtl,
3: ReaderMode.verticalContinuous,
4: ReaderMode.webtoon,
};
Id _personalReaderModeGetId(PersonalReaderMode object) {
return object.id ?? Isar.autoIncrement;
}
List<IsarLinkBase<dynamic>> _personalReaderModeGetLinks(
PersonalReaderMode object) {
return [];
}
void _personalReaderModeAttach(
IsarCollection<dynamic> col, Id id, PersonalReaderMode object) {
object.id = id;
}
extension PersonalReaderModeQueryWhereSort
on QueryBuilder<PersonalReaderMode, PersonalReaderMode, QWhere> {
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterWhere> anyId() {
return QueryBuilder.apply(this, (query) {
return query.addWhereClause(const IdWhereClause.any());
});
}
}
extension PersonalReaderModeQueryWhere
on QueryBuilder<PersonalReaderMode, PersonalReaderMode, QWhereClause> {
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterWhereClause>
idEqualTo(Id id) {
return QueryBuilder.apply(this, (query) {
return query.addWhereClause(IdWhereClause.between(
lower: id,
upper: id,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterWhereClause>
idNotEqualTo(Id id) {
return QueryBuilder.apply(this, (query) {
if (query.whereSort == Sort.asc) {
return query
.addWhereClause(
IdWhereClause.lessThan(upper: id, includeUpper: false),
)
.addWhereClause(
IdWhereClause.greaterThan(lower: id, includeLower: false),
);
} else {
return query
.addWhereClause(
IdWhereClause.greaterThan(lower: id, includeLower: false),
)
.addWhereClause(
IdWhereClause.lessThan(upper: id, includeUpper: false),
);
}
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterWhereClause>
idGreaterThan(Id id, {bool include = false}) {
return QueryBuilder.apply(this, (query) {
return query.addWhereClause(
IdWhereClause.greaterThan(lower: id, includeLower: include),
);
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterWhereClause>
idLessThan(Id id, {bool include = false}) {
return QueryBuilder.apply(this, (query) {
return query.addWhereClause(
IdWhereClause.lessThan(upper: id, includeUpper: include),
);
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterWhereClause>
idBetween(
Id lowerId,
Id upperId, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addWhereClause(IdWhereClause.between(
lower: lowerId,
includeLower: includeLower,
upper: upperId,
includeUpper: includeUpper,
));
});
}
}
extension PersonalReaderModeQueryFilter
on QueryBuilder<PersonalReaderMode, PersonalReaderMode, QFilterCondition> {
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
idIsNull() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(const FilterCondition.isNull(
property: r'id',
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
idIsNotNull() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(const FilterCondition.isNotNull(
property: r'id',
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
idEqualTo(Id? value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'id',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
idGreaterThan(
Id? value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'id',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
idLessThan(
Id? value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'id',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
idBetween(
Id? lower,
Id? upper, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between(
property: r'id',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
mangaIdIsNull() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(const FilterCondition.isNull(
property: r'mangaId',
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
mangaIdIsNotNull() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(const FilterCondition.isNotNull(
property: r'mangaId',
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
mangaIdEqualTo(int? value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'mangaId',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
mangaIdGreaterThan(
int? value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'mangaId',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
mangaIdLessThan(
int? value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'mangaId',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
mangaIdBetween(
int? lower,
int? upper, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between(
property: r'mangaId',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
readerModeEqualTo(ReaderMode value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'readerMode',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
readerModeGreaterThan(
ReaderMode value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'readerMode',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
readerModeLessThan(
ReaderMode value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'readerMode',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
readerModeBetween(
ReaderMode lower,
ReaderMode upper, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between(
property: r'readerMode',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
));
});
}
}
extension PersonalReaderModeQueryObject
on QueryBuilder<PersonalReaderMode, PersonalReaderMode, QFilterCondition> {}
extension PersonalReaderModeQueryLinks
on QueryBuilder<PersonalReaderMode, PersonalReaderMode, QFilterCondition> {}
extension PersonalReaderModeQuerySortBy
on QueryBuilder<PersonalReaderMode, PersonalReaderMode, QSortBy> {
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterSortBy>
sortByMangaId() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'mangaId', Sort.asc);
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterSortBy>
sortByMangaIdDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'mangaId', Sort.desc);
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterSortBy>
sortByReaderMode() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'readerMode', Sort.asc);
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterSortBy>
sortByReaderModeDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'readerMode', Sort.desc);
});
}
}
extension PersonalReaderModeQuerySortThenBy
on QueryBuilder<PersonalReaderMode, PersonalReaderMode, QSortThenBy> {
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterSortBy>
thenById() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'id', Sort.asc);
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterSortBy>
thenByIdDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'id', Sort.desc);
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterSortBy>
thenByMangaId() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'mangaId', Sort.asc);
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterSortBy>
thenByMangaIdDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'mangaId', Sort.desc);
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterSortBy>
thenByReaderMode() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'readerMode', Sort.asc);
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterSortBy>
thenByReaderModeDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'readerMode', Sort.desc);
});
}
}
extension PersonalReaderModeQueryWhereDistinct
on QueryBuilder<PersonalReaderMode, PersonalReaderMode, QDistinct> {
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QDistinct>
distinctByMangaId() {
return QueryBuilder.apply(this, (query) {
return query.addDistinctBy(r'mangaId');
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QDistinct>
distinctByReaderMode() {
return QueryBuilder.apply(this, (query) {
return query.addDistinctBy(r'readerMode');
});
}
}
extension PersonalReaderModeQueryProperty
on QueryBuilder<PersonalReaderMode, PersonalReaderMode, QQueryProperty> {
QueryBuilder<PersonalReaderMode, int, QQueryOperations> idProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'id');
});
}
QueryBuilder<PersonalReaderMode, int?, QQueryOperations> mangaIdProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'mangaId');
});
}
QueryBuilder<PersonalReaderMode, ReaderMode, QQueryOperations>
readerModeProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'readerMode');
});
}
}

View file

@ -60,6 +60,11 @@ class Settings {
List<Cookie>? cookiesList;
@enumerated
ReaderMode defaultReaderMode;
List<PersonalReaderMode>? personalReaderModeList;
Settings(
{this.id = 227,
this.displayType = DisplayType.compactGrid,
@ -85,7 +90,9 @@ class Settings {
this.showPagesNumber = true,
this.chapterPageIndexList,
this.userAgent = defaultUserAgent,
this.cookiesList});
this.cookiesList,
this.defaultReaderMode = ReaderMode.vertical,
this.personalReaderModeList});
}
enum DisplayType {
@ -148,3 +155,13 @@ class Cookie {
String? source;
String? cookie;
}
@embedded
class PersonalReaderMode {
int? mangaId;
@enumerated
ReaderMode readerMode = ReaderMode.vertical;
}
enum ReaderMode { vertical, ltr, rtl, verticalContinuous, webtoon }

View file

@ -58,101 +58,113 @@ const SettingsSchema = CollectionSchema(
name: r'dateFormat',
type: IsarType.string,
),
r'displayType': PropertySchema(
r'defaultReaderMode': PropertySchema(
id: 7,
name: r'defaultReaderMode',
type: IsarType.byte,
enumMap: _SettingsdefaultReaderModeEnumValueMap,
),
r'displayType': PropertySchema(
id: 8,
name: r'displayType',
type: IsarType.byte,
enumMap: _SettingsdisplayTypeEnumValueMap,
),
r'flexColorSchemeBlendLevel': PropertySchema(
id: 8,
id: 9,
name: r'flexColorSchemeBlendLevel',
type: IsarType.double,
),
r'flexSchemeColorIndex': PropertySchema(
id: 9,
id: 10,
name: r'flexSchemeColorIndex',
type: IsarType.long,
),
r'incognitoMode': PropertySchema(
id: 10,
id: 11,
name: r'incognitoMode',
type: IsarType.bool,
),
r'libraryDownloadedChapters': PropertySchema(
id: 11,
id: 12,
name: r'libraryDownloadedChapters',
type: IsarType.bool,
),
r'libraryFilterMangasBookMarkedType': PropertySchema(
id: 12,
id: 13,
name: r'libraryFilterMangasBookMarkedType',
type: IsarType.long,
),
r'libraryFilterMangasDownloadType': PropertySchema(
id: 13,
id: 14,
name: r'libraryFilterMangasDownloadType',
type: IsarType.long,
),
r'libraryFilterMangasStartedType': PropertySchema(
id: 14,
id: 15,
name: r'libraryFilterMangasStartedType',
type: IsarType.long,
),
r'libraryFilterMangasUnreadType': PropertySchema(
id: 15,
id: 16,
name: r'libraryFilterMangasUnreadType',
type: IsarType.long,
),
r'libraryShowCategoryTabs': PropertySchema(
id: 16,
id: 17,
name: r'libraryShowCategoryTabs',
type: IsarType.bool,
),
r'libraryShowContinueReadingButton': PropertySchema(
id: 17,
id: 18,
name: r'libraryShowContinueReadingButton',
type: IsarType.bool,
),
r'libraryShowLanguage': PropertySchema(
id: 18,
id: 19,
name: r'libraryShowLanguage',
type: IsarType.bool,
),
r'libraryShowNumbersOfItems': PropertySchema(
id: 19,
id: 20,
name: r'libraryShowNumbersOfItems',
type: IsarType.bool,
),
r'personalReaderModeList': PropertySchema(
id: 21,
name: r'personalReaderModeList',
type: IsarType.objectList,
target: r'PersonalReaderMode',
),
r'relativeTimesTamps': PropertySchema(
id: 20,
id: 22,
name: r'relativeTimesTamps',
type: IsarType.long,
),
r'showPagesNumber': PropertySchema(
id: 21,
id: 23,
name: r'showPagesNumber',
type: IsarType.bool,
),
r'sortChapterList': PropertySchema(
id: 22,
id: 24,
name: r'sortChapterList',
type: IsarType.objectList,
target: r'SortChapter',
),
r'sortLibraryManga': PropertySchema(
id: 23,
id: 25,
name: r'sortLibraryManga',
type: IsarType.object,
target: r'SortLibraryManga',
),
r'themeIsDark': PropertySchema(
id: 24,
id: 26,
name: r'themeIsDark',
type: IsarType.bool,
),
r'userAgent': PropertySchema(
id: 25,
id: 27,
name: r'userAgent',
type: IsarType.string,
)
@ -172,7 +184,8 @@ const SettingsSchema = CollectionSchema(
r'ChapterFilterBookmarked': ChapterFilterBookmarkedSchema,
r'ChapterPageurls': ChapterPageurlsSchema,
r'ChapterPageIndex': ChapterPageIndexSchema,
r'Cookie': CookieSchema
r'Cookie': CookieSchema,
r'PersonalReaderMode': PersonalReaderModeSchema
},
getId: _settingsGetId,
getLinks: _settingsGetLinks,
@ -275,6 +288,20 @@ int _settingsEstimateSize(
bytesCount += 3 + value.length * 3;
}
}
{
final list = object.personalReaderModeList;
if (list != null) {
bytesCount += 3 + list.length * 3;
{
final offsets = allOffsets[PersonalReaderMode]!;
for (var i = 0; i < list.length; i++) {
final value = list[i];
bytesCount +=
PersonalReaderModeSchema.estimateSize(value, offsets, allOffsets);
}
}
}
}
{
final list = object.sortChapterList;
if (list != null) {
@ -349,35 +376,42 @@ void _settingsSerialize(
object.cookiesList,
);
writer.writeString(offsets[6], object.dateFormat);
writer.writeByte(offsets[7], object.displayType.index);
writer.writeDouble(offsets[8], object.flexColorSchemeBlendLevel);
writer.writeLong(offsets[9], object.flexSchemeColorIndex);
writer.writeBool(offsets[10], object.incognitoMode);
writer.writeBool(offsets[11], object.libraryDownloadedChapters);
writer.writeLong(offsets[12], object.libraryFilterMangasBookMarkedType);
writer.writeLong(offsets[13], object.libraryFilterMangasDownloadType);
writer.writeLong(offsets[14], object.libraryFilterMangasStartedType);
writer.writeLong(offsets[15], object.libraryFilterMangasUnreadType);
writer.writeBool(offsets[16], object.libraryShowCategoryTabs);
writer.writeBool(offsets[17], object.libraryShowContinueReadingButton);
writer.writeBool(offsets[18], object.libraryShowLanguage);
writer.writeBool(offsets[19], object.libraryShowNumbersOfItems);
writer.writeLong(offsets[20], object.relativeTimesTamps);
writer.writeBool(offsets[21], object.showPagesNumber);
writer.writeByte(offsets[7], object.defaultReaderMode.index);
writer.writeByte(offsets[8], object.displayType.index);
writer.writeDouble(offsets[9], object.flexColorSchemeBlendLevel);
writer.writeLong(offsets[10], object.flexSchemeColorIndex);
writer.writeBool(offsets[11], object.incognitoMode);
writer.writeBool(offsets[12], object.libraryDownloadedChapters);
writer.writeLong(offsets[13], object.libraryFilterMangasBookMarkedType);
writer.writeLong(offsets[14], object.libraryFilterMangasDownloadType);
writer.writeLong(offsets[15], object.libraryFilterMangasStartedType);
writer.writeLong(offsets[16], object.libraryFilterMangasUnreadType);
writer.writeBool(offsets[17], object.libraryShowCategoryTabs);
writer.writeBool(offsets[18], object.libraryShowContinueReadingButton);
writer.writeBool(offsets[19], object.libraryShowLanguage);
writer.writeBool(offsets[20], object.libraryShowNumbersOfItems);
writer.writeObjectList<PersonalReaderMode>(
offsets[21],
allOffsets,
PersonalReaderModeSchema.serialize,
object.personalReaderModeList,
);
writer.writeLong(offsets[22], object.relativeTimesTamps);
writer.writeBool(offsets[23], object.showPagesNumber);
writer.writeObjectList<SortChapter>(
offsets[22],
offsets[24],
allOffsets,
SortChapterSchema.serialize,
object.sortChapterList,
);
writer.writeObject<SortLibraryManga>(
offsets[23],
offsets[25],
allOffsets,
SortLibraryMangaSchema.serialize,
object.sortLibraryManga,
);
writer.writeBool(offsets[24], object.themeIsDark);
writer.writeString(offsets[25], object.userAgent);
writer.writeBool(offsets[26], object.themeIsDark);
writer.writeString(offsets[27], object.userAgent);
}
Settings _settingsDeserialize(
@ -412,37 +446,46 @@ Settings _settingsDeserialize(
Cookie(),
),
dateFormat: reader.readStringOrNull(offsets[6]),
defaultReaderMode: _SettingsdefaultReaderModeValueEnumMap[
reader.readByteOrNull(offsets[7])] ??
ReaderMode.vertical,
displayType:
_SettingsdisplayTypeValueEnumMap[reader.readByteOrNull(offsets[7])] ??
_SettingsdisplayTypeValueEnumMap[reader.readByteOrNull(offsets[8])] ??
DisplayType.compactGrid,
flexColorSchemeBlendLevel: reader.readDoubleOrNull(offsets[8]),
flexSchemeColorIndex: reader.readLongOrNull(offsets[9]),
flexColorSchemeBlendLevel: reader.readDoubleOrNull(offsets[9]),
flexSchemeColorIndex: reader.readLongOrNull(offsets[10]),
id: id,
incognitoMode: reader.readBoolOrNull(offsets[10]),
libraryDownloadedChapters: reader.readBoolOrNull(offsets[11]),
libraryFilterMangasBookMarkedType: reader.readLongOrNull(offsets[12]),
libraryFilterMangasDownloadType: reader.readLongOrNull(offsets[13]),
libraryFilterMangasStartedType: reader.readLongOrNull(offsets[14]),
libraryFilterMangasUnreadType: reader.readLongOrNull(offsets[15]),
libraryShowCategoryTabs: reader.readBoolOrNull(offsets[16]),
libraryShowContinueReadingButton: reader.readBoolOrNull(offsets[17]),
libraryShowLanguage: reader.readBoolOrNull(offsets[18]),
libraryShowNumbersOfItems: reader.readBoolOrNull(offsets[19]),
relativeTimesTamps: reader.readLongOrNull(offsets[20]),
showPagesNumber: reader.readBoolOrNull(offsets[21]),
incognitoMode: reader.readBoolOrNull(offsets[11]),
libraryDownloadedChapters: reader.readBoolOrNull(offsets[12]),
libraryFilterMangasBookMarkedType: reader.readLongOrNull(offsets[13]),
libraryFilterMangasDownloadType: reader.readLongOrNull(offsets[14]),
libraryFilterMangasStartedType: reader.readLongOrNull(offsets[15]),
libraryFilterMangasUnreadType: reader.readLongOrNull(offsets[16]),
libraryShowCategoryTabs: reader.readBoolOrNull(offsets[17]),
libraryShowContinueReadingButton: reader.readBoolOrNull(offsets[18]),
libraryShowLanguage: reader.readBoolOrNull(offsets[19]),
libraryShowNumbersOfItems: reader.readBoolOrNull(offsets[20]),
personalReaderModeList: reader.readObjectList<PersonalReaderMode>(
offsets[21],
PersonalReaderModeSchema.deserialize,
allOffsets,
PersonalReaderMode(),
),
relativeTimesTamps: reader.readLongOrNull(offsets[22]),
showPagesNumber: reader.readBoolOrNull(offsets[23]),
sortChapterList: reader.readObjectList<SortChapter>(
offsets[22],
offsets[24],
SortChapterSchema.deserialize,
allOffsets,
SortChapter(),
),
sortLibraryManga: reader.readObjectOrNull<SortLibraryManga>(
offsets[23],
offsets[25],
SortLibraryMangaSchema.deserialize,
allOffsets,
),
themeIsDark: reader.readBoolOrNull(offsets[24]),
userAgent: reader.readStringOrNull(offsets[25]),
themeIsDark: reader.readBoolOrNull(offsets[26]),
userAgent: reader.readStringOrNull(offsets[27]),
);
object.chapterFilterBookmarkedList =
reader.readObjectList<ChapterFilterBookmarked>(
@ -512,18 +555,20 @@ P _settingsDeserializeProp<P>(
case 6:
return (reader.readStringOrNull(offset)) as P;
case 7:
return (_SettingsdefaultReaderModeValueEnumMap[
reader.readByteOrNull(offset)] ??
ReaderMode.vertical) as P;
case 8:
return (_SettingsdisplayTypeValueEnumMap[reader.readByteOrNull(offset)] ??
DisplayType.compactGrid) as P;
case 8:
return (reader.readDoubleOrNull(offset)) as P;
case 9:
return (reader.readLongOrNull(offset)) as P;
return (reader.readDoubleOrNull(offset)) as P;
case 10:
return (reader.readBoolOrNull(offset)) as P;
return (reader.readLongOrNull(offset)) as P;
case 11:
return (reader.readBoolOrNull(offset)) as P;
case 12:
return (reader.readLongOrNull(offset)) as P;
return (reader.readBoolOrNull(offset)) as P;
case 13:
return (reader.readLongOrNull(offset)) as P;
case 14:
@ -531,7 +576,7 @@ P _settingsDeserializeProp<P>(
case 15:
return (reader.readLongOrNull(offset)) as P;
case 16:
return (reader.readBoolOrNull(offset)) as P;
return (reader.readLongOrNull(offset)) as P;
case 17:
return (reader.readBoolOrNull(offset)) as P;
case 18:
@ -539,31 +584,54 @@ P _settingsDeserializeProp<P>(
case 19:
return (reader.readBoolOrNull(offset)) as P;
case 20:
return (reader.readLongOrNull(offset)) as P;
case 21:
return (reader.readBoolOrNull(offset)) as P;
case 21:
return (reader.readObjectList<PersonalReaderMode>(
offset,
PersonalReaderModeSchema.deserialize,
allOffsets,
PersonalReaderMode(),
)) as P;
case 22:
return (reader.readLongOrNull(offset)) as P;
case 23:
return (reader.readBoolOrNull(offset)) as P;
case 24:
return (reader.readObjectList<SortChapter>(
offset,
SortChapterSchema.deserialize,
allOffsets,
SortChapter(),
)) as P;
case 23:
case 25:
return (reader.readObjectOrNull<SortLibraryManga>(
offset,
SortLibraryMangaSchema.deserialize,
allOffsets,
)) as P;
case 24:
case 26:
return (reader.readBoolOrNull(offset)) as P;
case 25:
case 27:
return (reader.readStringOrNull(offset)) as P;
default:
throw IsarError('Unknown property with id $propertyId');
}
}
const _SettingsdefaultReaderModeEnumValueMap = {
'vertical': 0,
'ltr': 1,
'rtl': 2,
'verticalContinuous': 3,
'webtoon': 4,
};
const _SettingsdefaultReaderModeValueEnumMap = {
0: ReaderMode.vertical,
1: ReaderMode.ltr,
2: ReaderMode.rtl,
3: ReaderMode.verticalContinuous,
4: ReaderMode.webtoon,
};
const _SettingsdisplayTypeEnumValueMap = {
'compactGrid': 0,
'comfortableGrid': 1,
@ -1454,6 +1522,62 @@ extension SettingsQueryFilter
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
defaultReaderModeEqualTo(ReaderMode value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'defaultReaderMode',
value: value,
));
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
defaultReaderModeGreaterThan(
ReaderMode value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'defaultReaderMode',
value: value,
));
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
defaultReaderModeLessThan(
ReaderMode value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'defaultReaderMode',
value: value,
));
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
defaultReaderModeBetween(
ReaderMode lower,
ReaderMode upper, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between(
property: r'defaultReaderMode',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
));
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition> displayTypeEqualTo(
DisplayType value) {
return QueryBuilder.apply(this, (query) {
@ -2198,6 +2322,113 @@ extension SettingsQueryFilter
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
personalReaderModeListIsNull() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(const FilterCondition.isNull(
property: r'personalReaderModeList',
));
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
personalReaderModeListIsNotNull() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(const FilterCondition.isNotNull(
property: r'personalReaderModeList',
));
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
personalReaderModeListLengthEqualTo(int length) {
return QueryBuilder.apply(this, (query) {
return query.listLength(
r'personalReaderModeList',
length,
true,
length,
true,
);
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
personalReaderModeListIsEmpty() {
return QueryBuilder.apply(this, (query) {
return query.listLength(
r'personalReaderModeList',
0,
true,
0,
true,
);
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
personalReaderModeListIsNotEmpty() {
return QueryBuilder.apply(this, (query) {
return query.listLength(
r'personalReaderModeList',
0,
false,
999999,
true,
);
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
personalReaderModeListLengthLessThan(
int length, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.listLength(
r'personalReaderModeList',
0,
true,
length,
include,
);
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
personalReaderModeListLengthGreaterThan(
int length, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.listLength(
r'personalReaderModeList',
length,
include,
999999,
true,
);
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
personalReaderModeListLengthBetween(
int lower,
int upper, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.listLength(
r'personalReaderModeList',
lower,
includeLower,
upper,
includeUpper,
);
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
relativeTimesTampsIsNull() {
return QueryBuilder.apply(this, (query) {
@ -2646,6 +2877,13 @@ extension SettingsQueryObject
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
personalReaderModeListElement(FilterQuery<PersonalReaderMode> q) {
return QueryBuilder.apply(this, (query) {
return query.object(q, r'personalReaderModeList');
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition>
sortChapterListElement(FilterQuery<SortChapter> q) {
return QueryBuilder.apply(this, (query) {
@ -2677,6 +2915,18 @@ extension SettingsQuerySortBy on QueryBuilder<Settings, Settings, QSortBy> {
});
}
QueryBuilder<Settings, Settings, QAfterSortBy> sortByDefaultReaderMode() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'defaultReaderMode', Sort.asc);
});
}
QueryBuilder<Settings, Settings, QAfterSortBy> sortByDefaultReaderModeDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'defaultReaderMode', Sort.desc);
});
}
QueryBuilder<Settings, Settings, QAfterSortBy> sortByDisplayType() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'displayType', Sort.asc);
@ -2917,6 +3167,18 @@ extension SettingsQuerySortThenBy
});
}
QueryBuilder<Settings, Settings, QAfterSortBy> thenByDefaultReaderMode() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'defaultReaderMode', Sort.asc);
});
}
QueryBuilder<Settings, Settings, QAfterSortBy> thenByDefaultReaderModeDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'defaultReaderMode', Sort.desc);
});
}
QueryBuilder<Settings, Settings, QAfterSortBy> thenByDisplayType() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'displayType', Sort.asc);
@ -3164,6 +3426,12 @@ extension SettingsQueryWhereDistinct
});
}
QueryBuilder<Settings, Settings, QDistinct> distinctByDefaultReaderMode() {
return QueryBuilder.apply(this, (query) {
return query.addDistinctBy(r'defaultReaderMode');
});
}
QueryBuilder<Settings, Settings, QDistinct> distinctByDisplayType() {
return QueryBuilder.apply(this, (query) {
return query.addDistinctBy(r'displayType');
@ -3333,6 +3601,13 @@ extension SettingsQueryProperty
});
}
QueryBuilder<Settings, ReaderMode, QQueryOperations>
defaultReaderModeProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'defaultReaderMode');
});
}
QueryBuilder<Settings, DisplayType, QQueryOperations> displayTypeProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'displayType');
@ -3422,6 +3697,13 @@ extension SettingsQueryProperty
});
}
QueryBuilder<Settings, List<PersonalReaderMode>?, QQueryOperations>
personalReaderModeListProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'personalReaderModeList');
});
}
QueryBuilder<Settings, int?, QQueryOperations> relativeTimesTampsProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'relativeTimesTamps');
@ -5590,3 +5872,230 @@ extension CookieQueryFilter on QueryBuilder<Cookie, Cookie, QFilterCondition> {
}
extension CookieQueryObject on QueryBuilder<Cookie, Cookie, QFilterCondition> {}
// coverage:ignore-file
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types
const PersonalReaderModeSchema = Schema(
name: r'PersonalReaderMode',
id: -1072936262658804338,
properties: {
r'mangaId': PropertySchema(
id: 0,
name: r'mangaId',
type: IsarType.long,
),
r'readerMode': PropertySchema(
id: 1,
name: r'readerMode',
type: IsarType.byte,
enumMap: _PersonalReaderModereaderModeEnumValueMap,
)
},
estimateSize: _personalReaderModeEstimateSize,
serialize: _personalReaderModeSerialize,
deserialize: _personalReaderModeDeserialize,
deserializeProp: _personalReaderModeDeserializeProp,
);
int _personalReaderModeEstimateSize(
PersonalReaderMode object,
List<int> offsets,
Map<Type, List<int>> allOffsets,
) {
var bytesCount = offsets.last;
return bytesCount;
}
void _personalReaderModeSerialize(
PersonalReaderMode object,
IsarWriter writer,
List<int> offsets,
Map<Type, List<int>> allOffsets,
) {
writer.writeLong(offsets[0], object.mangaId);
writer.writeByte(offsets[1], object.readerMode.index);
}
PersonalReaderMode _personalReaderModeDeserialize(
Id id,
IsarReader reader,
List<int> offsets,
Map<Type, List<int>> allOffsets,
) {
final object = PersonalReaderMode();
object.mangaId = reader.readLongOrNull(offsets[0]);
object.readerMode = _PersonalReaderModereaderModeValueEnumMap[
reader.readByteOrNull(offsets[1])] ??
ReaderMode.vertical;
return object;
}
P _personalReaderModeDeserializeProp<P>(
IsarReader reader,
int propertyId,
int offset,
Map<Type, List<int>> allOffsets,
) {
switch (propertyId) {
case 0:
return (reader.readLongOrNull(offset)) as P;
case 1:
return (_PersonalReaderModereaderModeValueEnumMap[
reader.readByteOrNull(offset)] ??
ReaderMode.vertical) as P;
default:
throw IsarError('Unknown property with id $propertyId');
}
}
const _PersonalReaderModereaderModeEnumValueMap = {
'vertical': 0,
'ltr': 1,
'rtl': 2,
'verticalContinuous': 3,
'webtoon': 4,
};
const _PersonalReaderModereaderModeValueEnumMap = {
0: ReaderMode.vertical,
1: ReaderMode.ltr,
2: ReaderMode.rtl,
3: ReaderMode.verticalContinuous,
4: ReaderMode.webtoon,
};
extension PersonalReaderModeQueryFilter
on QueryBuilder<PersonalReaderMode, PersonalReaderMode, QFilterCondition> {
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
mangaIdIsNull() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(const FilterCondition.isNull(
property: r'mangaId',
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
mangaIdIsNotNull() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(const FilterCondition.isNotNull(
property: r'mangaId',
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
mangaIdEqualTo(int? value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'mangaId',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
mangaIdGreaterThan(
int? value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'mangaId',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
mangaIdLessThan(
int? value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'mangaId',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
mangaIdBetween(
int? lower,
int? upper, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between(
property: r'mangaId',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
readerModeEqualTo(ReaderMode value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'readerMode',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
readerModeGreaterThan(
ReaderMode value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'readerMode',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
readerModeLessThan(
ReaderMode value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'readerMode',
value: value,
));
});
}
QueryBuilder<PersonalReaderMode, PersonalReaderMode, QAfterFilterCondition>
readerModeBetween(
ReaderMode lower,
ReaderMode upper, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between(
property: r'readerMode',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
));
});
}
}
extension PersonalReaderModeQueryObject
on QueryBuilder<PersonalReaderMode, PersonalReaderMode, QFilterCondition> {}

View file

@ -3,7 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'package:mangayomi/models/chapter.dart';
import 'package:mangayomi/models/manga_type.dart';
import 'package:mangayomi/services/webview.dart';
import 'package:mangayomi/services/webviews/webview.dart';
import 'package:mangayomi/views/browse/browse_screen.dart';
import 'package:mangayomi/views/browse/extension/extension_lang.dart';
import 'package:mangayomi/views/browse/global_search_screen.dart';

View file

@ -6,7 +6,7 @@ import 'package:mangayomi/views/browse/extension/extension_screen.dart';
import 'package:mangayomi/views/browse/migrate_screen.dart';
import 'package:mangayomi/views/browse/sources_screen.dart';
import 'package:mangayomi/views/library/search_text_form_field.dart';
import 'package:flutter/scheduler.dart';
class BrowseScreen extends StatefulWidget {
const BrowseScreen({super.key});
@ -43,6 +43,7 @@ class _BrowseScreenState extends State<BrowseScreen>
bool _isSearch = false;
@override
Widget build(BuildContext context) {
timeDilation=0.5;
return DefaultTabController(
animationDuration: Duration.zero,
length: 3,

View file

@ -10,6 +10,7 @@ import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/chapter.dart';
import 'package:mangayomi/models/download.dart';
import 'package:mangayomi/models/manga.dart';
import 'package:mangayomi/sources/utils/utils.dart';
import 'package:mangayomi/utils/cached_network.dart';
import 'package:mangayomi/utils/colors.dart';
import 'package:mangayomi/utils/headers.dart';
@ -930,8 +931,11 @@ class _MangaDetailViewState extends ConsumerState<MangaDetailView>
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
elevation: 0),
onPressed: () {
String url = getMangaAPIUrl(widget.manga!.source!).isEmpty
? widget.manga!.link!
: "${getMangaBaseUrl(widget.manga!.source!)}${widget.manga!.link!}";
Map<String, String> data = {
'url': widget.manga!.link!,
'url': url,
'source': widget.manga!.source!,
};
context.push("/mangawebview", extra: data);

View file

@ -6,7 +6,7 @@ part of 'download_provider.dart';
// RiverpodGenerator
// **************************************************************************
String _$downloadChapterHash() => r'c99c801fcfed7065161e0220625ebc8db49703c1';
String _$downloadChapterHash() => r'b702505f8ee75ab0a51eb53c0e0631e703aa6517';
/// Copied from Dart SDK
class _SystemHash {

View file

@ -7,7 +7,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter/material.dart';
import 'package:mangayomi/models/chapter.dart';
import 'package:mangayomi/models/reader_settings.dart';
import 'package:mangayomi/models/settings.dart';
import 'package:mangayomi/views/manga/reader/providers/push_router.dart';
import 'package:mangayomi/services/get_chapter_url.dart';
import 'package:mangayomi/utils/image_detail_info.dart';
@ -16,6 +16,7 @@ import 'package:mangayomi/views/manga/reader/image_view_horizontal.dart';
import 'package:mangayomi/views/manga/reader/image_view_vertical.dart';
import 'package:mangayomi/views/manga/reader/providers/reader_controller_provider.dart';
import 'package:mangayomi/views/manga/reader/widgets/circular_progress_indicator_animate_rotate.dart';
import 'package:mangayomi/views/widgets/progress_center.dart';
import 'package:photo_view/photo_view.dart';
import 'package:photo_view/photo_view_gallery.dart';
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
@ -95,7 +96,7 @@ class MangaReaderView extends ConsumerWidget {
Navigator.pop(context);
return false;
},
child: const Center(child: CircularProgressIndicator()),
child: const ProgressCenter(),
),
);
},

View file

@ -3,7 +3,6 @@ import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/chapter.dart';
import 'package:mangayomi/models/history.dart';
import 'package:mangayomi/models/manga.dart';
import 'package:mangayomi/models/reader_settings.dart';
import 'package:mangayomi/models/settings.dart';
import 'package:mangayomi/views/more/settings/providers/incognito_mode_state_provider.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
@ -43,14 +42,13 @@ class ReaderController extends _$ReaderController {
}
ReaderMode getReaderMode() {
final personalReaderMode = isar.personalReaderModes
.filter()
.mangaIdEqualTo(getManga().id)
.findAllSync();
final personalReaderMode = getIsarSetting()
.personalReaderModeList!
.where((element) => element.mangaId == getManga().id);
if (personalReaderMode.isNotEmpty) {
return personalReaderMode.first.readerMode;
}
return isar.readerSettings.getSync(227)!.defaultReaderMode;
return isar.settings.getSync(227)!.defaultReaderMode;
}
String getReaderModeValue(ReaderMode readerMode) {
@ -66,18 +64,17 @@ class ReaderController extends _$ReaderController {
}
void setReaderMode(ReaderMode newReaderMode) {
final personalReaderMode = isar.personalReaderModes
.filter()
.mangaIdEqualTo(getManga().id)
.findAllSync();
if (personalReaderMode.isNotEmpty) {
isar.writeTxnSync(() => isar.personalReaderModes
.putSync(personalReaderMode.first..readerMode = newReaderMode));
} else {
isar.writeTxnSync(() => isar.personalReaderModes.putSync(
PersonalReaderMode(
mangaId: getManga().id, readerMode: newReaderMode)));
List<PersonalReaderMode>? personalReaderModeLists = [];
for (var personalReaderMode in getIsarSetting().personalReaderModeList!) {
if (personalReaderMode.mangaId != getManga().id) {
personalReaderModeLists.add(personalReaderMode);
}
}
personalReaderModeLists.add(PersonalReaderMode()
..mangaId = getManga().id
..readerMode = newReaderMode);
isar.writeTxnSync(() => isar.settings.putSync(
getIsarSetting()..personalReaderModeList = personalReaderModeLists));
}
void setShowPageNumber(bool value) {

View file

@ -123,7 +123,7 @@ class CurrentIndexProvider
}
}
String _$readerControllerHash() => r'f7b59c997f224f05d925ff8ccea2eb67d10ef5ea';
String _$readerControllerHash() => r'cffb8dfcfd338288d90757414d579fffcd478d29';
abstract class _$ReaderController extends BuildlessAutoDisposeNotifier<void> {
late final Chapter chapter;