@@ -46,21 +46,24 @@ class Stows {
46
46
final log = Logger ('Stows' );
47
47
48
48
final customDataDir =
49
- PlainStow <String ?>('customDataDir' , null , autoRead : _isOnMainIsolate);
49
+ PlainStow <String ?>('customDataDir' , null , volatile : ! _isOnMainIsolate);
50
50
51
- final allowInsecureConnections =
52
- SecureStow .bool ('allowInsecureConnections' , false , autoRead: _isOnMainIsolate);
53
- final url = SecureStow ('url' , '' , autoRead: _isOnMainIsolate);
54
- final username = SecureStow ('username' , '' , autoRead: _isOnMainIsolate);
51
+ final allowInsecureConnections = SecureStow .bool (
52
+ 'allowInsecureConnections' , false ,
53
+ volatile: ! _isOnMainIsolate);
54
+ final url = SecureStow ('url' , '' , volatile: ! _isOnMainIsolate);
55
+ final username = SecureStow ('username' , '' , volatile: ! _isOnMainIsolate);
55
56
56
57
/// the password used to login to Nextcloud
57
- final ncPassword = SecureStow ('ncPassword' , '' , autoRead : _isOnMainIsolate);
58
+ final ncPassword = SecureStow ('ncPassword' , '' , volatile : ! _isOnMainIsolate);
58
59
// TODO(adil192): maybe deprecate?
59
- final ncPasswordIsAnAppPassword =
60
- PlainStow ('ncPasswordIsAnAppPassword' , false , autoRead: _isOnMainIsolate);
60
+ final ncPasswordIsAnAppPassword = PlainStow (
61
+ 'ncPasswordIsAnAppPassword' , false ,
62
+ volatile: ! _isOnMainIsolate);
61
63
62
64
/// the password used to encrypt/decrypt notes
63
- final encPassword = SecureStow ('encPassword' , '' , autoRead: _isOnMainIsolate);
65
+ final encPassword =
66
+ SecureStow ('encPassword' , '' , volatile: ! _isOnMainIsolate);
64
67
65
68
/// Whether the user is logged in and has provided both passwords.
66
69
/// Please ensure that the relevant Prefs are loaded before using this.
@@ -69,163 +72,164 @@ class Stows {
69
72
ncPassword.value.isNotEmpty &&
70
73
encPassword.value.isNotEmpty;
71
74
72
- final key = SecureStow ('key' , '' , autoRead : _isOnMainIsolate);
73
- final iv = SecureStow ('iv' , '' , autoRead : _isOnMainIsolate);
75
+ final key = SecureStow ('key' , '' , volatile : ! _isOnMainIsolate);
76
+ final iv = SecureStow ('iv' , '' , volatile : ! _isOnMainIsolate);
74
77
75
78
final pfp = PlainStow <Uint8List ?>('pfp' , null ,
76
- codec: const Base64StowCodec (), autoRead : _isOnMainIsolate);
79
+ codec: const Base64StowCodec (), volatile : ! _isOnMainIsolate);
77
80
final syncInBackground =
78
- PlainStow ('syncInBackground' , true , autoRead : _isOnMainIsolate);
81
+ PlainStow ('syncInBackground' , true , volatile : ! _isOnMainIsolate);
79
82
80
83
final appTheme = PlainStow ('appTheme' , ThemeMode .system,
81
- codec: EnumCodec (ThemeMode .values), autoRead : _isOnMainIsolate);
84
+ codec: EnumCodec (ThemeMode .values), volatile : ! _isOnMainIsolate);
82
85
83
86
/// The type of platform to theme. Default value is [defaultTargetPlatform] .
84
87
final platform = PlainStow ('platform' , defaultTargetPlatform,
85
- codec: EnumCodec (TargetPlatform .values), autoRead : _isOnMainIsolate);
88
+ codec: EnumCodec (TargetPlatform .values), volatile : ! _isOnMainIsolate);
86
89
final layoutSize = PlainStow ('layoutSize' , LayoutSize .auto,
87
- codec: LayoutSize .codec, autoRead : _isOnMainIsolate);
90
+ codec: LayoutSize .codec, volatile : ! _isOnMainIsolate);
88
91
89
92
/// The accent color of the app. If 0, the system accent color will be used.
90
93
final accentColor = PlainStow <Color ?>('accentColor' , null ,
91
- codec: ColorCodec (), autoRead : _isOnMainIsolate);
94
+ codec: ColorCodec (), volatile : ! _isOnMainIsolate);
92
95
final hyperlegibleFont =
93
- PlainStow ('hyperlegibleFont' , false , autoRead : _isOnMainIsolate);
96
+ PlainStow ('hyperlegibleFont' , false , volatile : ! _isOnMainIsolate);
94
97
95
98
final editorToolbarAlignment = PlainStow (
96
99
'editorToolbarAlignment' , AxisDirection .down,
97
- codec: EnumCodec (AxisDirection .values), autoRead : _isOnMainIsolate);
100
+ codec: EnumCodec (AxisDirection .values), volatile : ! _isOnMainIsolate);
98
101
final editorToolbarShowInFullscreen = PlainStow (
99
102
'editorToolbarShowInFullscreen' , true ,
100
- autoRead : _isOnMainIsolate);
103
+ volatile : ! _isOnMainIsolate);
101
104
final editorFingerDrawing =
102
- PlainStow ('editorFingerDrawing' , true , autoRead : _isOnMainIsolate);
105
+ PlainStow ('editorFingerDrawing' , true , volatile : ! _isOnMainIsolate);
103
106
final editorAutoInvert =
104
- PlainStow ('editorAutoInvert' , true , autoRead : _isOnMainIsolate);
107
+ PlainStow ('editorAutoInvert' , true , volatile : ! _isOnMainIsolate);
105
108
final preferGreyscale =
106
- PlainStow ('preferGreyscale' , false , autoRead : _isOnMainIsolate);
109
+ PlainStow ('preferGreyscale' , false , volatile : ! _isOnMainIsolate);
107
110
final editorPromptRename =
108
- PlainStow ('editorPromptRename' , isDesktop, autoRead : _isOnMainIsolate);
111
+ PlainStow ('editorPromptRename' , isDesktop, volatile : ! _isOnMainIsolate);
109
112
final autosaveDelay =
110
- PlainStow ('autosaveDelay' , 10000 , autoRead : _isOnMainIsolate);
113
+ PlainStow ('autosaveDelay' , 10000 , volatile : ! _isOnMainIsolate);
111
114
final shapeRecognitionDelay =
112
- PlainStow ('shapeRecognitionDelay' , 500 , autoRead : _isOnMainIsolate);
115
+ PlainStow ('shapeRecognitionDelay' , 500 , volatile : ! _isOnMainIsolate);
113
116
final autoStraightenLines =
114
- PlainStow ('autoStraightenLines' , true , autoRead : _isOnMainIsolate);
117
+ PlainStow ('autoStraightenLines' , true , volatile : ! _isOnMainIsolate);
115
118
final pencilSound = PlainStow (
116
119
'pencilSound' , PencilSoundSetting .onButNotInSilentMode,
117
- codec: PencilSoundSetting .codec, autoRead : _isOnMainIsolate);
120
+ codec: PencilSoundSetting .codec, volatile : ! _isOnMainIsolate);
118
121
119
122
final simplifiedHomeLayout =
120
- PlainStow ('simplifiedHomeLayout' , false , autoRead : _isOnMainIsolate);
123
+ PlainStow ('simplifiedHomeLayout' , false , volatile : ! _isOnMainIsolate);
121
124
final hideHomeBackgrounds =
122
- PlainStow ('hideHomeBackgrounds' , false , autoRead : _isOnMainIsolate);
125
+ PlainStow ('hideHomeBackgrounds' , false , volatile : ! _isOnMainIsolate);
123
126
final printPageIndicators =
124
- PlainStow ('printPageIndicators' , false , autoRead : _isOnMainIsolate);
127
+ PlainStow ('printPageIndicators' , false , volatile : ! _isOnMainIsolate);
125
128
126
129
final maxImageSize =
127
- PlainStow <double >('maxImageSize' , 1000 , autoRead : _isOnMainIsolate);
130
+ PlainStow <double >('maxImageSize' , 1000 , volatile : ! _isOnMainIsolate);
128
131
129
- final autoClearWhiteboardOnExit =
130
- PlainStow ('autoClearWhiteboardOnExit' , false , autoRead: _isOnMainIsolate);
132
+ final autoClearWhiteboardOnExit = PlainStow (
133
+ 'autoClearWhiteboardOnExit' , false ,
134
+ volatile: ! _isOnMainIsolate);
131
135
132
136
final disableEraserAfterUse =
133
- PlainStow ('disableEraserAfterUse' , false , autoRead : _isOnMainIsolate);
137
+ PlainStow ('disableEraserAfterUse' , false , volatile : ! _isOnMainIsolate);
134
138
final hideFingerDrawingToggle =
135
- PlainStow ('hideFingerDrawingToggle' , false , autoRead : _isOnMainIsolate);
139
+ PlainStow ('hideFingerDrawingToggle' , false , volatile : ! _isOnMainIsolate);
136
140
137
141
final recentColorsChronological = PlainStow (
138
142
'recentColorsChronological' , < String > [],
139
- autoRead : _isOnMainIsolate);
143
+ volatile : ! _isOnMainIsolate);
140
144
final recentColorsPositioned = PlainStow ('recentColorsPositioned' , < String > [],
141
- autoRead : _isOnMainIsolate);
145
+ volatile : ! _isOnMainIsolate);
142
146
final pinnedColors =
143
- PlainStow ('pinnedColors' , < String > [], autoRead : _isOnMainIsolate);
147
+ PlainStow ('pinnedColors' , < String > [], volatile : ! _isOnMainIsolate);
144
148
final recentColorsDontSavePresets =
145
- PlainStow ('dontSavePresetColors' , false , autoRead : _isOnMainIsolate);
149
+ PlainStow ('dontSavePresetColors' , false , volatile : ! _isOnMainIsolate);
146
150
final recentColorsLength =
147
- PlainStow ('recentColorsLength' , 5 , autoRead : _isOnMainIsolate);
151
+ PlainStow ('recentColorsLength' , 5 , volatile : ! _isOnMainIsolate);
148
152
149
153
final lastTool = PlainStow ('lastTool' , ToolId .fountainPen,
150
- codec: ToolId .codec, autoRead : _isOnMainIsolate);
154
+ codec: ToolId .codec, volatile : ! _isOnMainIsolate);
151
155
static StrokeOptions _strokeOptionsFromJson (Object json) =>
152
156
StrokeOptions .fromJson (json as Map <String , dynamic >);
153
157
final lastFountainPenOptions = PlainStow .json (
154
158
'lastFountainPenProperties' , Pen .fountainPenOptions,
155
- fromJson: _strokeOptionsFromJson, autoRead : _isOnMainIsolate),
159
+ fromJson: _strokeOptionsFromJson, volatile : ! _isOnMainIsolate),
156
160
lastBallpointPenOptions = PlainStow .json (
157
161
'lastBallpointPenProperties' , Pen .ballpointPenOptions,
158
- fromJson: _strokeOptionsFromJson, autoRead : _isOnMainIsolate),
162
+ fromJson: _strokeOptionsFromJson, volatile : ! _isOnMainIsolate),
159
163
lastHighlighterOptions = PlainStow .json (
160
164
'lastHighlighterProperties' , Pen .highlighterOptions,
161
- fromJson: _strokeOptionsFromJson, autoRead : _isOnMainIsolate),
165
+ fromJson: _strokeOptionsFromJson, volatile : ! _isOnMainIsolate),
162
166
lastPencilOptions = PlainStow .json (
163
167
'lastPencilProperties' , Pen .pencilOptions,
164
- fromJson: _strokeOptionsFromJson, autoRead : _isOnMainIsolate),
168
+ fromJson: _strokeOptionsFromJson, volatile : ! _isOnMainIsolate),
165
169
lastShapePenOptions = PlainStow .json (
166
170
'lastShapePenProperties' , Pen .shapePenOptions,
167
- fromJson: _strokeOptionsFromJson, autoRead : _isOnMainIsolate);
171
+ fromJson: _strokeOptionsFromJson, volatile : ! _isOnMainIsolate);
168
172
final lastFountainPenColor = PlainStow (
169
173
'lastFountainPenColor' , Colors .black.toARGB32 (),
170
- autoRead : _isOnMainIsolate),
174
+ volatile : ! _isOnMainIsolate),
171
175
lastBallpointPenColor = PlainStow (
172
176
'lastBallpointPenColor' , Colors .black.toARGB32 (),
173
- autoRead : _isOnMainIsolate),
177
+ volatile : ! _isOnMainIsolate),
174
178
lastHighlighterColor = PlainStow ('lastHighlighterColor' ,
175
179
Colors .yellow.withAlpha (Highlighter .alpha).toARGB32 (),
176
- autoRead : _isOnMainIsolate),
180
+ volatile : ! _isOnMainIsolate),
177
181
lastPencilColor = PlainStow ('lastPencilColor' , Colors .black.toARGB32 (),
178
- autoRead : _isOnMainIsolate),
182
+ volatile : ! _isOnMainIsolate),
179
183
lastShapePenColor = PlainStow (
180
184
'lastShapePenColor' , Colors .black.toARGB32 (),
181
- autoRead : _isOnMainIsolate);
185
+ volatile : ! _isOnMainIsolate);
182
186
final lastBackgroundPattern = PlainStow (
183
187
'lastBackgroundPattern' , CanvasBackgroundPattern .none,
184
- codec: CanvasBackgroundPattern .codec, autoRead : _isOnMainIsolate);
188
+ codec: CanvasBackgroundPattern .codec, volatile : ! _isOnMainIsolate);
185
189
static const defaultLineHeight = 40 ;
186
190
static const defaultLineThickness = 3 ;
187
191
final lastLineHeight = PlainStow ('lastLineHeight' , defaultLineHeight,
188
- autoRead : _isOnMainIsolate);
192
+ volatile : ! _isOnMainIsolate);
189
193
final lastLineThickness = PlainStow ('lastLineThickness' , defaultLineThickness,
190
- autoRead : _isOnMainIsolate);
194
+ volatile : ! _isOnMainIsolate);
191
195
final lastZoomLock =
192
- PlainStow ('lastZoomLock' , false , autoRead : _isOnMainIsolate),
196
+ PlainStow ('lastZoomLock' , false , volatile : ! _isOnMainIsolate),
193
197
lastSingleFingerPanLock = PlainStow ('lastSingleFingerPanLock' , false ,
194
- autoRead : _isOnMainIsolate),
198
+ volatile : ! _isOnMainIsolate),
195
199
lastAxisAlignedPanLock = PlainStow ('lastAxisAlignedPanLock' , false ,
196
- autoRead : _isOnMainIsolate);
200
+ volatile : ! _isOnMainIsolate);
197
201
198
202
final recentFiles =
199
- PlainStow ('recentFiles' , < String > [], autoRead : _isOnMainIsolate);
203
+ PlainStow ('recentFiles' , < String > [], volatile : ! _isOnMainIsolate);
200
204
201
205
/// File paths that have been deleted locally
202
206
final fileSyncAlreadyDeleted = PlainStow ('fileSyncAlreadyDeleted' , < String > {},
203
- autoRead : _isOnMainIsolate);
207
+ volatile : ! _isOnMainIsolate);
204
208
205
209
/// File paths that are known to be corrupted on Nextcloud
206
- final fileSyncCorruptFiles =
207
- PlainStow ( 'fileSyncCorruptFiles' , < String > {}, autoRead : _isOnMainIsolate);
210
+ final fileSyncCorruptFiles = PlainStow ( 'fileSyncCorruptFiles' , < String > {},
211
+ volatile : ! _isOnMainIsolate);
208
212
209
213
/// Set when we want to resync everything.
210
214
/// Files on the server older than this date will be
211
215
/// reuploaded with the local version.
212
216
/// By default, we resync everything uploaded before v0.18.4, since uploads before then resulted in 0B files.
213
217
final fileSyncResyncEverythingDate = PlainStow ('fileSyncResyncEverythingDate' ,
214
218
DateTime .parse ('2023-12-10T10:06:31.000Z' ),
215
- codec: DateTimeCodec (), autoRead : _isOnMainIsolate);
219
+ codec: DateTimeCodec (), volatile : ! _isOnMainIsolate);
216
220
217
221
/// The last storage quota that was fetched from Nextcloud
218
222
final lastStorageQuota = PlainStow <Quota ?>('lastStorageQuota' , null ,
219
- codec: QuotaCodec (), autoRead : _isOnMainIsolate);
223
+ codec: QuotaCodec (), volatile : ! _isOnMainIsolate);
220
224
221
225
final shouldCheckForUpdates = PlainStow ('shouldCheckForUpdates' ,
222
226
FlavorConfig .shouldCheckForUpdatesByDefault && ! Platform .isLinux,
223
- autoRead : _isOnMainIsolate);
227
+ volatile : ! _isOnMainIsolate);
224
228
final shouldAlwaysAlertForUpdates = PlainStow ('shouldAlwaysAlertForUpdates' ,
225
229
(kDebugMode || FlavorConfig .dirty) ? true : false ,
226
- autoRead : _isOnMainIsolate);
230
+ volatile : ! _isOnMainIsolate);
227
231
228
- final locale = PlainStow ('locale' , '' , autoRead : _isOnMainIsolate);
232
+ final locale = PlainStow ('locale' , '' , volatile : ! _isOnMainIsolate);
229
233
230
234
static bool get isDesktop =>
231
235
Platform .isLinux || Platform .isWindows || Platform .isMacOS;
@@ -236,7 +240,7 @@ abstract class IPref<T> extends Stow<String, T, Object?> {
236
240
super .key,
237
241
super .defaultValue, {
238
242
super .codec,
239
- super .autoRead ,
243
+ super .volatile ,
240
244
});
241
245
242
246
/// Removes the value from shared preferences, and resets the pref to its default value.
0 commit comments