intermediate

This commit is contained in:
Fabian Freund
2024-09-13 09:11:06 +02:00
parent 3b047b5d8a
commit 37d2c84d7f
155 changed files with 5666 additions and 1816 deletions
@@ -1,4 +1,7 @@
import 'dart:ui';
import 'package:drift/drift.dart';
import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
import 'package:lensai/features/bangs/data/database/database.dart';
import 'package:lensai/features/bangs/data/models/bang.dart';
import 'package:lensai/features/bangs/data/models/bang_data.dart';
@@ -94,14 +97,17 @@ class BangDao extends DatabaseAccessor<BangDatabase> with _$BangDaoMixin {
return db.bangQuery(query: db.buildQuery(searchString));
}
Future<int> upsertBangIcon(String trigger, Uint8List iconData) {
return db.bangIcon.insertOne(
BangIconCompanion.insert(
trigger: trigger,
iconData: iconData,
fetchDate: DateTime.now(),
),
mode: InsertMode.insertOrReplace,
);
}
// Future<int> upsertBangIcon(String trigger, BrowserIcon icon) async {
// //TODO: swithc to WEBP in future, requires 3rd party
// final compressed = await icon.image.toByteData(format: ImageByteFormat.png);
// return db.bangIcon.insertOne(
// BangIconCompanion.insert(
// trigger: trigger,
// iconData: compressed!.buffer.asUint8List(),
// fetchDate: DateTime.now(),
// ),
// mode: InsertMode.insertOrReplace,
// );
// }
}
@@ -1021,8 +1021,6 @@ class BangDataView extends ViewInfo<BangDataView, BangData>
.read(DriftSqlType.int, data['${effectivePrefix}frequency']),
lastUsed: attachedDatabase.typeMapping
.read(DriftSqlType.dateTime, data['${effectivePrefix}last_used']),
iconData: attachedDatabase.typeMapping
.read(DriftSqlType.blob, data['${effectivePrefix}icon_data']),
);
}
@@ -1121,7 +1119,6 @@ abstract class _$BangDatabase extends GeneratedDatabase {
.fromSql(row.readNullable<String>('format')),
frequency: row.readNullable<int>('frequency'),
lastUsed: row.readNullable<DateTime>('last_used'),
iconData: row.readNullable<Uint8List>('icon_data'),
));
}
@@ -1,6 +1,6 @@
import 'package:copy_with_extension/copy_with_extension.dart';
import 'package:drift/drift.dart';
import 'package:lensai/features/bangs/data/models/bang.dart';
import 'package:lensai/features/geckoview/domain/entities/browser_icon.dart';
part 'bang_data.g.dart';
@@ -9,7 +9,7 @@ class BangData extends Bang {
final int frequency;
final DateTime? lastUsed;
final Uint8List? iconData;
final BrowserIcon? icon;
BangData({
required super.websiteName,
@@ -21,7 +21,7 @@ class BangData extends Bang {
super.format,
int? frequency,
this.lastUsed,
this.iconData,
this.icon,
}) : frequency = frequency ?? 0;
@override
@@ -32,6 +32,6 @@ class BangData extends Bang {
...super.hashParameters,
frequency,
lastUsed,
iconData,
icon,
];
}
@@ -25,7 +25,7 @@ abstract class _$BangDataCWProxy {
BangData lastUsed(DateTime? lastUsed);
BangData iconData(Uint8List? iconData);
BangData icon(BrowserIcon? icon);
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `BangData(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
///
@@ -43,7 +43,7 @@ abstract class _$BangDataCWProxy {
Set<BangFormat>? format,
int? frequency,
DateTime? lastUsed,
Uint8List? iconData,
BrowserIcon? icon,
});
}
@@ -81,7 +81,7 @@ class _$BangDataCWProxyImpl implements _$BangDataCWProxy {
BangData lastUsed(DateTime? lastUsed) => this(lastUsed: lastUsed);
@override
BangData iconData(Uint8List? iconData) => this(iconData: iconData);
BangData icon(BrowserIcon? icon) => this(icon: icon);
@override
@@ -101,7 +101,7 @@ class _$BangDataCWProxyImpl implements _$BangDataCWProxy {
Object? format = const $CopyWithPlaceholder(),
Object? frequency = const $CopyWithPlaceholder(),
Object? lastUsed = const $CopyWithPlaceholder(),
Object? iconData = const $CopyWithPlaceholder(),
Object? icon = const $CopyWithPlaceholder(),
}) {
return BangData(
websiteName:
@@ -142,10 +142,10 @@ class _$BangDataCWProxyImpl implements _$BangDataCWProxy {
? _value.lastUsed
// ignore: cast_nullable_to_non_nullable
: lastUsed as DateTime?,
iconData: iconData == const $CopyWithPlaceholder()
? _value.iconData
icon: icon == const $CopyWithPlaceholder()
? _value.icon
// ignore: cast_nullable_to_non_nullable
: iconData as Uint8List?,
: icon as BrowserIcon?,
);
}
}