adding packages

This commit is contained in:
2026-01-15 14:38:46 -08:00
parent ef86e3ab6a
commit 6869cf47e5
5253 changed files with 726695 additions and 34 deletions
@@ -0,0 +1,68 @@
import 'package:flutter/material.dart';
import 'settings.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(primarySwatch: Colors.blue),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final _settings = Settings();
@override
void initState() {
_settings.init().then((ready) {
if (mounted) setState(() {});
});
super.initState();
}
@override
Widget build(BuildContext context) {
return StreamBuilder<int>(
stream: _settings.counterValueStream,
builder: (context, snapshot) {
return Scaffold(
appBar: AppBar(title: Text(widget.title)),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'You have pushed the button this many times:',
),
Text(
'${snapshot.data}',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () => _settings.counterValue = snapshot.data + 1,
tooltip: 'Increment',
child: Icon(Icons.add),
),
);
});
}
}
@@ -0,0 +1,27 @@
import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:settings_manager/settings_manager.dart';
import 'package:shared_preferences/shared_preferences.dart';
part 'settings.g.dart';
class Settings = SettingsBase with _$Settings;
abstract class SettingsBase with SettingsStore {
@BoolSetting(defaultValue: false)
bool darkMode;
@StringSetting(defaultValue: 'none')
String userId;
@IntSetting(defaultValue: 0)
int counterValue;
@DoubleSetting(defaultValue: 0)
double radialValue;
@StringListSetting(defaultValue: [])
List<String> savedItems;
}
@@ -0,0 +1,196 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'settings.dart';
// **************************************************************************
// StoreGenerator
// **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic
mixin _$Settings on SettingsBase, SettingsStore {
SharedPreferences prefs;
final _controller = StreamController<Settings>.broadcast();
Stream<Settings> get stream => _controller.stream;
Future<bool> init() async {
darkModeNotify(false);
userIdNotify('none');
counterValueNotify(0);
radialValueNotify(0.0);
savedItemsNotify([]);
prefs = await SharedPreferences.getInstance();
darkModeNotify(darkMode);
userIdNotify(userId);
counterValueNotify(counterValue);
radialValueNotify(radialValue);
savedItemsNotify(savedItems);
return prefs != null;
}
final _darkModeController = StreamController<bool>.broadcast();
Stream<bool> get darkModeStream => _darkModeController.stream;
final _darkModeNotifier = ValueNotifier<bool>(false);
ValueListenable<bool> get darkModeNotifier => _darkModeNotifier;
@override
bool get darkMode {
return prefs?.getBool('darkMode') ?? false;
}
@override
set darkMode(bool value) {
darkModeAsync(value);
}
Future<bool> darkModeAsync(bool value) async {
final success = await prefs.setBool('darkMode', value);
if (success) {
darkModeNotify(value);
}
return success;
}
void darkModeNotify(bool value) {
_darkModeController.add(value);
_darkModeNotifier.value = value;
_controller.add(this);
}
final _userIdController = StreamController<String>.broadcast();
Stream<String> get userIdStream => _userIdController.stream;
final _userIdNotifier = ValueNotifier<String>('none');
ValueListenable<String> get userIdNotifier => _userIdNotifier;
@override
String get userId {
return prefs?.getString('userId') ?? 'none';
}
@override
set userId(String value) {
userIdAsync(value);
}
Future<bool> userIdAsync(String value) async {
final success = await prefs.setString('userId', value);
if (success) {
userIdNotify(value);
}
return success;
}
void userIdNotify(String value) {
_userIdController.add(value);
_userIdNotifier.value = value;
_controller.add(this);
}
final _counterValueController = StreamController<int>.broadcast();
Stream<int> get counterValueStream => _counterValueController.stream;
final _counterValueNotifier = ValueNotifier<int>(0);
ValueListenable<int> get counterValueNotifier => _counterValueNotifier;
@override
int get counterValue {
return prefs?.getInt('counterValue') ?? 0;
}
@override
set counterValue(int value) {
counterValueAsync(value);
}
Future<bool> counterValueAsync(int value) async {
final success = await prefs.setInt('counterValue', value);
if (success) {
counterValueNotify(value);
}
return success;
}
void counterValueNotify(int value) {
_counterValueController.add(value);
_counterValueNotifier.value = value;
_controller.add(this);
}
final _radialValueController = StreamController<double>.broadcast();
Stream<double> get radialValueStream => _radialValueController.stream;
final _radialValueNotifier = ValueNotifier<double>(0.0);
ValueListenable<double> get radialValueNotifier => _radialValueNotifier;
@override
double get radialValue {
return prefs?.getDouble('radialValue') ?? 0.0;
}
@override
set radialValue(double value) {
radialValueAsync(value);
}
Future<bool> radialValueAsync(double value) async {
final success = await prefs.setDouble('radialValue', value);
if (success) {
radialValueNotify(value);
}
return success;
}
void radialValueNotify(double value) {
_radialValueController.add(value);
_radialValueNotifier.value = value;
_controller.add(this);
}
final _savedItemsController = StreamController<List<String>>.broadcast();
Stream<List<String>> get savedItemsStream => _savedItemsController.stream;
final _savedItemsNotifier = ValueNotifier<List<String>>([]);
ValueListenable<List<String>> get savedItemsNotifier => _savedItemsNotifier;
@override
List<String> get savedItems {
return prefs?.getStringList('savedItems') ?? [];
}
@override
set savedItems(List<String> value) {
savedItemsAsync(value);
}
Future<bool> savedItemsAsync(List<String> value) async {
final success = await prefs.setStringList('savedItems', value);
if (success) {
savedItemsNotify(value);
}
return success;
}
void savedItemsNotify(List<String> value) {
_savedItemsController.add(value);
_savedItemsNotifier.value = value;
_controller.add(this);
}
void dispose() {
_darkModeController.close();
_userIdController.close();
_counterValueController.close();
_radialValueController.close();
_savedItemsController.close();
_controller.close();
}
@override
String toString() {
final string =
'darkMode: ${darkMode.toString()},userId: ${userId.toString()},counterValue: ${counterValue.toString()},radialValue: ${radialValue.toString()},radialValue: ${radialValue.toString()}';
return '{$string}';
}
}