From 871706b606c77eeac13bfcea67c3ce1d71203d2c Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Wed, 3 Jun 2020 14:39:52 +0530 Subject: Adds shared preferences for config/theme storage + refactors a streamstate --- lib/helpers/StreamState.dart | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 lib/helpers/StreamState.dart (limited to 'lib/helpers/StreamState.dart') diff --git a/lib/helpers/StreamState.dart b/lib/helpers/StreamState.dart new file mode 100644 index 0000000..3e329ed --- /dev/null +++ b/lib/helpers/StreamState.dart @@ -0,0 +1,31 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; + +class StreamStateValue { + Stream stream$; + Value value; + + StreamStateValue({ this.stream$, this.value }) {} + + StreamSubscription initialize(void Function(void Function()) setState) { + return stream$.listen((Value v) { + setState(() { value = v; }); + }); + } +} + +abstract class StreamState extends State { + List subs = []; + + void initStateValue(StreamStateValue streamVal) { + subs.add(streamVal.initialize(setState)); + } + + @override + void dispose() { + super.dispose(); + for(StreamSubscription sub in subs) { + sub.cancel(); + } + } +} -- cgit v1.3.1