majro update

This commit is contained in:
Fabian Freund
2025-02-28 14:30:49 +01:00
parent a8957f6cf8
commit 3c4d479bd9
181 changed files with 7090 additions and 5299 deletions
@@ -34,7 +34,7 @@ class ContainerDao extends DatabaseAccessor<TabDatabase>
}
Future<void> deleteContainer(String id) {
return db.container.deleteOne(ContainerCompanion.custom(id: Variable(id)));
return db.container.deleteOne(ContainerCompanion(id: Value(id)));
}
SingleOrNullSelectable<ContainerData> getContainerData(String id) {
@@ -74,10 +74,9 @@ class TabDao extends DatabaseAccessor<TabDatabase> with _$TabDaoMixin {
orderKey: currentOrderKey,
),
onConflict: DoUpdate(
(old) => TabCompanion.custom(
containerId:
(containerId.present) ? Variable(containerId.value) : null,
orderKey: (orderKey.present) ? Variable(orderKey.value) : null,
(old) => TabCompanion(
containerId: containerId,
orderKey: Value.absentIfNull(orderKey.value),
),
),
);
@@ -107,10 +106,9 @@ class TabDao extends DatabaseAccessor<TabDatabase> with _$TabDaoMixin {
orderKey: currentOrderKey,
),
onConflict: DoUpdate(
(old) => TabCompanion.custom(
containerId:
(containerId.present) ? Variable(containerId.value) : null,
orderKey: (orderKey.present) ? Variable(orderKey.value) : null,
(old) => TabCompanion(
containerId: containerId,
orderKey: Value.absentIfNull(orderKey.value),
),
where: (old) => old.containerId.isNull(),
),
@@ -160,7 +158,7 @@ class TabDao extends DatabaseAccessor<TabDatabase> with _$TabDaoMixin {
Map<String, TabState>? previous,
Map<String, TabState> next,
) async {
await batch((batch) async {
await batch((batch) {
for (final state in next.values) {
final previousState = previous?[state.id];
@@ -172,7 +170,7 @@ class TabDao extends DatabaseAccessor<TabDatabase> with _$TabDaoMixin {
TabCompanion(
url:
(previousState?.url != state.url)
? Value(state.url.toString())
? Value(state.url)
: const Value.absent(),
title:
(previousState?.title != state.title)
@@ -186,7 +184,7 @@ class TabDao extends DatabaseAccessor<TabDatabase> with _$TabDaoMixin {
});
}
Future<void> syncTabs({required List<String> retainTabIds}) async {
Future<void> syncTabs({required List<String> retainTabIds}) {
return db.transaction(() async {
await (db.tab.delete()..where((t) => t.id.isNotIn(retainTabIds))).go();
@@ -1,6 +1,7 @@
import 'package:drift/drift.dart';
import 'package:flutter/widgets.dart' show Color;
import 'package:lensai/data/database/converters/color.dart';
import 'package:lensai/data/database/converters/uri.dart';
import 'package:lensai/features/geckoview/features/tabs/data/database/converters/container_metadata_converter.dart';
import 'package:lensai/features/geckoview/features/tabs/data/database/daos/container.dart';
import 'package:lensai/features/geckoview/features/tabs/data/database/daos/tab.dart';
@@ -1,4 +1,5 @@
import 'package:lensai/data/database/converters/color.dart';
import 'package:lensai/data/database/converters/uri.dart';
import 'package:lensai/features/geckoview/features/tabs/data/models/container_data.dart';
import 'package:lensai/features/geckoview/features/tabs/data/models/tab_query_result.dart';
import 'package:lensai/features/geckoview/features/tabs/data/database/converters/container_metadata_converter.dart';
@@ -14,7 +15,7 @@ CREATE TABLE tab (
id TEXT PRIMARY KEY NOT NULL,
container_id TEXT REFERENCES container (id) ON DELETE CASCADE,
order_key TEXT NOT NULL,
url TEXT,
url TEXT MAPPED BY `const UriConverter()`,
title TEXT,
is_probably_readerable BOOL,
extracted_content_markdown TEXT,
File diff suppressed because it is too large Load Diff
@@ -46,7 +46,6 @@ class _$ContainerAuthSettingsCWProxyImpl
this(lockTimeout: lockTimeout);
@override
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ContainerAuthSettings(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
///
/// Usage
@@ -64,14 +63,16 @@ class _$ContainerAuthSettingsCWProxyImpl
? _value.authenticationRequired
// ignore: cast_nullable_to_non_nullable
: authenticationRequired as bool,
lockOnAppBackground: lockOnAppBackground == const $CopyWithPlaceholder()
? _value.lockOnAppBackground
// ignore: cast_nullable_to_non_nullable
: lockOnAppBackground as bool,
lockTimeout: lockTimeout == const $CopyWithPlaceholder()
? _value.lockTimeout
// ignore: cast_nullable_to_non_nullable
: lockTimeout as Duration?,
lockOnAppBackground:
lockOnAppBackground == const $CopyWithPlaceholder()
? _value.lockOnAppBackground
// ignore: cast_nullable_to_non_nullable
: lockOnAppBackground as bool,
lockTimeout:
lockTimeout == const $CopyWithPlaceholder()
? _value.lockTimeout
// ignore: cast_nullable_to_non_nullable
: lockTimeout as Duration?,
);
}
}
@@ -127,7 +128,6 @@ class _$ContainerMetadataCWProxyImpl implements _$ContainerMetadataCWProxy {
ContainerMetadata useProxy(bool useProxy) => this(useProxy: useProxy);
@override
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ContainerMetadata(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
///
/// Usage
@@ -141,22 +141,26 @@ class _$ContainerMetadataCWProxyImpl implements _$ContainerMetadataCWProxy {
Object? useProxy = const $CopyWithPlaceholder(),
}) {
return ContainerMetadata(
iconData: iconData == const $CopyWithPlaceholder()
? _value.iconData
// ignore: cast_nullable_to_non_nullable
: iconData as IconData?,
contextualIdentity: contextualIdentity == const $CopyWithPlaceholder()
? _value.contextualIdentity
// ignore: cast_nullable_to_non_nullable
: contextualIdentity as String?,
authSettings: authSettings == const $CopyWithPlaceholder()
? _value.authSettings
// ignore: cast_nullable_to_non_nullable
: authSettings as ContainerAuthSettings,
useProxy: useProxy == const $CopyWithPlaceholder()
? _value.useProxy
// ignore: cast_nullable_to_non_nullable
: useProxy as bool,
iconData:
iconData == const $CopyWithPlaceholder()
? _value.iconData
// ignore: cast_nullable_to_non_nullable
: iconData as IconData?,
contextualIdentity:
contextualIdentity == const $CopyWithPlaceholder()
? _value.contextualIdentity
// ignore: cast_nullable_to_non_nullable
: contextualIdentity as String?,
authSettings:
authSettings == const $CopyWithPlaceholder()
? _value.authSettings
// ignore: cast_nullable_to_non_nullable
: authSettings as ContainerAuthSettings,
useProxy:
useProxy == const $CopyWithPlaceholder()
? _value.useProxy
// ignore: cast_nullable_to_non_nullable
: useProxy as bool,
);
}
}
@@ -211,7 +215,6 @@ class _$ContainerDataCWProxyImpl implements _$ContainerDataCWProxy {
this(metadata: metadata);
@override
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ContainerData(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
///
/// Usage
@@ -225,22 +228,26 @@ class _$ContainerDataCWProxyImpl implements _$ContainerDataCWProxy {
Object? metadata = const $CopyWithPlaceholder(),
}) {
return ContainerData(
id: id == const $CopyWithPlaceholder()
? _value.id
// ignore: cast_nullable_to_non_nullable
: id as String,
name: name == const $CopyWithPlaceholder()
? _value.name
// ignore: cast_nullable_to_non_nullable
: name as String?,
color: color == const $CopyWithPlaceholder()
? _value.color
// ignore: cast_nullable_to_non_nullable
: color as Color,
metadata: metadata == const $CopyWithPlaceholder()
? _value.metadata
// ignore: cast_nullable_to_non_nullable
: metadata as ContainerMetadata?,
id:
id == const $CopyWithPlaceholder()
? _value.id
// ignore: cast_nullable_to_non_nullable
: id as String,
name:
name == const $CopyWithPlaceholder()
? _value.name
// ignore: cast_nullable_to_non_nullable
: name as String?,
color:
color == const $CopyWithPlaceholder()
? _value.color
// ignore: cast_nullable_to_non_nullable
: color as Color,
metadata:
metadata == const $CopyWithPlaceholder()
? _value.metadata
// ignore: cast_nullable_to_non_nullable
: metadata as ContainerMetadata?,
);
}
}
@@ -256,52 +263,57 @@ extension $ContainerDataCopyWith on ContainerData {
// **************************************************************************
ContainerAuthSettings _$ContainerAuthSettingsFromJson(
Map<String, dynamic> json) =>
ContainerAuthSettings(
authenticationRequired: json['authenticationRequired'] as bool,
lockOnAppBackground: json['lockOnAppBackground'] as bool,
lockTimeout: json['lockTimeout'] == null
Map<String, dynamic> json,
) => ContainerAuthSettings(
authenticationRequired: json['authenticationRequired'] as bool,
lockOnAppBackground: json['lockOnAppBackground'] as bool,
lockTimeout:
json['lockTimeout'] == null
? null
: Duration(microseconds: (json['lockTimeout'] as num).toInt()),
);
);
Map<String, dynamic> _$ContainerAuthSettingsToJson(
ContainerAuthSettings instance) =>
<String, dynamic>{
'authenticationRequired': instance.authenticationRequired,
'lockOnAppBackground': instance.lockOnAppBackground,
'lockTimeout': instance.lockTimeout?.inMicroseconds,
};
ContainerAuthSettings instance,
) => <String, dynamic>{
'authenticationRequired': instance.authenticationRequired,
'lockOnAppBackground': instance.lockOnAppBackground,
'lockTimeout': instance.lockTimeout?.inMicroseconds,
};
ContainerMetadata _$ContainerMetadataFromJson(Map<String, dynamic> json) =>
ContainerMetadata.withDefaults(
iconData: _$JsonConverterFromJson<Map<String, dynamic>, IconData>(
json['iconData'], const IconDataJsonConverter().fromJson),
json['iconData'],
const IconDataJsonConverter().fromJson,
),
contextualIdentity: json['contextualIdentity'] as String?,
authSettings: json['authSettings'] == null
? null
: ContainerAuthSettings.fromJson(
json['authSettings'] as Map<String, dynamic>),
authSettings:
json['authSettings'] == null
? null
: ContainerAuthSettings.fromJson(
json['authSettings'] as Map<String, dynamic>,
),
useProxy: json['useProxy'] as bool? ?? false,
);
Map<String, dynamic> _$ContainerMetadataToJson(ContainerMetadata instance) =>
<String, dynamic>{
'iconData': _$JsonConverterToJson<Map<String, dynamic>, IconData>(
instance.iconData, const IconDataJsonConverter().toJson),
instance.iconData,
const IconDataJsonConverter().toJson,
),
'contextualIdentity': instance.contextualIdentity,
'authSettings': instance.authSettings,
'authSettings': instance.authSettings.toJson(),
'useProxy': instance.useProxy,
};
Value? _$JsonConverterFromJson<Json, Value>(
Object? json,
Value? Function(Json json) fromJson,
) =>
json == null ? null : fromJson(json as Json);
) => json == null ? null : fromJson(json as Json);
Json? _$JsonConverterToJson<Json, Value>(
Value? value,
Json? Function(Value value) toJson,
) =>
value == null ? null : toJson(value);
) => value == null ? null : toJson(value);
@@ -4,7 +4,7 @@ class TabQueryResult with FastEquatable {
final String id;
final String? title;
final String? cleanUrl;
final Uri? cleanUrl;
final String? url;
final String? extractedContent;