Merge branch 'development' into feature/notes

This commit is contained in:
Anton Stubenbord
2024-01-06 19:22:53 +01:00
33 changed files with 117 additions and 77 deletions

View File

@@ -115,11 +115,11 @@ class FileService {
formatBytes(await getDirSizeInBytes(consumptionDir));
logger.ft(
"Removing scans...",
"Clearing scans directory...",
className: runtimeType.toString(),
methodName: "clearUserData",
);
await _temporaryScansDirectory.delete(recursive: true);
await _temporaryScansDirectory.clear();
logger.ft(
"Removed $scanDirSize...",
className: runtimeType.toString(),

View File

@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_form_builder/flutter_form_builder.dart';
import 'package:intl/intl.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/core/extensions/flutter_extensions.dart';
import 'package:paperless_mobile/core/widgets/form_builder_fields/extended_date_range_form_field/extended_date_range_dialog.dart';
import 'package:paperless_mobile/core/widgets/form_builder_fields/extended_date_range_form_field/relative_date_range_picker_helper.dart';
import 'package:paperless_mobile/generated/l10n/app_localizations.dart';
@@ -11,6 +12,7 @@ class FormBuilderExtendedDateRangePicker extends StatefulWidget {
final String labelText;
final DateRangeQuery initialValue;
final void Function(DateRangeQuery? query)? onChanged;
final EdgeInsets padding;
const FormBuilderExtendedDateRangePicker({
super.key,
@@ -18,6 +20,7 @@ class FormBuilderExtendedDateRangePicker extends StatefulWidget {
required this.labelText,
required this.initialValue,
this.onChanged,
required this.padding,
});
@override
@@ -49,29 +52,36 @@ class _FormBuilderExtendedDateRangePickerState
builder: (field) {
return Column(
children: [
TextFormField(
controller: _textEditingController,
readOnly: true,
onTap: () => _showExtendedDateRangePicker(field),
decoration: InputDecoration(
prefixIcon: const Icon(Icons.date_range),
labelText: widget.labelText,
suffixIcon: _textEditingController.text.isNotEmpty
? IconButton(
icon: const Icon(Icons.clear),
onPressed: () {
field.didChange(const UnsetDateRangeQuery());
},
)
: null,
Padding(
padding: widget.padding.copyWith(bottom: 0),
child: TextFormField(
controller: _textEditingController,
readOnly: true,
onTap: () => _showExtendedDateRangePicker(field),
decoration: InputDecoration(
prefixIcon: const Icon(Icons.date_range),
labelText: widget.labelText,
suffixIcon: _textEditingController.text.isNotEmpty
? IconButton(
icon: const Icon(Icons.clear),
onPressed: () {
field.didChange(const UnsetDateRangeQuery());
},
)
: null,
),
),
),
MediaQuery.removePadding(
context: context,
removeLeft: true,
removeRight: true,
child: RelativeDateRangePickerHelper(field: field),
),
RelativeDateRangePickerHelper(
field: field,
padding: widget.padding,
)
// MediaQuery.removePadding(
//context: context,
//removeLeft: true,
//removeRight: true,
//child: ,
//),
],
);
},

View File

@@ -6,11 +6,13 @@ import 'package:paperless_mobile/generated/l10n/app_localizations.dart';
class RelativeDateRangePickerHelper extends StatefulWidget {
final FormFieldState<DateRangeQuery> field;
final void Function(DateRangeQuery value)? onChanged;
final EdgeInsets padding;
const RelativeDateRangePickerHelper({
super.key,
required this.field,
this.onChanged,
required this.padding,
});
@override
@@ -24,25 +26,32 @@ class _RelativeDateRangePickerHelperState
Widget build(BuildContext context) {
return SizedBox(
height: 64,
child: ListView.separated(
itemCount: _options.length,
separatorBuilder: (context, index) => const SizedBox(width: 8.0),
itemBuilder: (context, index) {
final option = _options[index];
return ColoredChipWrapper(
child: FilterChip(
label: Text(option.title),
onSelected: (isSelected) {
final value =
isSelected ? option.value : const RelativeDateRangeQuery();
widget.field.didChange(value);
widget.onChanged?.call(value);
},
selected: widget.field.value == option.value,
),
);
},
child: CustomScrollView(
scrollDirection: Axis.horizontal,
slivers: [
SliverToBoxAdapter(child: SizedBox(width: widget.padding.left)),
SliverList.separated(
itemCount: _options.length,
separatorBuilder: (context, index) => const SizedBox(width: 8.0),
itemBuilder: (context, index) {
final option = _options[index];
return ColoredChipWrapper(
child: FilterChip(
label: Text(option.title),
onSelected: (isSelected) {
final value = isSelected
? option.value
: const RelativeDateRangeQuery();
widget.field.didChange(value);
widget.onChanged?.call(value);
},
selected: widget.field.value == option.value,
),
);
},
),
SliverToBoxAdapter(child: SizedBox(width: widget.padding.right))
],
),
);
}