[Release] v4.2.0+40200004 (#292)

NEW
- [Accounts] Added LunaSea accounts
- [Accounts] Ability to backup, restore, and delete cloud configurations
- [Backups] All backups now contain all customization and configuration options in LunaSea
- [Changelog] Show changelog on launch if a new version is installed
- [Changelog] Use a new bottom sheet UI for the changelog
- [Settings/Modules] Add an information/help button with module descriptions and links

TWEAKS
- [Radarr] Always show the amount of days content will be available instead of limiting it to only content in the next 30 days
- [Settings] Moved "Backup & Restore" and "Logs" to "System" section
- [Settings] Merged "Customization" and "Modules" sections into "Configuration"
- [Settings/Sonarr] Removed the need to enable Sonarr to test the connection
- [Settings/Tautulli] Removed the need to enable Tautulli to test the connection

FIXES
- [In App Purchases] Ensure all in app purchases are marked as "consumed"
- [Flutter] Updated packages
- [Logging] Updated Sentry to v4 framework to improve capturing fatal/crashing bugs
- [Settings/Logs] Hide exception and stack trace buttons when an error is not available
- [Settings/Resources] Updated URL endpoints
- [Sonarr/History] Fixed history fetching the oldest entries, not the newest
- [State] Correctly clear state when clearing LunaSea's configuration
- [Tautulli/Activity] Fixed consistency of hardware transcoding indicator compared to the web UI
- [UI/Divider] Fix consistency of divider width across regular and AMOLED dark theme
This commit is contained in:
Jagandeep Brar
2020-12-28 20:57:49 -06:00
committed by GitHub
parent 65f4b0ec48
commit f73c09b805
58 changed files with 1218 additions and 113 deletions

View File

@@ -6,6 +6,63 @@ import 'package:wake_on_lan/wake_on_lan.dart';
class SettingsDialogs {
SettingsDialogs._();
static Future<List<dynamic>> confirmSignOut(BuildContext context) async {
bool _flag = false;
void _setValues(bool flag) {
_flag = flag;
Navigator.of(context, rootNavigator: true).pop();
}
await LSDialog.dialog(
context: context,
title: 'Sign Out',
buttons: [
LSDialog.button(
text: 'Sign Out',
textColor: Colors.red,
onPressed: () => _setValues(true),
),
],
content: [
LSDialog.textContent(
text: 'Are you sure you want to sign out of your ${Constants.APPLICATION_NAME} account?'
),
],
contentPadding: LSDialog.textDialogContentPadding(),
);
return [_flag];
}
static Future<List<dynamic>> getBackupFromCloud(BuildContext context, List<LunaFirebaseBackupDocument> backups) async {
bool _flag = false;
LunaFirebaseBackupDocument _document;
void _setValues(bool flag, LunaFirebaseBackupDocument document) {
_flag = flag;
_document = document;
Navigator.of(context, rootNavigator: true).pop();
}
await LSDialog.dialog(
context: context,
title: 'Backup List',
content: backups.length > 0
? List.generate(
backups.length,
(index) => LSDialog.tile(
icon: Icons.file_copy,
iconColor: LunaColours.list(index),
text: backups[index].title.toString(),
onTap: () => _setValues(true, backups[index]),
),
)
: [LSDialog.textContent(text: 'No Backups Found')],
contentPadding: backups.length > 0 ? LSDialog.listDialogContentPadding() : LSDialog.textDialogContentPadding(),
);
return [_flag, _document];
}
static Future<List<dynamic>> editHost(BuildContext context, String title, { String prefill = '' }) async {
bool _flag = false;
final _formKey = GlobalKey<FormState>();
@@ -665,7 +722,8 @@ class SettingsDialogs {
],
content: [
LSDialog.textContent(text: 'Are you sure you want to clear your configuration?\n'),
LSDialog.textContent(text: 'You will be starting from a clean slate, please ensure you backup your current configuration first!'),
LSDialog.textContent(text: 'You will be starting from a clean slate, please ensure you backup your current configuration first!\n'),
LSDialog.textContent(text: 'If you have signed into a LunaSea account, you will need to log back in after clearing the configuration.'),
],
contentPadding: LSDialog.textDialogContentPadding(),
);
@@ -738,7 +796,7 @@ class SettingsDialogs {
content: [
LSDialog.richText(
children: [
LSDialog.textSpanContent(text: '\tAll backups are encrypted before being exported to the filesystem\n'),
LSDialog.textSpanContent(text: '\tAll backups are encrypted before being exported\n'),
LSDialog.textSpanContent(text: '\tThe encryption key must be at least 8 characters'),
],
),