intermediate
This commit is contained in:
@@ -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?,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user