Files
lunasea/lib/core/database/alerts_database.dart
Jagandeep Brar a1d68cd234 [share_plus] iOS 12 and lower crashes at launch due to missing LinkPresentation.framework (#442)
* chore(packages): Added pedantic package to enforce linting and styling
* feat(lunasea): Enforce effective dart styling
* Comment and format colours class
* Localize additional classes in Dashboard, cleanup additional code
* chore(lunasea): Major refactor by running dartfmt on the entire codebase, added widget return for page routers
* Additional work on conforming to effective dart style
* fix(share_plus): Roll back share_plus package to 2.0.0 to support iOS 12 or lower
* chore(lunasea): Fix remaining enabled analysis warnings
2021-04-24 04:26:39 -05:00

49 lines
1.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:lunasea/core/database/database.dart';
import 'package:lunasea/core/utilities/logger.dart';
enum AlertsDatabaseValue {
CHANGELOG,
}
extension AlertsDatabaseValueExtension on AlertsDatabaseValue {
String get key {
switch (this) {
case AlertsDatabaseValue.CHANGELOG:
return 'ALERTS_CHANGELOG';
}
throw Exception('key not found');
}
dynamic get data {
final box = Database.alertsBox;
switch (this) {
case AlertsDatabaseValue.CHANGELOG:
return box.get(this.key, defaultValue: '');
}
throw Exception('data not found');
}
void put(dynamic value) {
final box = Database.alertsBox;
switch (this) {
case AlertsDatabaseValue.CHANGELOG:
if (value.runtimeType == String) box.put(this.key, value);
return;
}
LunaLogger().warning(
'AlertsDatabaseValueExtension',
'put',
'Attempted to enter data for invalid AlertsDatabaseValue: ${this?.toString() ?? 'null'}',
);
}
ValueListenableBuilder listen({
@required Widget Function(BuildContext, dynamic, Widget) builder,
}) =>
ValueListenableBuilder(
valueListenable: Database.alertsBox.listenable(keys: [this.key]),
builder: builder,
);
}