forked from firka/firka
new settings model
This commit is contained in:
@@ -5,8 +5,9 @@ part 'app_settings_model.g.dart';
|
||||
@collection
|
||||
class AppSettingsModel {
|
||||
Id? id;
|
||||
bool? useCustomHost;
|
||||
String? customHost;
|
||||
double? valueDouble;
|
||||
bool? valueBool;
|
||||
String? valueString;
|
||||
|
||||
AppSettingsModel();
|
||||
}
|
||||
|
||||
@@ -17,22 +17,22 @@ const AppSettingsModelSchema = CollectionSchema(
|
||||
name: r'AppSettingsModel',
|
||||
id: -638838212012723081,
|
||||
properties: {
|
||||
r'customHost': PropertySchema(
|
||||
r'valueBool': PropertySchema(
|
||||
id: 0,
|
||||
name: r'customHost',
|
||||
type: IsarType.string,
|
||||
),
|
||||
r'useCustomHost': PropertySchema(
|
||||
id: 1,
|
||||
name: r'useCustomHost',
|
||||
name: r'valueBool',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'valueDouble': PropertySchema(
|
||||
id: 1,
|
||||
name: r'valueDouble',
|
||||
type: IsarType.double,
|
||||
)
|
||||
},
|
||||
estimateSize: _appSettingsModelEstimateSize,
|
||||
serialize: _appSettingsModelSerialize,
|
||||
deserialize: _appSettingsModelDeserialize,
|
||||
deserializeProp: _appSettingsModelDeserializeProp,
|
||||
idName: r'ignored',
|
||||
idName: r'id',
|
||||
indexes: {},
|
||||
links: {},
|
||||
embeddedSchemas: {},
|
||||
@@ -48,12 +48,6 @@ int _appSettingsModelEstimateSize(
|
||||
Map<Type, List<int>> allOffsets,
|
||||
) {
|
||||
var bytesCount = offsets.last;
|
||||
{
|
||||
final value = object.customHost;
|
||||
if (value != null) {
|
||||
bytesCount += 3 + value.length * 3;
|
||||
}
|
||||
}
|
||||
return bytesCount;
|
||||
}
|
||||
|
||||
@@ -63,8 +57,8 @@ void _appSettingsModelSerialize(
|
||||
List<int> offsets,
|
||||
Map<Type, List<int>> allOffsets,
|
||||
) {
|
||||
writer.writeString(offsets[0], object.customHost);
|
||||
writer.writeBool(offsets[1], object.useCustomHost);
|
||||
writer.writeBool(offsets[0], object.valueBool);
|
||||
writer.writeDouble(offsets[1], object.valueDouble);
|
||||
}
|
||||
|
||||
AppSettingsModel _appSettingsModelDeserialize(
|
||||
@@ -74,9 +68,9 @@ AppSettingsModel _appSettingsModelDeserialize(
|
||||
Map<Type, List<int>> allOffsets,
|
||||
) {
|
||||
final object = AppSettingsModel();
|
||||
object.customHost = reader.readStringOrNull(offsets[0]);
|
||||
object.id = id;
|
||||
object.useCustomHost = reader.readBoolOrNull(offsets[1]);
|
||||
object.valueBool = reader.readBoolOrNull(offsets[0]);
|
||||
object.valueDouble = reader.readDoubleOrNull(offsets[1]);
|
||||
return object;
|
||||
}
|
||||
|
||||
@@ -88,9 +82,9 @@ P _appSettingsModelDeserializeProp<P>(
|
||||
) {
|
||||
switch (propertyId) {
|
||||
case 0:
|
||||
return (reader.readStringOrNull(offset)) as P;
|
||||
case 1:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 1:
|
||||
return (reader.readDoubleOrNull(offset)) as P;
|
||||
default:
|
||||
throw IsarError('Unknown property with id $propertyId');
|
||||
}
|
||||
@@ -111,7 +105,7 @@ void _appSettingsModelAttach(
|
||||
|
||||
extension AppSettingsModelQueryWhereSort
|
||||
on QueryBuilder<AppSettingsModel, AppSettingsModel, QWhere> {
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterWhere> anyIgnored() {
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterWhere> anyId() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(const IdWhereClause.any());
|
||||
});
|
||||
@@ -120,69 +114,68 @@ extension AppSettingsModelQueryWhereSort
|
||||
|
||||
extension AppSettingsModelQueryWhere
|
||||
on QueryBuilder<AppSettingsModel, AppSettingsModel, QWhereClause> {
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterWhereClause>
|
||||
ignoredEqualTo(Id ignored) {
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterWhereClause> idEqualTo(
|
||||
Id id) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(IdWhereClause.between(
|
||||
lower: ignored,
|
||||
upper: ignored,
|
||||
lower: id,
|
||||
upper: id,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterWhereClause>
|
||||
ignoredNotEqualTo(Id ignored) {
|
||||
idNotEqualTo(Id id) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
if (query.whereSort == Sort.asc) {
|
||||
return query
|
||||
.addWhereClause(
|
||||
IdWhereClause.lessThan(upper: ignored, includeUpper: false),
|
||||
IdWhereClause.lessThan(upper: id, includeUpper: false),
|
||||
)
|
||||
.addWhereClause(
|
||||
IdWhereClause.greaterThan(lower: ignored, includeLower: false),
|
||||
IdWhereClause.greaterThan(lower: id, includeLower: false),
|
||||
);
|
||||
} else {
|
||||
return query
|
||||
.addWhereClause(
|
||||
IdWhereClause.greaterThan(lower: ignored, includeLower: false),
|
||||
IdWhereClause.greaterThan(lower: id, includeLower: false),
|
||||
)
|
||||
.addWhereClause(
|
||||
IdWhereClause.lessThan(upper: ignored, includeUpper: false),
|
||||
IdWhereClause.lessThan(upper: id, includeUpper: false),
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterWhereClause>
|
||||
ignoredGreaterThan(Id ignored, {bool include = false}) {
|
||||
idGreaterThan(Id id, {bool include = false}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(
|
||||
IdWhereClause.greaterThan(lower: ignored, includeLower: include),
|
||||
IdWhereClause.greaterThan(lower: id, includeLower: include),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterWhereClause>
|
||||
ignoredLessThan(Id ignored, {bool include = false}) {
|
||||
idLessThan(Id id, {bool include = false}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(
|
||||
IdWhereClause.lessThan(upper: ignored, includeUpper: include),
|
||||
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterWhereClause>
|
||||
ignoredBetween(
|
||||
Id lowerIgnored,
|
||||
Id upperIgnored, {
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterWhereClause> idBetween(
|
||||
Id lowerId,
|
||||
Id upperId, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(IdWhereClause.between(
|
||||
lower: lowerIgnored,
|
||||
lower: lowerId,
|
||||
includeLower: includeLower,
|
||||
upper: upperIgnored,
|
||||
upper: upperId,
|
||||
includeUpper: includeUpper,
|
||||
));
|
||||
});
|
||||
@@ -192,217 +185,63 @@ extension AppSettingsModelQueryWhere
|
||||
extension AppSettingsModelQueryFilter
|
||||
on QueryBuilder<AppSettingsModel, AppSettingsModel, QFilterCondition> {
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
customHostIsNull() {
|
||||
idIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'customHost',
|
||||
property: r'id',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
customHostIsNotNull() {
|
||||
idIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'customHost',
|
||||
property: r'id',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
customHostEqualTo(
|
||||
String? value, {
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
idEqualTo(Id? value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'customHost',
|
||||
value: value,
|
||||
caseSensitive: caseSensitive,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
customHostGreaterThan(
|
||||
String? value, {
|
||||
bool include = false,
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
||||
include: include,
|
||||
property: r'customHost',
|
||||
value: value,
|
||||
caseSensitive: caseSensitive,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
customHostLessThan(
|
||||
String? value, {
|
||||
bool include = false,
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.lessThan(
|
||||
include: include,
|
||||
property: r'customHost',
|
||||
value: value,
|
||||
caseSensitive: caseSensitive,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
customHostBetween(
|
||||
String? lower,
|
||||
String? upper, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.between(
|
||||
property: r'customHost',
|
||||
lower: lower,
|
||||
includeLower: includeLower,
|
||||
upper: upper,
|
||||
includeUpper: includeUpper,
|
||||
caseSensitive: caseSensitive,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
customHostStartsWith(
|
||||
String value, {
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.startsWith(
|
||||
property: r'customHost',
|
||||
value: value,
|
||||
caseSensitive: caseSensitive,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
customHostEndsWith(
|
||||
String value, {
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.endsWith(
|
||||
property: r'customHost',
|
||||
value: value,
|
||||
caseSensitive: caseSensitive,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
customHostContains(String value, {bool caseSensitive = true}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.contains(
|
||||
property: r'customHost',
|
||||
value: value,
|
||||
caseSensitive: caseSensitive,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
customHostMatches(String pattern, {bool caseSensitive = true}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.matches(
|
||||
property: r'customHost',
|
||||
wildcard: pattern,
|
||||
caseSensitive: caseSensitive,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
customHostIsEmpty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'customHost',
|
||||
value: '',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
customHostIsNotEmpty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
||||
property: r'customHost',
|
||||
value: '',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
ignoredIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'ignored',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
ignoredIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'ignored',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
ignoredEqualTo(Id? value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'ignored',
|
||||
property: r'id',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
ignoredGreaterThan(
|
||||
idGreaterThan(
|
||||
Id? value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
||||
include: include,
|
||||
property: r'ignored',
|
||||
property: r'id',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
ignoredLessThan(
|
||||
idLessThan(
|
||||
Id? value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.lessThan(
|
||||
include: include,
|
||||
property: r'ignored',
|
||||
property: r'id',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
ignoredBetween(
|
||||
idBetween(
|
||||
Id? lower,
|
||||
Id? upper, {
|
||||
bool includeLower = true,
|
||||
@@ -410,7 +249,7 @@ extension AppSettingsModelQueryFilter
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.between(
|
||||
property: r'ignored',
|
||||
property: r'id',
|
||||
lower: lower,
|
||||
includeLower: includeLower,
|
||||
upper: upper,
|
||||
@@ -420,32 +259,116 @@ extension AppSettingsModelQueryFilter
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
useCustomHostIsNull() {
|
||||
valueBoolIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'useCustomHost',
|
||||
property: r'valueBool',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
useCustomHostIsNotNull() {
|
||||
valueBoolIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'useCustomHost',
|
||||
property: r'valueBool',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
useCustomHostEqualTo(bool? value) {
|
||||
valueBoolEqualTo(bool? value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'useCustomHost',
|
||||
property: r'valueBool',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
valueDoubleIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'valueDouble',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
valueDoubleIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'valueDouble',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
valueDoubleEqualTo(
|
||||
double? value, {
|
||||
double epsilon = Query.epsilon,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'valueDouble',
|
||||
value: value,
|
||||
epsilon: epsilon,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
valueDoubleGreaterThan(
|
||||
double? value, {
|
||||
bool include = false,
|
||||
double epsilon = Query.epsilon,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
||||
include: include,
|
||||
property: r'valueDouble',
|
||||
value: value,
|
||||
epsilon: epsilon,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
valueDoubleLessThan(
|
||||
double? value, {
|
||||
bool include = false,
|
||||
double epsilon = Query.epsilon,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.lessThan(
|
||||
include: include,
|
||||
property: r'valueDouble',
|
||||
value: value,
|
||||
epsilon: epsilon,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterFilterCondition>
|
||||
valueDoubleBetween(
|
||||
double? lower,
|
||||
double? upper, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
double epsilon = Query.epsilon,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.between(
|
||||
property: r'valueDouble',
|
||||
lower: lower,
|
||||
includeLower: includeLower,
|
||||
upper: upper,
|
||||
includeUpper: includeUpper,
|
||||
epsilon: epsilon,
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
extension AppSettingsModelQueryObject
|
||||
@@ -457,75 +380,74 @@ extension AppSettingsModelQueryLinks
|
||||
extension AppSettingsModelQuerySortBy
|
||||
on QueryBuilder<AppSettingsModel, AppSettingsModel, QSortBy> {
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterSortBy>
|
||||
sortByCustomHost() {
|
||||
sortByValueBool() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'customHost', Sort.asc);
|
||||
return query.addSortBy(r'valueBool', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterSortBy>
|
||||
sortByCustomHostDesc() {
|
||||
sortByValueBoolDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'customHost', Sort.desc);
|
||||
return query.addSortBy(r'valueBool', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterSortBy>
|
||||
sortByUseCustomHost() {
|
||||
sortByValueDouble() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'useCustomHost', Sort.asc);
|
||||
return query.addSortBy(r'valueDouble', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterSortBy>
|
||||
sortByUseCustomHostDesc() {
|
||||
sortByValueDoubleDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'useCustomHost', Sort.desc);
|
||||
return query.addSortBy(r'valueDouble', Sort.desc);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
extension AppSettingsModelQuerySortThenBy
|
||||
on QueryBuilder<AppSettingsModel, AppSettingsModel, QSortThenBy> {
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterSortBy>
|
||||
thenByCustomHost() {
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterSortBy> thenById() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'customHost', Sort.asc);
|
||||
return query.addSortBy(r'id', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterSortBy>
|
||||
thenByCustomHostDesc() {
|
||||
thenByIdDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'customHost', Sort.desc);
|
||||
return query.addSortBy(r'id', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterSortBy>
|
||||
thenByIgnored() {
|
||||
thenByValueBool() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'ignored', Sort.asc);
|
||||
return query.addSortBy(r'valueBool', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterSortBy>
|
||||
thenByIgnoredDesc() {
|
||||
thenByValueBoolDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'ignored', Sort.desc);
|
||||
return query.addSortBy(r'valueBool', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterSortBy>
|
||||
thenByUseCustomHost() {
|
||||
thenByValueDouble() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'useCustomHost', Sort.asc);
|
||||
return query.addSortBy(r'valueDouble', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QAfterSortBy>
|
||||
thenByUseCustomHostDesc() {
|
||||
thenByValueDoubleDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'useCustomHost', Sort.desc);
|
||||
return query.addSortBy(r'valueDouble', Sort.desc);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -533,39 +455,38 @@ extension AppSettingsModelQuerySortThenBy
|
||||
extension AppSettingsModelQueryWhereDistinct
|
||||
on QueryBuilder<AppSettingsModel, AppSettingsModel, QDistinct> {
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QDistinct>
|
||||
distinctByCustomHost({bool caseSensitive = true}) {
|
||||
distinctByValueBool() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addDistinctBy(r'customHost', caseSensitive: caseSensitive);
|
||||
return query.addDistinctBy(r'valueBool');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, AppSettingsModel, QDistinct>
|
||||
distinctByUseCustomHost() {
|
||||
distinctByValueDouble() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addDistinctBy(r'useCustomHost');
|
||||
return query.addDistinctBy(r'valueDouble');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
extension AppSettingsModelQueryProperty
|
||||
on QueryBuilder<AppSettingsModel, AppSettingsModel, QQueryProperty> {
|
||||
QueryBuilder<AppSettingsModel, int, QQueryOperations> ignoredProperty() {
|
||||
QueryBuilder<AppSettingsModel, int, QQueryOperations> idProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'ignored');
|
||||
return query.addPropertyName(r'id');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, String?, QQueryOperations>
|
||||
customHostProperty() {
|
||||
QueryBuilder<AppSettingsModel, bool?, QQueryOperations> valueBoolProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'customHost');
|
||||
return query.addPropertyName(r'valueBool');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<AppSettingsModel, bool?, QQueryOperations>
|
||||
useCustomHostProperty() {
|
||||
QueryBuilder<AppSettingsModel, double?, QQueryOperations>
|
||||
valueDoubleProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'useCustomHost');
|
||||
return query.addPropertyName(r'valueDouble');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
246
firka/lib/helpers/settings/setting.dart
Normal file
246
firka/lib/helpers/settings/setting.dart
Normal file
@@ -0,0 +1,246 @@
|
||||
import 'dart:collection';
|
||||
|
||||
import 'package:firka/helpers/db/models/app_settings_model.dart';
|
||||
import 'package:firka/ui/widget/firka_icon.dart';
|
||||
import 'package:isar/isar.dart';
|
||||
import 'package:majesticons_flutter/majesticons_flutter.dart';
|
||||
|
||||
class SettingsStore {
|
||||
LinkedHashMap<String, SettingsItem> items = LinkedHashMap.of({});
|
||||
|
||||
SettingsStore() {
|
||||
items["settings"] = SettingsGroup(
|
||||
0_001,
|
||||
LinkedHashMap.of({
|
||||
"application": SettingsSubGroup(1_001, FirkaIconType.Majesticons,
|
||||
Majesticon.settingsCogSolid, "Alkalmazás", []),
|
||||
"customization": SettingsSubGroup(2_001, FirkaIconType.Majesticons,
|
||||
Majesticon.flower2Solid, "Személyre szabás", []),
|
||||
"notifications": SettingsSubGroup(1_001, FirkaIconType.Majesticons,
|
||||
Majesticon.bellSolid, "Értesítések", []),
|
||||
"extras": SettingsSubGroup(1_001, FirkaIconType.Majesticons,
|
||||
Majesticon.lightningBoltSolid, "Extrák", []),
|
||||
}));
|
||||
|
||||
items;
|
||||
}
|
||||
|
||||
LinkedHashMap<String, SettingsItem> group(String key) {
|
||||
return (items[key] as SettingsGroup).children;
|
||||
}
|
||||
|
||||
Future<void> save(IsarCollection<AppSettingsModel> model) async {
|
||||
for (var item in items.values) {
|
||||
item.save(model);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> load(IsarCollection<AppSettingsModel> model) async {
|
||||
for (var item in items.values) {
|
||||
item.load(model);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension SettingExt on LinkedHashMap<String, SettingsItem> {
|
||||
LinkedHashMap<String, SettingsItem> group(String key) {
|
||||
return (this[key] as SettingsGroup).children;
|
||||
}
|
||||
|
||||
String string(String key) {
|
||||
return (this[key] as SettingsString).value;
|
||||
}
|
||||
|
||||
void setString(String key, String value) {
|
||||
(this[key] as SettingsString).value = value;
|
||||
}
|
||||
|
||||
double dbl(String key) {
|
||||
return (this[key] as SettingsDouble).value;
|
||||
}
|
||||
|
||||
void setDbl(String key, double value) {
|
||||
(this[key] as SettingsDouble).value = value;
|
||||
}
|
||||
|
||||
bool boolean(String key) {
|
||||
return (this[key] as SettingsBoolean).value;
|
||||
}
|
||||
|
||||
void setBoolean(String key, bool value) {
|
||||
(this[key] as SettingsBoolean).value = value;
|
||||
}
|
||||
}
|
||||
|
||||
class SettingsItem {
|
||||
Id key;
|
||||
|
||||
SettingsItem(this.key);
|
||||
|
||||
void save(IsarCollection<AppSettingsModel> model) {}
|
||||
|
||||
void load(IsarCollection<AppSettingsModel> model) {}
|
||||
}
|
||||
|
||||
class SettingsGroup implements SettingsItem {
|
||||
@override
|
||||
Id key;
|
||||
LinkedHashMap<String, SettingsItem> children;
|
||||
|
||||
SettingsGroup(this.key, this.children);
|
||||
|
||||
@override
|
||||
void load(IsarCollection<AppSettingsModel> model) {
|
||||
for (var item in children.values) {
|
||||
item.load(model);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void save(IsarCollection<AppSettingsModel> model) {
|
||||
for (var item in children.values) {
|
||||
item.save(model);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class SettingsSubGroup implements SettingsItem {
|
||||
@override
|
||||
Id key;
|
||||
FirkaIconType? iconType;
|
||||
Object? iconData;
|
||||
String title;
|
||||
List<SettingsItem> children;
|
||||
|
||||
SettingsSubGroup(
|
||||
this.key, this.iconType, this.iconData, this.title, this.children);
|
||||
|
||||
@override
|
||||
void load(IsarCollection<AppSettingsModel> model) {
|
||||
for (var item in children) {
|
||||
item.load(model);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void save(IsarCollection<AppSettingsModel> model) {
|
||||
for (var item in children) {
|
||||
item.save(model);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class SettingsHeader implements SettingsItem {
|
||||
@override
|
||||
Id key;
|
||||
String title;
|
||||
|
||||
SettingsHeader(this.key, this.title);
|
||||
|
||||
@override
|
||||
void load(IsarCollection<AppSettingsModel> model) {}
|
||||
|
||||
@override
|
||||
void save(IsarCollection<AppSettingsModel> model) {}
|
||||
}
|
||||
|
||||
class SettingsSubtitle implements SettingsItem {
|
||||
@override
|
||||
Id key;
|
||||
String title;
|
||||
|
||||
SettingsSubtitle(this.key, this.title);
|
||||
|
||||
@override
|
||||
void load(IsarCollection<AppSettingsModel> model) {}
|
||||
|
||||
@override
|
||||
void save(IsarCollection<AppSettingsModel> model) {}
|
||||
}
|
||||
|
||||
class SettingsBoolean implements SettingsItem {
|
||||
@override
|
||||
Id key;
|
||||
String title;
|
||||
bool value = false;
|
||||
bool defaultValue;
|
||||
|
||||
SettingsBoolean(this.key, this.title, this.defaultValue);
|
||||
|
||||
@override
|
||||
void load(IsarCollection<AppSettingsModel> model) {
|
||||
var v = model.getSync(key);
|
||||
if (v == null || v.valueBool == null) {
|
||||
value = defaultValue;
|
||||
} else {
|
||||
value = v.valueBool!;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void save(IsarCollection<AppSettingsModel> model) {
|
||||
var v = AppSettingsModel();
|
||||
v.id = key;
|
||||
v.valueBool = value;
|
||||
|
||||
model.put(v);
|
||||
}
|
||||
}
|
||||
|
||||
class SettingsDouble implements SettingsItem {
|
||||
@override
|
||||
Id key;
|
||||
String title;
|
||||
double value = 0;
|
||||
double defaultValue;
|
||||
|
||||
SettingsDouble(this.key, this.title, this.defaultValue);
|
||||
|
||||
@override
|
||||
void load(IsarCollection<AppSettingsModel> model) {
|
||||
var v = model.getSync(key);
|
||||
if (v == null || v.valueDouble == null) {
|
||||
value = defaultValue;
|
||||
} else {
|
||||
value = v.valueDouble!;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void save(IsarCollection<AppSettingsModel> model) {
|
||||
var v = AppSettingsModel();
|
||||
v.id = key;
|
||||
v.valueDouble = value;
|
||||
|
||||
model.put(v);
|
||||
}
|
||||
}
|
||||
|
||||
class SettingsString implements SettingsItem {
|
||||
@override
|
||||
Id key;
|
||||
String title;
|
||||
String value = "";
|
||||
String defaultValue;
|
||||
|
||||
SettingsString(this.key, this.title, this.defaultValue);
|
||||
|
||||
@override
|
||||
void load(IsarCollection<AppSettingsModel> model) {
|
||||
var v = model.getSync(key);
|
||||
if (v == null || v.valueString == null) {
|
||||
value = defaultValue;
|
||||
} else {
|
||||
value = v.valueString!;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void save(IsarCollection<AppSettingsModel> model) {
|
||||
var v = AppSettingsModel();
|
||||
v.id = key;
|
||||
v.valueString = value;
|
||||
|
||||
model.put(v);
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import 'package:firka/helpers/db/models/generic_cache_model.dart';
|
||||
import 'package:firka/helpers/db/models/timetable_cache_model.dart';
|
||||
import 'package:firka/helpers/db/models/token_model.dart';
|
||||
import 'package:firka/helpers/extensions.dart';
|
||||
import 'package:firka/helpers/settings/setting.dart';
|
||||
import 'package:firka/ui/phone/pages/error/error_page.dart';
|
||||
import 'package:firka/ui/phone/screens/debug/debug_screen.dart';
|
||||
import 'package:firka/ui/phone/screens/home/home_screen.dart';
|
||||
@@ -22,7 +23,6 @@ import 'package:path/path.dart' as p;
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:watch_connectivity/watch_connectivity.dart';
|
||||
|
||||
import 'helpers/api/consts.dart';
|
||||
import 'helpers/db/models/homework_cache_model.dart';
|
||||
import 'l10n/app_localizations.dart';
|
||||
|
||||
@@ -38,26 +38,13 @@ class AppInitialization {
|
||||
int tokenCount;
|
||||
bool hasWatchListener = false;
|
||||
Uint8List? profilePicture;
|
||||
AppSettingsModel settings;
|
||||
SettingsStore settings;
|
||||
|
||||
AppInitialization({
|
||||
required this.isar,
|
||||
required this.tokenCount,
|
||||
required this.settings,
|
||||
});
|
||||
|
||||
bool _writing = false;
|
||||
|
||||
Future<void> saveSettings() async {
|
||||
while (_writing) {
|
||||
await Future.delayed(const Duration(milliseconds: 50));
|
||||
}
|
||||
_writing = true;
|
||||
await isar.writeTxn(() async {
|
||||
await isar.appSettingsModels.put(settings);
|
||||
});
|
||||
_writing = false;
|
||||
}
|
||||
}
|
||||
|
||||
Future<Isar> initDB() async {
|
||||
@@ -82,32 +69,17 @@ Future<Isar> initDB() async {
|
||||
Future<AppInitialization> initializeApp() async {
|
||||
final isar = await initDB();
|
||||
final tokenCount = await isar.tokenModels.count();
|
||||
var settings = AppSettingsModel();
|
||||
settings.id = 0;
|
||||
|
||||
if (kDebugMode) {
|
||||
print('Token count: $tokenCount');
|
||||
}
|
||||
|
||||
if (await isar.appSettingsModels.count() != 0) {
|
||||
settings = (await isar.appSettingsModels.where().findFirst())!;
|
||||
}
|
||||
|
||||
if (settings.useCustomHost != null && settings.useCustomHost!) {
|
||||
var host = settings.customHost!;
|
||||
|
||||
KretaEndpoints.kretaBase = "https://$host";
|
||||
KretaEndpoints.kretaIdp = KretaEndpoints.kretaBase;
|
||||
KretaEndpoints.kretaLoginUrl =
|
||||
"${KretaEndpoints
|
||||
.kretaBase}/Account/Login?ReturnUrl=%2Fconnect%2Fauthorize%2Fcallback%3Fprompt%3Dlogin%26nonce%3DwylCrqT4oN6PPgQn2yQB0euKei9nJeZ6_ffJ-VpSKZU%26response_type%3Dcode%26code_challenge_method%3DS256%26scope%3Dopenid%2520email%2520offline_access%2520kreta-ellenorzo-webapi.public%2520kreta-eugyintezes-webapi.public%2520kreta-fileservice-webapi.public%2520kreta-mobile-global-webapi.public%2520kreta-dkt-webapi.public%2520kreta-ier-webapi.public%26code_challenge%3DHByZRRnPGb-Ko_wTI7ibIba1HQ6lor0ws4bcgReuYSQ%26redirect_uri%3Dhttps%253A%252F%252Fmobil.e-kreta.hu%252Fellenorzo-student%252Fprod%252Foauthredirect%26client_id%3Dkreta-ellenorzo-student-mobile-ios%26state%3Dkreta_student_mobile%26suppressed_prompt%3Dlogin";
|
||||
KretaEndpoints.tokenGrantUrl = "${KretaEndpoints.kretaBase}/connect/token";
|
||||
}
|
||||
var settings = SettingsStore();
|
||||
|
||||
var init = AppInitialization(
|
||||
isar: isar,
|
||||
tokenCount: tokenCount,
|
||||
settings: settings,
|
||||
settings: SettingsStore(),
|
||||
);
|
||||
|
||||
resetOldTimeTableCache(isar);
|
||||
@@ -238,13 +210,11 @@ class InitializationScreen extends StatelessWidget {
|
||||
supportedLocales: AppLocalizations.supportedLocales,
|
||||
home: screen,
|
||||
routes: {
|
||||
'/login': (context) =>
|
||||
LoginScreen(
|
||||
'/login': (context) => LoginScreen(
|
||||
initData,
|
||||
key: ValueKey('loginScreen'),
|
||||
),
|
||||
'/debug': (context) =>
|
||||
DebugScreen(
|
||||
'/debug': (context) => DebugScreen(
|
||||
initData,
|
||||
key: ValueKey('debugScreen'),
|
||||
),
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import 'dart:async';
|
||||
import 'dart:math' as math;
|
||||
|
||||
import 'package:carousel_slider/carousel_slider.dart';
|
||||
@@ -27,7 +26,6 @@ class LoginScreen extends StatefulWidget {
|
||||
|
||||
class _LoginScreenState extends State<LoginScreen> {
|
||||
late WebViewController _webViewController;
|
||||
Timer? _timer;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -94,136 +92,9 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_timer?.cancel();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void startTimer() {
|
||||
_timer = Timer(const Duration(seconds: 3), () {
|
||||
showModalBottomSheet(
|
||||
context: context,
|
||||
elevation: 100,
|
||||
isScrollControlled: true,
|
||||
enableDrag: true,
|
||||
backgroundColor: Colors.transparent,
|
||||
barrierColor: Colors.transparent,
|
||||
constraints: BoxConstraints(
|
||||
maxHeight: MediaQuery.of(context).size.height * 0.5,
|
||||
),
|
||||
builder: (BuildContext context) {
|
||||
return Stack(
|
||||
children: [
|
||||
Positioned.fill(
|
||||
child: GestureDetector(
|
||||
onTap: () => Navigator.pop(context),
|
||||
behavior: HitTestBehavior.opaque,
|
||||
child: Container(color: Colors.transparent),
|
||||
),
|
||||
),
|
||||
Align(
|
||||
alignment: Alignment.bottomCenter,
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: appStyle.colors.card,
|
||||
borderRadius:
|
||||
BorderRadius.vertical(top: Radius.circular(16)),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Center(
|
||||
child: TextFormField(
|
||||
decoration: const InputDecoration(
|
||||
border: UnderlineInputBorder(),
|
||||
labelText: 'Kréta api hostname(:port)',
|
||||
),
|
||||
onChanged: (v) {
|
||||
initData.settings.customHost = v;
|
||||
},
|
||||
),
|
||||
),
|
||||
SizedBox(height: 10),
|
||||
Container(
|
||||
width: double.infinity,
|
||||
height: 48,
|
||||
padding: const EdgeInsets.symmetric(vertical: 8),
|
||||
decoration: ShapeDecoration(
|
||||
color: const Color(0xFFA7DB21), // Accent-Accent
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
shadows: const [
|
||||
BoxShadow(
|
||||
color: Color(0x33647E22),
|
||||
blurRadius: 2,
|
||||
offset: Offset(0, 1),
|
||||
spreadRadius: 0,
|
||||
)
|
||||
],
|
||||
),
|
||||
child: GestureDetector(
|
||||
child: Center(
|
||||
child: Text(
|
||||
'Set hostname',
|
||||
textAlign: TextAlign.center,
|
||||
style: appStyle.fonts.H_18px.copyWith(
|
||||
color: appStyle.colors.textPrimary),
|
||||
),
|
||||
),
|
||||
onTap: () {
|
||||
if (initData.settings.customHost != null &&
|
||||
initData.settings.customHost != "") {
|
||||
var host = initData.settings.customHost!;
|
||||
KretaEndpoints.kretaBase = "https://$host";
|
||||
KretaEndpoints.kretaIdp =
|
||||
KretaEndpoints.kretaBase;
|
||||
KretaEndpoints.kretaLoginUrl =
|
||||
"${KretaEndpoints.kretaIdp}/Account/Login?ReturnUrl=%2Fconnect%2Fauthorize%2Fcallback%3Fprompt%3Dlogin%26nonce%3DwylCrqT4oN6PPgQn2yQB0euKei9nJeZ6_ffJ-VpSKZU%26response_type%3Dcode%26code_challenge_method%3DS256%26scope%3Dopenid%2520email%2520offline_access%2520kreta-ellenorzo-webapi.public%2520kreta-eugyintezes-webapi.public%2520kreta-fileservice-webapi.public%2520kreta-mobile-global-webapi.public%2520kreta-dkt-webapi.public%2520kreta-ier-webapi.public%26code_challenge%3DHByZRRnPGb-Ko_wTI7ibIba1HQ6lor0ws4bcgReuYSQ%26redirect_uri%3Dhttps%253A%252F%252Fmobil.e-kreta.hu%252Fellenorzo-student%252Fprod%252Foauthredirect%26client_id%3Dkreta-ellenorzo-student-mobile-ios%26state%3Dkreta_student_mobile%26suppressed_prompt%3Dlogin";
|
||||
KretaEndpoints.tokenGrantUrl =
|
||||
"${KretaEndpoints.kretaIdp}/connect/token";
|
||||
|
||||
initData.settings.useCustomHost = true;
|
||||
} else {
|
||||
KretaEndpoints.kretaBase = "e-kreta.hu";
|
||||
KretaEndpoints.kretaIdp =
|
||||
"https://idp.e-kreta.hu";
|
||||
KretaEndpoints.kretaLoginUrl =
|
||||
"${KretaEndpoints.kretaIdp}/Account/Login?ReturnUrl=%2Fconnect%2Fauthorize%2Fcallback%3Fprompt%3Dlogin%26nonce%3DwylCrqT4oN6PPgQn2yQB0euKei9nJeZ6_ffJ-VpSKZU%26response_type%3Dcode%26code_challenge_method%3DS256%26scope%3Dopenid%2520email%2520offline_access%2520kreta-ellenorzo-webapi.public%2520kreta-eugyintezes-webapi.public%2520kreta-fileservice-webapi.public%2520kreta-mobile-global-webapi.public%2520kreta-dkt-webapi.public%2520kreta-ier-webapi.public%26code_challenge%3DHByZRRnPGb-Ko_wTI7ibIba1HQ6lor0ws4bcgReuYSQ%26redirect_uri%3Dhttps%253A%252F%252Fmobil.e-kreta.hu%252Fellenorzo-student%252Fprod%252Foauthredirect%26client_id%3Dkreta-ellenorzo-student-mobile-ios%26state%3Dkreta_student_mobile%26suppressed_prompt%3Dlogin";
|
||||
KretaEndpoints.tokenGrantUrl =
|
||||
"${KretaEndpoints.kretaIdp}/connect/token";
|
||||
|
||||
initData.settings.useCustomHost = false;
|
||||
}
|
||||
|
||||
// TODO: Fix this
|
||||
initData.saveSettings();
|
||||
setState(() {
|
||||
_webViewController.loadRequest(
|
||||
Uri.parse(KretaEndpoints.kretaLoginUrl));
|
||||
});
|
||||
|
||||
Navigator.pop(context);
|
||||
},
|
||||
)),
|
||||
// TODO: fix this insane shitcode
|
||||
SizedBox(
|
||||
height: MediaQuery.of(context).viewInsets.bottom *
|
||||
1000),
|
||||
SizedBox(height: 75),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final paddingWidthHorizontal = MediaQuery.of(context).size.width -
|
||||
@@ -235,8 +106,8 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
'picture': 'assets/images/carousel/slide1.png',
|
||||
'background': 'assets/images/carousel/slide1_background.gif',
|
||||
'foreground': '',
|
||||
'rotation':
|
||||
180.00, // „Mi nekünk két szám típusunk van, int (egy 32 bites szám) meg a double (egy 64 bites tört szám), KURVA ANYÁDAT”
|
||||
'rotation': 180.00,
|
||||
// „Mi nekünk két szám típusunk van, int (egy 32 bites szám) meg a double (egy 64 bites tört szám), KURVA ANYÁDAT”
|
||||
'scale': 1.5,
|
||||
'x': 0.00,
|
||||
'y': 150.00,
|
||||
@@ -247,8 +118,8 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
'picture': 'assets/images/carousel/slide2.png',
|
||||
'background': 'assets/images/carousel/slide2_background.gif',
|
||||
'foreground': '',
|
||||
'rotation':
|
||||
180.00, //Mivel radiáns, és nullával nem lehet osztani (remélem tudtad), ezért ha eggyel osztunk akkor egy marad
|
||||
'rotation': 180.00,
|
||||
//Mivel radiáns, és nullával nem lehet osztani (remélem tudtad), ezért ha eggyel osztunk akkor egy marad
|
||||
'scale': 1.55,
|
||||
'x': 10.00,
|
||||
'y': 160.00,
|
||||
@@ -275,7 +146,7 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
'x': -5.00,
|
||||
'y': 80.00,
|
||||
}
|
||||
//TODO: implement simulated physics so that the little boxes can move like the phone moves
|
||||
//TODO: implement simulated physics so that the little boxes can move like the phone moves
|
||||
];
|
||||
|
||||
return MaterialApp(
|
||||
@@ -579,12 +450,7 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
style: appStyle.fonts.H_12px
|
||||
.copyWith(color: appStyle.colors.textTertiary),
|
||||
),
|
||||
onTapDown: (_) {
|
||||
startTimer();
|
||||
},
|
||||
onTapUp: (_) {
|
||||
_timer?.cancel();
|
||||
},
|
||||
onTap: () {},
|
||||
)
|
||||
],
|
||||
),
|
||||
@@ -604,7 +470,8 @@ class ImageClipper extends CustomClipper<Rect> {
|
||||
|
||||
@override
|
||||
Rect getClip(Size size) {
|
||||
return Rect.fromLTWH(0, -70, _mediaQuery.size.width, _mediaQuery.size.height);
|
||||
return Rect.fromLTWH(
|
||||
0, -70, _mediaQuery.size.width, _mediaQuery.size.height);
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user