Prepare Lunaris 1.1.2 experimental

This commit is contained in:
2026-05-26 11:43:25 +03:00
parent 369dee02be
commit 9cff9e5307
42 changed files with 2041 additions and 303 deletions
@@ -95,6 +95,8 @@ class _ProviderFormScreenState extends ConsumerState<ProviderFormScreen> {
DropdownMenuItem(
value: 'moebooru', child: Text('moebooru-compatible')),
DropdownMenuItem(value: 'e621', child: Text('e621/e926')),
DropdownMenuItem(value: 'kemono', child: Text('Kemono artists')),
DropdownMenuItem(value: 'coomer', child: Text('Coomer artists')),
DropdownMenuItem(value: 'custom', child: Text('custom')),
],
onChanged: (value) =>
@@ -1,7 +1,9 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../../../app/app.dart';
import '../../../backend/backend.dart';
import '../../../core/utils/result.dart';
import '../../feed/presentation/feed_controller.dart';
final providersControllerProvider =
AsyncNotifierProvider<ProvidersController, List<ContentProviderConfig>>(
@@ -14,17 +16,44 @@ class ProvidersController extends AsyncNotifier<List<ContentProviderConfig>> {
Future<void> toggle(String id, bool enabled) async {
await ref.read(providerManagerProvider).enableProvider(id, enabled);
if (!enabled) {
final settingsResult =
await ref.read(settingsServiceProvider).getSettings();
if (settingsResult is Success<AppSettings>) {
final settings = settingsResult.data;
await ref.read(settingsServiceProvider).updateSettings(
settings.copyWith(
selectedFeedProviderIds: settings.selectedFeedProviderIds
.where((providerId) => providerId != id)
.toList(growable: false),
lastFeedProviderIds: settings.lastFeedProviderIds
.where((providerId) => providerId != id)
.toList(growable: false),
enabledProviderIds: settings.enabledProviderIds
.where((providerId) => providerId != id)
.toList(growable: false),
),
);
}
}
state = AsyncData(await _load());
ref.invalidate(feedControllerProvider);
ref.invalidate(appSettingsProvider);
ref.invalidate(providerDiagnosticsProvider);
}
Future<void> save(ContentProviderConfig config) async {
await ref.read(providerManagerProvider).addCustomProvider(config);
state = AsyncData(await _load());
ref.invalidate(feedControllerProvider);
ref.invalidate(appSettingsProvider);
}
Future<void> delete(String id) async {
await ref.read(providerManagerProvider).deleteProvider(id);
state = AsyncData(await _load());
ref.invalidate(feedControllerProvider);
ref.invalidate(appSettingsProvider);
}
Future<List<ContentProviderConfig>> _load() async {