Show the server version in Settings

This commit is contained in:
Ming Ming 2023-05-11 00:51:45 +08:00
parent 2b177d7679
commit f919e853af
3 changed files with 41 additions and 0 deletions

View file

@ -431,6 +431,10 @@
"@settingsVersionTitle": { "@settingsVersionTitle": {
"description": "Title of the version data item" "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": "Source code",
"@settingsSourceCodeTitle": { "@settingsSourceCodeTitle": {
"description": "Title of the source code item" "description": "Title of the source code item"

View file

@ -1,6 +1,7 @@
{ {
"cs": [ "cs": [
"nameInputInvalidEmpty", "nameInputInvalidEmpty",
"settingsServerVersionTitle",
"createCollectionFailureNotification", "createCollectionFailureNotification",
"addItemToCollectionTooltip", "addItemToCollectionTooltip",
"addItemToCollectionFailureNotification", "addItemToCollectionFailureNotification",
@ -58,6 +59,7 @@
"settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseTitle",
"settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseDescription",
"settingsClearCacheDatabaseSuccessNotification", "settingsClearCacheDatabaseSuccessNotification",
"settingsServerVersionTitle",
"rootPickerSkipConfirmationDialogContent2", "rootPickerSkipConfirmationDialogContent2",
"timeSecondInputHint", "timeSecondInputHint",
"sortOptionFilenameAscendingLabel", "sortOptionFilenameAscendingLabel",
@ -248,6 +250,7 @@
"settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseTitle",
"settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseDescription",
"settingsClearCacheDatabaseSuccessNotification", "settingsClearCacheDatabaseSuccessNotification",
"settingsServerVersionTitle",
"slideshowSetupDialogReverseTitle", "slideshowSetupDialogReverseTitle",
"shareMethodPreviewTitle", "shareMethodPreviewTitle",
"shareMethodPreviewDescription", "shareMethodPreviewDescription",
@ -324,6 +327,7 @@
"es": [ "es": [
"nameInputInvalidEmpty", "nameInputInvalidEmpty",
"settingsServerVersionTitle",
"createCollectionFailureNotification", "createCollectionFailureNotification",
"addItemToCollectionTooltip", "addItemToCollectionTooltip",
"addItemToCollectionFailureNotification", "addItemToCollectionFailureNotification",
@ -335,6 +339,7 @@
], ],
"fi": [ "fi": [
"settingsServerVersionTitle",
"createCollectionFailureNotification", "createCollectionFailureNotification",
"addItemToCollectionTooltip", "addItemToCollectionTooltip",
"addItemToCollectionFailureNotification", "addItemToCollectionFailureNotification",
@ -377,6 +382,7 @@
"settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseTitle",
"settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseDescription",
"settingsClearCacheDatabaseSuccessNotification", "settingsClearCacheDatabaseSuccessNotification",
"settingsServerVersionTitle",
"sortOptionFilenameAscendingLabel", "sortOptionFilenameAscendingLabel",
"sortOptionFilenameDescendingLabel", "sortOptionFilenameDescendingLabel",
"helpTooltip", "helpTooltip",
@ -498,6 +504,7 @@
"settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseTitle",
"settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseDescription",
"settingsClearCacheDatabaseSuccessNotification", "settingsClearCacheDatabaseSuccessNotification",
"settingsServerVersionTitle",
"sortOptionFilenameAscendingLabel", "sortOptionFilenameAscendingLabel",
"sortOptionFilenameDescendingLabel", "sortOptionFilenameDescendingLabel",
"slideshowSetupDialogReverseTitle", "slideshowSetupDialogReverseTitle",
@ -605,6 +612,7 @@
"pt": [ "pt": [
"nameInputInvalidEmpty", "nameInputInvalidEmpty",
"settingsServerVersionTitle",
"createCollectionFailureNotification", "createCollectionFailureNotification",
"addItemToCollectionTooltip", "addItemToCollectionTooltip",
"addItemToCollectionFailureNotification", "addItemToCollectionFailureNotification",
@ -646,6 +654,7 @@
"settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseTitle",
"settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseDescription",
"settingsClearCacheDatabaseSuccessNotification", "settingsClearCacheDatabaseSuccessNotification",
"settingsServerVersionTitle",
"sortOptionFilenameAscendingLabel", "sortOptionFilenameAscendingLabel",
"sortOptionFilenameDescendingLabel", "sortOptionFilenameDescendingLabel",
"slideshowSetupDialogReverseTitle", "slideshowSetupDialogReverseTitle",
@ -764,6 +773,7 @@
"settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseTitle",
"settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseDescription",
"settingsClearCacheDatabaseSuccessNotification", "settingsClearCacheDatabaseSuccessNotification",
"settingsServerVersionTitle",
"sortOptionFilenameAscendingLabel", "sortOptionFilenameAscendingLabel",
"sortOptionFilenameDescendingLabel", "sortOptionFilenameDescendingLabel",
"slideshowSetupDialogReverseTitle", "slideshowSetupDialogReverseTitle",
@ -882,6 +892,7 @@
"settingsClearCacheDatabaseTitle", "settingsClearCacheDatabaseTitle",
"settingsClearCacheDatabaseDescription", "settingsClearCacheDatabaseDescription",
"settingsClearCacheDatabaseSuccessNotification", "settingsClearCacheDatabaseSuccessNotification",
"settingsServerVersionTitle",
"sortOptionFilenameAscendingLabel", "sortOptionFilenameAscendingLabel",
"sortOptionFilenameDescendingLabel", "sortOptionFilenameDescendingLabel",
"slideshowSetupDialogReverseTitle", "slideshowSetupDialogReverseTitle",

View file

@ -2,12 +2,15 @@ import 'dart:async';
import 'package:event_bus/event_bus.dart'; import 'package:event_bus/event_bus.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:kiwi/kiwi.dart'; import 'package:kiwi/kiwi.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:nc_photos/account.dart'; import 'package:nc_photos/account.dart';
import 'package:nc_photos/app_localizations.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/debug_util.dart';
import 'package:nc_photos/di_container.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/entity/sqlite/database.dart' as sql;
import 'package:nc_photos/event/event.dart'; import 'package:nc_photos/event/event.dart';
import 'package:nc_photos/exception_util.dart' as exception_util; import 'package:nc_photos/exception_util.dart' as exception_util;
@ -211,6 +214,29 @@ class _SettingsState extends State<Settings> {
} }
}, },
), ),
StreamBuilder<ServerStatus?>(
stream:
context.read<AccountController>().serverController.status,
initialData: context
.read<AccountController>()
.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( ListTile(
title: Text(L10n.global().settingsSourceCodeTitle), title: Text(L10n.global().settingsSourceCodeTitle),
onTap: () { onTap: () {