From f919e853af07316a4d7d84384a8d4ac8ea032fb5 Mon Sep 17 00:00:00 2001 From: Ming Ming Date: Thu, 11 May 2023 00:51:45 +0800 Subject: [PATCH] Show the server version in Settings --- app/lib/l10n/app_en.arb | 4 ++++ app/lib/l10n/untranslated-messages.txt | 11 +++++++++++ app/lib/widget/settings.dart | 26 ++++++++++++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/app/lib/l10n/app_en.arb b/app/lib/l10n/app_en.arb index f2c68245..455791c0 100644 --- a/app/lib/l10n/app_en.arb +++ b/app/lib/l10n/app_en.arb @@ -431,6 +431,10 @@ "@settingsVersionTitle": { "description": "Title of the version data item" }, + "settingsServerVersionTitle": "Server", + "@settingsServerVersionTitle": { + "description": "This item will show the server software version, e.g., Nextcloud 25" + }, "settingsSourceCodeTitle": "Source code", "@settingsSourceCodeTitle": { "description": "Title of the source code item" diff --git a/app/lib/l10n/untranslated-messages.txt b/app/lib/l10n/untranslated-messages.txt index 3f0ec808..bbe4bf41 100644 --- a/app/lib/l10n/untranslated-messages.txt +++ b/app/lib/l10n/untranslated-messages.txt @@ -1,6 +1,7 @@ { "cs": [ "nameInputInvalidEmpty", + "settingsServerVersionTitle", "createCollectionFailureNotification", "addItemToCollectionTooltip", "addItemToCollectionFailureNotification", @@ -58,6 +59,7 @@ "settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseSuccessNotification", + "settingsServerVersionTitle", "rootPickerSkipConfirmationDialogContent2", "timeSecondInputHint", "sortOptionFilenameAscendingLabel", @@ -248,6 +250,7 @@ "settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseSuccessNotification", + "settingsServerVersionTitle", "slideshowSetupDialogReverseTitle", "shareMethodPreviewTitle", "shareMethodPreviewDescription", @@ -324,6 +327,7 @@ "es": [ "nameInputInvalidEmpty", + "settingsServerVersionTitle", "createCollectionFailureNotification", "addItemToCollectionTooltip", "addItemToCollectionFailureNotification", @@ -335,6 +339,7 @@ ], "fi": [ + "settingsServerVersionTitle", "createCollectionFailureNotification", "addItemToCollectionTooltip", "addItemToCollectionFailureNotification", @@ -377,6 +382,7 @@ "settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseSuccessNotification", + "settingsServerVersionTitle", "sortOptionFilenameAscendingLabel", "sortOptionFilenameDescendingLabel", "helpTooltip", @@ -498,6 +504,7 @@ "settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseSuccessNotification", + "settingsServerVersionTitle", "sortOptionFilenameAscendingLabel", "sortOptionFilenameDescendingLabel", "slideshowSetupDialogReverseTitle", @@ -605,6 +612,7 @@ "pt": [ "nameInputInvalidEmpty", + "settingsServerVersionTitle", "createCollectionFailureNotification", "addItemToCollectionTooltip", "addItemToCollectionFailureNotification", @@ -646,6 +654,7 @@ "settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseSuccessNotification", + "settingsServerVersionTitle", "sortOptionFilenameAscendingLabel", "sortOptionFilenameDescendingLabel", "slideshowSetupDialogReverseTitle", @@ -764,6 +773,7 @@ "settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseSuccessNotification", + "settingsServerVersionTitle", "sortOptionFilenameAscendingLabel", "sortOptionFilenameDescendingLabel", "slideshowSetupDialogReverseTitle", @@ -882,6 +892,7 @@ "settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseSuccessNotification", + "settingsServerVersionTitle", "sortOptionFilenameAscendingLabel", "sortOptionFilenameDescendingLabel", "slideshowSetupDialogReverseTitle", diff --git a/app/lib/widget/settings.dart b/app/lib/widget/settings.dart index e51af555..dcf27c3a 100644 --- a/app/lib/widget/settings.dart +++ b/app/lib/widget/settings.dart @@ -2,12 +2,15 @@ import 'dart:async'; import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:kiwi/kiwi.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; import 'package:nc_photos/app_localizations.dart'; +import 'package:nc_photos/controller/account_controller.dart'; import 'package:nc_photos/debug_util.dart'; import 'package:nc_photos/di_container.dart'; +import 'package:nc_photos/entity/server_status.dart'; import 'package:nc_photos/entity/sqlite/database.dart' as sql; import 'package:nc_photos/event/event.dart'; import 'package:nc_photos/exception_util.dart' as exception_util; @@ -211,6 +214,29 @@ class _SettingsState extends State { } }, ), + StreamBuilder( + stream: + context.read().serverController.status, + initialData: context + .read() + .serverController + .status + .valueOrNull, + builder: (context, snapshot) { + if (!snapshot.hasData) { + return const ListTile( + title: Text("Server"), + ); + } else { + final status = snapshot.requireData!; + return ListTile( + title: const Text("Server"), + subtitle: Text( + "${status.productName} ${status.majorVersion} (${status.versionName})"), + ); + } + }, + ), ListTile( title: Text(L10n.global().settingsSourceCodeTitle), onTap: () {