OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file |
4 | 4 |
5 part of app; | 5 part of repositories; |
6 | 6 |
7 /// Static settings database. | 7 /// Static settings database. |
8 class _Settings { | 8 class _Settings { |
9 static Storage _storage = window.localStorage; | 9 static Storage _storage = window.localStorage; |
10 | 10 |
11 /// Associated [value] with [key]. [value] must be JSON encodable. | 11 /// Associated [value] with [key]. [value] must be JSON encodable. |
12 static void set(String key, dynamic value) { | 12 static void set(String key, dynamic value) { |
13 _storage[key] = JSON.encode(value); | 13 _storage[key] = JSON.encode(value); |
14 } | 14 } |
15 | 15 |
16 /// Get value associated with [key]. Return value will be a JSON encodable | 16 /// Get value associated with [key]. Return value will be a JSON encodable |
17 /// object. | 17 /// object. |
18 static dynamic get(String key) { | 18 static dynamic get(String key) { |
19 var value = _storage[key]; | 19 var value = _storage[key]; |
20 if (value == null) { | 20 if (value == null) { |
21 return null; | 21 return null; |
22 } | 22 } |
23 return JSON.decode(value); | 23 return JSON.decode(value); |
24 } | 24 } |
25 } | 25 } |
26 | 26 |
27 /// A group of settings each prefixed with group name and a dot. | 27 /// A group of settings each prefixed with group name and a dot. |
28 class SettingsGroup { | 28 class SettingsRepository { |
29 /// Group name | 29 /// Group name |
30 final String group; | 30 final String group; |
31 | 31 |
32 SettingsGroup(this.group); | 32 SettingsRepository(this.group); |
33 | 33 |
34 String _fullKey(String key) => '$group.$key'; | 34 String _fullKey(String key) => '$group.$key'; |
35 | 35 |
36 void set(String key, dynamic value) { | 36 void set(String key, dynamic value) { |
37 var fullKey = _fullKey(key); | 37 var fullKey = _fullKey(key); |
38 _Settings.set(fullKey, value); | 38 _Settings.set(fullKey, value); |
39 } | 39 } |
40 | 40 |
41 dynamic get(String key) { | 41 dynamic get(String key) { |
42 var fullKey = _fullKey(key); | 42 var fullKey = _fullKey(key); |
43 return _Settings.get(fullKey); | 43 return _Settings.get(fullKey); |
44 } | 44 } |
45 } | 45 } |
OLD | NEW |