Prepare Lunaris 1.1.2 experimental
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user