use fire immediatialy

This commit is contained in:
Fabian Freund
2025-06-15 21:27:41 +02:00
parent 81ecb69cce
commit 9b7286ffd4
6 changed files with 67 additions and 31 deletions
@@ -244,7 +244,10 @@ class TabRepository extends _$TabRepository {
); );
}); });
ref.listen(selectedTabProvider, (previous, tabId) async { ref.listen(fireImmediately: true, selectedTabProvider, (
previous,
tabId,
) async {
if (tabId != null) { if (tabId != null) {
_previousTabId = previous; _previousTabId = previous;
await db.tabDao.touchTab(tabId, timestamp: DateTime.now()); await db.tabDao.touchTab(tabId, timestamp: DateTime.now());
@@ -16,6 +16,7 @@ class EngineSettingsReplicationService
var initialSettingsSent = false; var initialSettingsSent = false;
ref.listen( ref.listen(
fireImmediately: true,
generalSettingsRepositoryProvider.select( generalSettingsRepositoryProvider.select(
(settings) => settings.themeMode, (settings) => settings.themeMode,
), ),
@@ -30,7 +31,10 @@ class EngineSettingsReplicationService
}, },
); );
ref.listen(engineSettingsRepositoryProvider, (previous, next) async { ref.listen(fireImmediately: true, engineSettingsRepositoryProvider, (
previous,
next,
) async {
if (initialSettingsSent && previous != null) { if (initialSettingsSent && previous != null) {
if (previous.javascriptEnabled != next.javascriptEnabled) { if (previous.javascriptEnabled != next.javascriptEnabled) {
await _service.javascriptEnabled(next.javascriptEnabled); await _service.javascriptEnabled(next.javascriptEnabled);
@@ -12,16 +12,18 @@ class ProxySettingsReplication extends _$ProxySettingsReplication {
@override @override
void build() { void build() {
ref.listen(torProxyServiceProvider.select((data) => data.valueOrNull), ( ref.listen(
previous, fireImmediately: true,
next, torProxyServiceProvider.select((data) => data.valueOrNull),
) async { (previous, next) async {
if (next != null) { if (next != null) {
await _service.setProxyPort(next); await _service.setProxyPort(next);
} }
}); },
);
ref.listen( ref.listen(
fireImmediately: true,
containersWithCountProvider.select( containersWithCountProvider.select(
(value) => EquatableValue( (value) => EquatableValue(
value.valueOrNull value.valueOrNull
@@ -152,30 +152,50 @@ class _BrowserViewState extends ConsumerState<BrowserView>
WidgetsBinding.instance.addObserver(this); WidgetsBinding.instance.addObserver(this);
//Initialize and register dependencies //Initialize and register dependencies
ref.listenManual(tabRepositoryProvider, (previous, next) {}); ref.listenManual(
fireImmediately: true,
ref.listenManual(selectionActionServiceProvider, (previous, next) {}); tabRepositoryProvider,
(previous, next) {},
);
ref.listenManual( ref.listenManual(
fireImmediately: true,
selectionActionServiceProvider,
(previous, next) {},
);
ref.listenManual(
fireImmediately: true,
webExtensionsStateProvider(WebExtensionActionType.browser), webExtensionsStateProvider(WebExtensionActionType.browser),
(previous, next) {}, (previous, next) {},
); );
ref.listenManual( ref.listenManual(
fireImmediately: true,
webExtensionsStateProvider(WebExtensionActionType.page), webExtensionsStateProvider(WebExtensionActionType.page),
(previous, next) {}, (previous, next) {},
); );
ref.listenManual(cacheRepositoryProvider, (previous, next) {}); ref.listenManual(
fireImmediately: true,
cacheRepositoryProvider,
(previous, next) {},
);
ref.listenManual( ref.listenManual(
fireImmediately: true,
engineSettingsReplicationServiceProvider, engineSettingsReplicationServiceProvider,
(previous, next) {}, (previous, next) {},
); );
ref.listenManual(proxySettingsReplicationProvider, (previous, next) {}); ref.listenManual(
fireImmediately: true,
proxySettingsReplicationProvider,
(previous, next) {},
);
ref.listenManual( ref.listenManual(
fireImmediately: true,
articleContentProcessorServiceProvider, articleContentProcessorServiceProvider,
(previous, next) {}, (previous, next) {},
); );
@@ -108,7 +108,10 @@ class TorProxyService extends _$TorProxyService {
await _tor.initializeService(); await _tor.initializeService();
ref.listen(browserViewLifecycleProvider, (previous, next) { ref.listen(fireImmediately: true, browserViewLifecycleProvider, (
previous,
next,
) {
switch (next) { switch (next) {
case AppLifecycleState.resumed: case AppLifecycleState.resumed:
if (_timerPaused) { if (_timerPaused) {
@@ -13,21 +13,25 @@ class CompletePageInfo extends _$CompletePageInfo {
return AsyncData(cached!); return AsyncData(cached!);
} }
ref.listen(pageInfoProvider(url, isImageRequest: false), (previous, next) { ref.listen(
if (cached != null && next.hasValue) { fireImmediately: true,
state = AsyncData( pageInfoProvider(url, isImageRequest: false),
WebPageInfo( (previous, next) {
url: url, if (cached != null && next.hasValue) {
//Cached is preferred as this comes from gecko and is more likely to be correct compared to manual request state = AsyncData(
favicon: cached.favicon ?? next.value!.favicon, WebPageInfo(
feeds: cached.feeds ?? next.value!.feeds, url: url,
title: cached.title ?? next.value!.title, //Cached is preferred as this comes from gecko and is more likely to be correct compared to manual request
), favicon: cached.favicon ?? next.value!.favicon,
); feeds: cached.feeds ?? next.value!.feeds,
} else { title: cached.title ?? next.value!.title,
state = next; ),
} );
}); } else {
state = next;
}
},
);
return (cached != null) ? AsyncData(cached) : const AsyncLoading(); return (cached != null) ? AsyncData(cached) : const AsyncLoading();
} }