intermediate

This commit is contained in:
Fabian Freund
2024-12-12 09:44:33 +01:00
parent 0710116feb
commit 6b2ae28828
108 changed files with 5531 additions and 2265 deletions
@@ -2,22 +2,16 @@ import 'dart:async';
import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
import 'package:lensai/features/geckoview/domain/providers.dart';
import 'package:lensai/features/geckoview/features/tabs/data/database/database.dart';
import 'package:lensai/features/geckoview/features/tabs/data/providers.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'selected_tab.g.dart';
@Riverpod(keepAlive: true)
class SelectedTab extends _$SelectedTab {
late TabDatabase _db;
@override
String? build() {
final eventSerivce = ref.watch(eventServiceProvider);
_db = ref.watch(tabDatabaseProvider);
ref.listen(
fireImmediately: true,
engineReadyStateProvider,
@@ -31,10 +25,6 @@ class SelectedTab extends _$SelectedTab {
final selectedTabSub = eventSerivce.selectedTabEvents.listen(
(tabId) async {
state = tabId;
if (tabId != null) {
await _db.tabDao.touchTab(tabId, timestamp: DateTime.now());
}
},
);
@@ -6,7 +6,7 @@ part of 'selected_tab.dart';
// RiverpodGenerator
// **************************************************************************
String _$selectedTabHash() => r'e49fb1c3938a97f384673e158742e56479aa8a8f';
String _$selectedTabHash() => r'f550ac5b471bab8f8e5d75ef4d7669cde769db9a';
/// See also [SelectedTab].
@ProviderFor(SelectedTab)
@@ -3,22 +3,16 @@ import 'dart:async';
import 'package:collection/collection.dart';
import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
import 'package:lensai/features/geckoview/domain/providers.dart';
import 'package:lensai/features/geckoview/features/tabs/data/database/database.dart';
import 'package:lensai/features/geckoview/features/tabs/data/providers.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'tab_list.g.dart';
@Riverpod(keepAlive: true)
class TabList extends _$TabList {
late TabDatabase _db;
@override
List<String> build() {
final eventService = ref.watch(eventServiceProvider);
_db = ref.watch(tabDatabaseProvider);
ref.listen(
fireImmediately: true,
engineReadyStateProvider,
@@ -32,15 +26,7 @@ class TabList extends _$TabList {
final tabListSub = eventService.tabListEvents.listen(
(tabs) async {
if (!const DeepCollectionEquality().equals(state, tabs)) {
//Make sure we only syncing empty lists when there has been tabs
//before as security measurement
final syncTabs = tabs.isNotEmpty || state.isNotEmpty;
state = tabs;
if (syncTabs) {
await _db.tabDao.syncTabs(retainTabIds: tabs);
}
}
},
);
@@ -6,7 +6,7 @@ part of 'tab_list.dart';
// RiverpodGenerator
// **************************************************************************
String _$tabListHash() => r'3c17372cc467736ce1cfba937999acf4de7345ef';
String _$tabListHash() => r'039099bfa102a86fd73c0544ea71f93f91e9d352';
/// See also [TabList].
@ProviderFor(TabList)
@@ -42,7 +42,7 @@ class TabSession extends _$TabSession {
}
@override
void build(String? tabId) {
void build({required String? tabId}) {
_sessionService = (tabId != null)
? GeckoSessionService(tabId: tabId)
: GeckoSessionService.forActiveTab();
@@ -6,7 +6,7 @@ part of 'tab_session.dart';
// RiverpodGenerator
// **************************************************************************
String _$tabSessionHash() => r'42b44a4d47b9a551d002fdbc6337c14b2c327dde';
String _$tabSessionHash() => r'e4fbbcd430037cc01adb799783fb7974a11a27bf';
/// Copied from Dart SDK
class _SystemHash {
@@ -32,9 +32,9 @@ class _SystemHash {
abstract class _$TabSession extends BuildlessAutoDisposeNotifier<void> {
late final String? tabId;
void build(
String? tabId,
);
void build({
required String? tabId,
});
}
/// See also [TabSession].
@@ -47,11 +47,11 @@ class TabSessionFamily extends Family<void> {
const TabSessionFamily();
/// See also [TabSession].
TabSessionProvider call(
String? tabId,
) {
TabSessionProvider call({
required String? tabId,
}) {
return TabSessionProvider(
tabId,
tabId: tabId,
);
}
@@ -60,7 +60,7 @@ class TabSessionFamily extends Family<void> {
covariant TabSessionProvider provider,
) {
return call(
provider.tabId,
tabId: provider.tabId,
);
}
@@ -83,9 +83,9 @@ class TabSessionFamily extends Family<void> {
class TabSessionProvider
extends AutoDisposeNotifierProviderImpl<TabSession, void> {
/// See also [TabSession].
TabSessionProvider(
String? tabId,
) : this._internal(
TabSessionProvider({
required String? tabId,
}) : this._internal(
() => TabSession()..tabId = tabId,
from: tabSessionProvider,
name: r'tabSessionProvider',
@@ -116,7 +116,7 @@ class TabSessionProvider
covariant TabSession notifier,
) {
return notifier.build(
tabId,
tabId: tabId,
);
}