From 194be50337398609cd94531f41b2b4619b5bfc86 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 2 Mar 2021 22:57:45 +1100 Subject: [PATCH] Adds skeleton for "app settings" view --- assets/release_notes.md | 1 + lib/settings/app_settings.dart | 73 ++++++++++++++++++++++++++++++++++ lib/settings/login.dart | 6 +-- lib/settings/settings.dart | 19 ++++++--- 4 files changed, 90 insertions(+), 9 deletions(-) create mode 100644 lib/settings/app_settings.dart diff --git a/assets/release_notes.md b/assets/release_notes.md index f3692975..e2d1c5c5 100644 --- a/assets/release_notes.md +++ b/assets/release_notes.md @@ -10,6 +10,7 @@ - Any "unauthorized" actions are now not displayed - Uses server-side pagination, providing a significant increase in UI performance - Adds audio feedback for server errors and barcode scanning +- Adds "app settings" view ### 0.1.2 - February 2021 --- diff --git a/lib/settings/app_settings.dart b/lib/settings/app_settings.dart new file mode 100644 index 00000000..4fa72d9e --- /dev/null +++ b/lib/settings/app_settings.dart @@ -0,0 +1,73 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter/cupertino.dart'; + +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; + +class InvenTreeAppSettingsWidget extends StatefulWidget { + @override + _InvenTreeAppSettingsState createState() => _InvenTreeAppSettingsState(); +} + +class _InvenTreeAppSettingsState extends State { + + final GlobalKey<_InvenTreeAppSettingsState> _settingsKey = GlobalKey<_InvenTreeAppSettingsState>(); + + _InvenTreeAppSettingsState() { + + } + + bool a = false; + + @override + Widget build(BuildContext context) { + + return Scaffold( + key: _settingsKey, + appBar: AppBar( + title: Text(I18N.of(context).appSettings), + ), + body: Container( + child: ListView( + children: [ + ListTile( + title: Text( + "Sounds", + style: TextStyle(fontWeight: FontWeight.bold), + ), + leading: FaIcon(FontAwesomeIcons.volumeUp), + ), + ListTile( + title: Text("Server Error"), + subtitle: Text("Play audible tone on server error"), + leading: FaIcon(FontAwesomeIcons.server), + trailing: Switch( + value: false, + onChanged: (value) { + setState(() { + // TODO + }); + }, + ), + ), + ListTile( + title: Text("Barcode Tones"), + subtitle: Text("Play audible tones for barcode actions"), + leading: FaIcon(FontAwesomeIcons.qrcode), + trailing: Switch( + value: a, + onChanged: (value) { + setState(() { + a = value; + }); + }, + ), + ), + Divider(height: 1), + ] + ) + ) + ); + } +} \ No newline at end of file diff --git a/lib/settings/login.dart b/lib/settings/login.dart index 13fb8585..ac10672e 100644 --- a/lib/settings/login.dart +++ b/lib/settings/login.dart @@ -53,7 +53,7 @@ class _InvenTreeLoginSettingsState extends State { } showFormDialog( - I18N.of(context).profileAdd, + createNew ? I18N.of(context).profileAdd : I18N.of(context).profileEdit, key: _addProfileKey, callback: () { if (createNew) { @@ -237,8 +237,6 @@ class _InvenTreeLoginSettingsState extends State { @override Widget build(BuildContext context) { - final Size screenSize = MediaQuery.of(context).size; - List children = []; if (profiles != null && profiles.length > 0) { @@ -268,7 +266,7 @@ class _InvenTreeLoginSettingsState extends State { Navigator.of(context).pop(); _selectProfile(context, profile); }, - child: Text(I18N.of(context).profileSelect), + child: Text(I18N.of(context).profileConnect), ), SimpleDialogOption( onPressed: () { diff --git a/lib/settings/settings.dart b/lib/settings/settings.dart index 304540ed..784fcdc6 100644 --- a/lib/settings/settings.dart +++ b/lib/settings/settings.dart @@ -1,4 +1,5 @@ import 'package:InvenTree/settings/about.dart'; +import 'package:InvenTree/settings/app_settings.dart'; import 'package:InvenTree/settings/login.dart'; import 'package:InvenTree/user_profile.dart'; @@ -39,11 +40,17 @@ class _InvenTreeSettingsState extends State { context: context, tiles: [ ListTile( - title: Text(I18N.of(context).profile), - subtitle: Text("Configure user profile settings"), - leading: FaIcon(FontAwesomeIcons.user), + title: Text(I18N.of(context).server), + subtitle: Text("Configure server settings"), + leading: FaIcon(FontAwesomeIcons.server), onTap: _editServerSettings, ), + ListTile( + leading: FaIcon(FontAwesomeIcons.cogs), + title: Text(I18N.of(context).appSettings), + subtitle: Text(I18N.of(context).appSettingsDetails), + onTap: _editAppSettings, + ), ListTile( title: Text(I18N.of(context).about), subtitle: Text(I18N.of(context).appDetails), @@ -76,11 +83,13 @@ class _InvenTreeSettingsState extends State { void _editServerSettings() async { - List profiles = await UserProfileDBManager().getAllProfiles(); - Navigator.push(context, MaterialPageRoute(builder: (context) => InvenTreeLoginSettingsWidget())); } + void _editAppSettings() async { + Navigator.push(context, MaterialPageRoute(builder: (context) => InvenTreeAppSettingsWidget())); + } + void _about() async { PackageInfo.fromPlatform().then((PackageInfo info) {