feat: Split settings, encrypted user credentials, preparations for multi user support

This commit is contained in:
Anton Stubenbord
2023-04-14 01:34:34 +02:00
parent c6264f6fc0
commit 1334f546ee
27 changed files with 520 additions and 173 deletions

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:paperless_mobile/features/settings/cubit/application_settings_cubit.dart';
import 'package:paperless_mobile/features/settings/view/widgets/global_settings_builder.dart';
import 'package:paperless_mobile/features/settings/view/widgets/radio_settings_dialog.dart';
import 'package:paperless_mobile/generated/l10n/app_localizations.dart';
@@ -9,7 +10,7 @@ class ThemeModeSetting extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BlocBuilder<ApplicationSettingsCubit, ApplicationSettingsState>(
return GlobalSettingsBuilder(
builder: (context, settings) {
return ListTile(
title: Text(S.of(context)!.appearance),
@@ -19,10 +20,7 @@ class ThemeModeSetting extends StatelessWidget {
context: context,
builder: (_) => RadioSettingsDialog<ThemeMode>(
titleText: S.of(context)!.appearance,
initialValue: context
.read<ApplicationSettingsCubit>()
.state
.preferredThemeMode,
initialValue: settings.preferredThemeMode,
options: [
RadioOption(
value: ThemeMode.system,
@@ -40,7 +38,8 @@ class ThemeModeSetting extends StatelessWidget {
),
).then((value) {
if (value != null) {
context.read<ApplicationSettingsCubit>().setThemeMode(value);
settings.preferredThemeMode = value;
settings.save();
}
}),
);