mirror of
https://github.com/jagandeepbrar/lunasea.git
synced 2026-08-31 20:52:32 +00:00
* 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
49 lines
1.3 KiB
Dart
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,
|
|
);
|
|
}
|