read method
Reads the previously-persisted quality, or null if none has been
saved yet (e.g. first launch).
Implementation
@override
Future<GlassQuality?> read() async {
final prefs = await SharedPreferences.getInstance();
final name = prefs.getString(key);
if (name == null) return null;
for (final quality in GlassQuality.values) {
if (quality.name == name) return quality;
}
// Unknown/stale value (e.g. from a future enum member) — ignore it
// rather than throwing, so Phase 2 just re-benchmarks normally.
return null;
}