jld3103
1 year ago
61 changed files with 127 additions and 197 deletions
@ -0,0 +1,6 @@
|
||||
export 'package:neon/src/settings/models/nextcloud_app_options.dart'; |
||||
export 'package:neon/src/settings/models/options_category.dart'; |
||||
export 'package:neon/src/settings/models/select_option.dart'; |
||||
export 'package:neon/src/settings/models/storage.dart'; |
||||
export 'package:neon/src/settings/models/toggle_option.dart'; |
||||
export 'package:neon/src/settings/widgets/option_builder.dart'; |
@ -1,8 +1,9 @@
|
||||
import 'package:neon/src/utils/storage.dart'; |
||||
import 'package:settings/settings.dart'; |
||||
import 'package:neon/src/settings/models/option.dart'; |
||||
import 'package:neon/src/settings/models/options_category.dart'; |
||||
import 'package:neon/src/settings/models/storage.dart'; |
||||
|
||||
abstract class NextcloudAppSpecificOptions { |
||||
NextcloudAppSpecificOptions(this.storage); |
||||
abstract class NextcloudAppOptions { |
||||
NextcloudAppOptions(this.storage); |
||||
|
||||
final AppStorage storage; |
||||
late final List<OptionsCategory> categories; |
@ -1,4 +1,10 @@
|
||||
part of '../../settings.dart'; |
||||
import 'dart:async'; |
||||
|
||||
import 'package:meta/meta.dart'; |
||||
import 'package:neon/src/settings/models/options_category.dart'; |
||||
import 'package:neon/src/settings/models/storage.dart'; |
||||
import 'package:neon/src/settings/widgets/label_builder.dart'; |
||||
import 'package:rxdart/rxdart.dart'; |
||||
|
||||
class OptionDisableException implements Exception {} |
||||
|
@ -1,4 +1,4 @@
|
||||
part of '../../settings.dart'; |
||||
import 'package:neon/src/settings/widgets/label_builder.dart'; |
||||
|
||||
class OptionsCategory { |
||||
OptionsCategory({ |
@ -1,4 +1,8 @@
|
||||
part of '../../settings.dart'; |
||||
import 'dart:async'; |
||||
|
||||
import 'package:neon/src/settings/models/option.dart'; |
||||
import 'package:neon/src/settings/widgets/label_builder.dart'; |
||||
import 'package:rxdart/rxdart.dart'; |
||||
|
||||
class SelectOption<T> extends Option<T> { |
||||
SelectOption({ |
@ -1,6 +1,16 @@
|
||||
import 'package:settings/settings.dart'; |
||||
import 'package:shared_preferences/shared_preferences.dart'; |
||||
|
||||
abstract interface class SettingsStorage { |
||||
String? getString(final String key); |
||||
|
||||
Future setString(final String key, final String value); |
||||
|
||||
bool? getBool(final String key); |
||||
|
||||
// ignore: avoid_positional_boolean_parameters |
||||
Future setBool(final String key, final bool value); |
||||
} |
||||
|
||||
class AppStorage implements SettingsStorage { |
||||
AppStorage( |
||||
this._id, |
@ -1,4 +1,5 @@
|
||||
part of '../../settings.dart'; |
||||
import 'package:neon/src/settings/models/option.dart'; |
||||
import 'package:rxdart/rxdart.dart'; |
||||
|
||||
class ToggleOption extends Option<bool> { |
||||
ToggleOption({ |
@ -1,10 +1,10 @@
|
||||
import 'package:flutter/material.dart'; |
||||
import 'package:neon/src/models/account.dart'; |
||||
import 'package:neon/src/settings/widgets/settings_tile.dart'; |
||||
import 'package:neon/src/widgets/account_tile.dart'; |
||||
import 'package:settings/settings.dart'; |
||||
|
||||
class NeonAccountSettingsTile extends SettingsTile { |
||||
const NeonAccountSettingsTile({ |
||||
class AccountSettingsTile extends SettingsTile { |
||||
const AccountSettingsTile({ |
||||
required this.account, |
||||
this.color, |
||||
this.trailing, |
@ -1,4 +1,7 @@
|
||||
part of '../../settings.dart'; |
||||
import 'package:flutter/material.dart'; |
||||
import 'package:neon/src/settings/models/toggle_option.dart'; |
||||
import 'package:neon/src/settings/widgets/option_builder.dart'; |
||||
import 'package:neon/src/settings/widgets/settings_tile.dart'; |
||||
|
||||
class CheckBoxSettingsTile extends InputSettingsTile<ToggleOption> { |
||||
const CheckBoxSettingsTile({ |
@ -1,4 +1,5 @@
|
||||
part of '../../settings.dart'; |
||||
import 'package:flutter/material.dart'; |
||||
import 'package:neon/src/settings/widgets/settings_tile.dart'; |
||||
|
||||
class CustomSettingsTile extends SettingsTile { |
||||
const CustomSettingsTile({ |
@ -1,4 +1,8 @@
|
||||
part of '../../settings.dart'; |
||||
import 'package:flutter/material.dart'; |
||||
import 'package:neon/src/settings/models/select_option.dart'; |
||||
import 'package:neon/src/settings/widgets/label_builder.dart'; |
||||
import 'package:neon/src/settings/widgets/option_builder.dart'; |
||||
import 'package:neon/src/settings/widgets/settings_tile.dart'; |
||||
|
||||
class DropdownButtonSettingsTile<T> extends InputSettingsTile<SelectOption<T>> { |
||||
const DropdownButtonSettingsTile({ |
@ -1,3 +1,3 @@
|
||||
part of '../../settings.dart'; |
||||
import 'package:flutter/widgets.dart'; |
||||
|
||||
typedef LabelBuilder = String Function(BuildContext); |
@ -1,4 +1,5 @@
|
||||
part of '../../settings.dart'; |
||||
import 'package:flutter/widgets.dart'; |
||||
import 'package:neon/src/settings/models/option.dart'; |
||||
|
||||
typedef OptionBuilderFunction<T> = Widget Function(BuildContext context, T snapshot); |
||||
|
@ -1,4 +1,6 @@
|
||||
part of '../../settings.dart'; |
||||
import 'package:flutter/widgets.dart'; |
||||
import 'package:intersperse/intersperse.dart'; |
||||
import 'package:neon/src/settings/widgets/settings_tile.dart'; |
||||
|
||||
class SettingsCategory extends StatelessWidget { |
||||
const SettingsCategory({ |
@ -1,4 +1,6 @@
|
||||
part of '../../settings.dart'; |
||||
import 'package:flutter/material.dart'; |
||||
import 'package:intersperse/intersperse.dart'; |
||||
import 'package:neon/src/settings/widgets/settings_category.dart'; |
||||
|
||||
class SettingsList extends StatelessWidget { |
||||
const SettingsList({ |
@ -1,4 +1,5 @@
|
||||
part of '../../settings.dart'; |
||||
import 'package:flutter/widgets.dart'; |
||||
import 'package:neon/src/settings/models/option.dart'; |
||||
|
||||
abstract class SettingsTile extends StatelessWidget { |
||||
const SettingsTile({ |
@ -1,8 +1,8 @@
|
||||
import 'package:flutter/material.dart'; |
||||
import 'package:settings/settings.dart'; |
||||
import 'package:neon/src/settings/widgets/settings_tile.dart'; |
||||
|
||||
class NeonTextSettingsTile extends SettingsTile { |
||||
const NeonTextSettingsTile({ |
||||
class TextSettingsTile extends SettingsTile { |
||||
const TextSettingsTile({ |
||||
required this.text, |
||||
this.style, |
||||
super.key, |
@ -1,30 +0,0 @@
|
||||
# Miscellaneous |
||||
*.class |
||||
*.log |
||||
*.pyc |
||||
*.swp |
||||
.DS_Store |
||||
.atom/ |
||||
.buildlog/ |
||||
.history |
||||
.svn/ |
||||
migrate_working_dir/ |
||||
|
||||
# IntelliJ related |
||||
*.iml |
||||
*.ipr |
||||
*.iws |
||||
.idea/ |
||||
|
||||
# The .vscode folder contains launch configuration and tasks you configure in |
||||
# VS Code which you may wish to be included in version control, so this line |
||||
# is commented out by default. |
||||
#.vscode/ |
||||
|
||||
# Flutter/Dart/Pub related |
||||
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. |
||||
/pubspec.lock |
||||
**/doc/api/ |
||||
.dart_tool/ |
||||
.packages |
||||
build/ |
@ -1,10 +0,0 @@
|
||||
# This file tracks properties of this Flutter project. |
||||
# Used by Flutter tool to assess capabilities and perform upgrades etc. |
||||
# |
||||
# This file should be version controlled and should not be manually edited. |
||||
|
||||
version: |
||||
revision: 7a2b187c7bc47de1578992a225e64bbc6ad1eb4a |
||||
channel: master |
||||
|
||||
project_type: package |
@ -1,3 +0,0 @@
|
||||
# settings |
||||
|
||||
A framework for modular settings in Flutter. |
@ -1 +0,0 @@
|
||||
include: package:nit_picking/flutter.yaml |
@ -1,21 +0,0 @@
|
||||
library settings; |
||||
|
||||
import 'dart:async'; |
||||
|
||||
import 'package:flutter/material.dart'; |
||||
import 'package:intersperse/intersperse.dart'; |
||||
import 'package:rxdart/rxdart.dart'; |
||||
|
||||
part 'src/options/label_builder.dart'; |
||||
part 'src/options/option.dart'; |
||||
part 'src/options/options_category.dart'; |
||||
part 'src/options/select_option.dart'; |
||||
part 'src/options/toggle_option.dart'; |
||||
part 'src/storage/storage.dart'; |
||||
part 'src/widgets/checkbox_settings_tile.dart'; |
||||
part 'src/widgets/custom_settings_tile.dart'; |
||||
part 'src/widgets/dropdown_button_settings_tile.dart'; |
||||
part 'src/widgets/option_builder.dart'; |
||||
part 'src/widgets/settings_category.dart'; |
||||
part 'src/widgets/settings_list.dart'; |
||||
part 'src/widgets/settings_tile.dart'; |
@ -1,12 +0,0 @@
|
||||
part of '../../settings.dart'; |
||||
|
||||
abstract interface class SettingsStorage { |
||||
String? getString(final String key); |
||||
|
||||
Future setString(final String key, final String value); |
||||
|
||||
bool? getBool(final String key); |
||||
|
||||
// ignore: avoid_positional_boolean_parameters |
||||
Future setBool(final String key, final bool value); |
||||
} |
@ -1,18 +0,0 @@
|
||||
name: settings |
||||
version: 1.0.0 |
||||
|
||||
environment: |
||||
sdk: '>=3.0.0 <4.0.0' |
||||
flutter: '>=3.10.4' |
||||
|
||||
dependencies: |
||||
flutter: |
||||
sdk: flutter |
||||
intersperse: ^2.0.0 |
||||
rxdart: ^0.27.7 |
||||
|
||||
dev_dependencies: |
||||
nit_picking: |
||||
git: |
||||
url: https://github.com/stack11/dart_nit_picking |
||||
ref: 0b2ee0d |
Loading…
Reference in new issue