Files
lunasea/lib/modules/home/core/database.dart
Jagandeep Brar 345aa1af63 [Release] v4.0.0+400100 (#257)
Tautulli is now feature-complete (for now)! There will be no additional functionality in the remaining 4.0.0 TestFlights, with this release being considered the first release candidate.

NEW
- [Tautulli] Implemented media details page
- [Tautulli] Implemented IP address details page
- [Tautulli] Implemented libraries & library details page
- [Tautulli] Implemented search page to search libraries
- [Tautulli/Global Settings] Option to trigger deletion of temporary sessions
- [Tautulli/Activity Details] AppBar button to jump to user details
- [Tautulli/History Details] AppBar button to jump to user details
- [Tautulli/History Details] AppBar button to jump to media details
- [Tautulli/More] Tiles for Libraries & Search
- [Settings/Tautulli] Ability to set the default page for all pages with bottom navigation bars
- [Settings/Calendar] Ability to set how many days in the past and future to fetch calendar entries for

TWEAKS
- [Tautulli] Navigation index state is no longer remembered
- [Tautulli] Small tweaks to make UI more consistent
- [Calendar] Default past and future days is now 14 days for each

FIXES
- [iOS 14] Fix text looking "squished" on iOS 14 devices
2020-09-18 13:37:42 -05:00

64 lines
3.0 KiB
Dart

import 'package:hive/hive.dart';
import 'package:lunasea/core/database/database.dart';
import './adapters.dart';
class HomeDatabase {
HomeDatabase._();
static void registerAdapters() {
Hive.registerAdapter(CalendarStartingDayAdapter());
Hive.registerAdapter(CalendarStartingSizeAdapter());
Hive.registerAdapter(CalendarStartingTypeAdapter());
}
}
enum HomeDatabaseValue {
NAVIGATION_INDEX,
CALENDAR_STARTING_DAY,
CALENDAR_STARTING_SIZE,
CALENDAR_STARTING_TYPE,
CALENDAR_ENABLE_LIDARR,
CALENDAR_ENABLE_RADARR,
CALENDAR_ENABLE_SONARR,
MODULES_BRAND_COLOURS,
CALENDAR_DAYS_PAST,
CALENDAR_DAYS_FUTURE,
}
extension HomeDatabaseValueExtension on HomeDatabaseValue {
String get key {
switch(this) {
case HomeDatabaseValue.NAVIGATION_INDEX: return 'HOME_NAVIGATION_INDEX';
case HomeDatabaseValue.CALENDAR_STARTING_DAY: return 'HOME_CALENDAR_STARTING_DAY';
case HomeDatabaseValue.CALENDAR_STARTING_SIZE: return 'HOME_CALENDAR_STARTING_SIZE';
case HomeDatabaseValue.CALENDAR_STARTING_TYPE: return 'HOME_CALENDAR_STARTING_TYPE';
case HomeDatabaseValue.CALENDAR_ENABLE_LIDARR: return 'HOME_CALENDAR_ENABLE_LIDARR';
case HomeDatabaseValue.CALENDAR_ENABLE_RADARR: return 'HOME_CALENDAR_ENABLE_RADARR';
case HomeDatabaseValue.CALENDAR_ENABLE_SONARR: return 'HOME_CALENDAR_ENABLE_SONARR';
case HomeDatabaseValue.MODULES_BRAND_COLOURS: return 'HOME_MODULES_BRAND_COLOURS';
case HomeDatabaseValue.CALENDAR_DAYS_PAST: return 'HOME_CALENDAR_DAYS_PAST';
case HomeDatabaseValue.CALENDAR_DAYS_FUTURE: return 'HOME_CALENDAR_DAYS_FUTURE';
}
throw Exception('key not found');
}
dynamic get data {
final _box = Database.lunaSeaBox;
switch(this) {
case HomeDatabaseValue.NAVIGATION_INDEX: return _box.get(this.key, defaultValue: 0);
case HomeDatabaseValue.CALENDAR_STARTING_DAY: return _box.get(this.key, defaultValue: CalendarStartingDay.MONDAY);
case HomeDatabaseValue.CALENDAR_STARTING_SIZE: return _box.get(this.key, defaultValue: CalendarStartingSize.ONE_WEEK);
case HomeDatabaseValue.CALENDAR_STARTING_TYPE: return _box.get(this.key, defaultValue: CalendarStartingType.CALENDAR);
case HomeDatabaseValue.CALENDAR_ENABLE_LIDARR: return _box.get(this.key, defaultValue: true);
case HomeDatabaseValue.CALENDAR_ENABLE_RADARR: return _box.get(this.key, defaultValue: true);
case HomeDatabaseValue.CALENDAR_ENABLE_SONARR: return _box.get(this.key, defaultValue: true);
case HomeDatabaseValue.MODULES_BRAND_COLOURS: return _box.get(this.key, defaultValue: false);
case HomeDatabaseValue.CALENDAR_DAYS_PAST: return _box.get(this.key, defaultValue: 14);
case HomeDatabaseValue.CALENDAR_DAYS_FUTURE: return _box.get(this.key, defaultValue: 14);
}
throw Exception('data not found');
}
void put(dynamic value) => Database.lunaSeaBox.put(this.key, value);
}