forked from Nexus/nexus
Add settings page (#46)
Fixes #37, fixes #47. Reviewed-on: Nexus/nexus#46
This commit is contained in:
parent
06824784cb
commit
0ef9b25320
20 changed files with 970 additions and 28 deletions
16
lib/models/setting.dart
Normal file
16
lib/models/setting.dart
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import "package:flutter/material.dart";
|
||||
|
||||
class Setting {
|
||||
final String title;
|
||||
final String description;
|
||||
final IconData icon;
|
||||
final Widget Function(String title, String description, IconData icon)
|
||||
builder;
|
||||
|
||||
Setting({
|
||||
required this.title,
|
||||
required this.description,
|
||||
required this.builder,
|
||||
required this.icon,
|
||||
});
|
||||
}
|
||||
16
lib/models/settings.dart
Normal file
16
lib/models/settings.dart
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import "package:flutter/material.dart";
|
||||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
part "settings.freezed.dart";
|
||||
part "settings.g.dart";
|
||||
|
||||
@freezed
|
||||
abstract class Settings with _$Settings {
|
||||
const factory Settings({
|
||||
@Default(ThemeMode.system) ThemeMode theme,
|
||||
@Default(true) bool useDynamicTheming,
|
||||
@Default(false) bool linuxMobileMode,
|
||||
}) = _Settings;
|
||||
|
||||
factory Settings.fromJson(Map<String, Object?> json) =>
|
||||
_$SettingsFromJson(json);
|
||||
}
|
||||
14
lib/models/settings_category.dart
Normal file
14
lib/models/settings_category.dart
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
import "package:fast_immutable_collections/fast_immutable_collections.dart";
|
||||
import "package:flutter/material.dart";
|
||||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
import "package:nexus/models/setting.dart";
|
||||
part "settings_category.freezed.dart";
|
||||
|
||||
@freezed
|
||||
abstract class SettingsCategory with _$SettingsCategory {
|
||||
const factory SettingsCategory({
|
||||
required String title,
|
||||
required IconData icon,
|
||||
required IList<Setting> settings,
|
||||
}) = _SettingsCategory;
|
||||
}
|
||||
Loading…
Reference in a new issue