mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-10-31 10:14:50 +00:00 
			
		
		
		
	Can update user public note
This commit is contained in:
		| @@ -16,7 +16,7 @@ class GeneralSettings { | |||||||
|   bool publicFriendsList; |   bool publicFriendsList; | ||||||
|   final String virtualDirectory; |   final String virtualDirectory; | ||||||
|   String personalWebsite; |   String personalWebsite; | ||||||
|   final String publicNote; |   String publicNote; | ||||||
|  |  | ||||||
|   GeneralSettings({ |   GeneralSettings({ | ||||||
|     @required this.email, |     @required this.email, | ||||||
|   | |||||||
| @@ -2,7 +2,10 @@ import 'package:comunic/utils/intl_utils.dart'; | |||||||
| import 'package:flutter/cupertino.dart'; | import 'package:flutter/cupertino.dart'; | ||||||
| import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||||
|  |  | ||||||
| /// Ask the user to enter an URL | /// Dialog to use to ask the user to enter a value | ||||||
|  | /// | ||||||
|  | /// @author Pierre Hubert | ||||||
|  |  | ||||||
| class SingleInputDialog extends StatefulWidget { | class SingleInputDialog extends StatefulWidget { | ||||||
|   final String title; |   final String title; | ||||||
|   final IconData icon; |   final IconData icon; | ||||||
| @@ -11,6 +14,8 @@ class SingleInputDialog extends StatefulWidget { | |||||||
|   final bool Function(String) checkInput; |   final bool Function(String) checkInput; | ||||||
|   final String errorMessage; |   final String errorMessage; | ||||||
|   final bool canBeEmpty; |   final bool canBeEmpty; | ||||||
|  |   final int maxLines; | ||||||
|  |   final int maxLength; | ||||||
|  |  | ||||||
|   const SingleInputDialog({ |   const SingleInputDialog({ | ||||||
|     Key key, |     Key key, | ||||||
| @@ -21,10 +26,13 @@ class SingleInputDialog extends StatefulWidget { | |||||||
|     @required this.checkInput, |     @required this.checkInput, | ||||||
|     @required this.errorMessage, |     @required this.errorMessage, | ||||||
|     this.canBeEmpty = false, |     this.canBeEmpty = false, | ||||||
|  |     this.maxLines = 1, | ||||||
|  |     this.maxLength, | ||||||
|   })  : assert(title != null), |   })  : assert(title != null), | ||||||
|         assert(label != null), |         assert(label != null), | ||||||
|         assert(checkInput != null), |         assert(checkInput != null), | ||||||
|         assert(errorMessage != null), |         assert(errorMessage != null), | ||||||
|  |         assert(maxLines != null), | ||||||
|         super(key: key); |         super(key: key); | ||||||
|  |  | ||||||
|   @override |   @override | ||||||
| @@ -51,6 +59,8 @@ class __InputURLDialogState extends State<SingleInputDialog> { | |||||||
|       content: TextField( |       content: TextField( | ||||||
|         controller: _controller, |         controller: _controller, | ||||||
|         onChanged: (s) => setState(() {}), |         onChanged: (s) => setState(() {}), | ||||||
|  |         maxLines: widget.maxLines, | ||||||
|  |         maxLength: widget.maxLength, | ||||||
|         decoration: InputDecoration( |         decoration: InputDecoration( | ||||||
|           icon: widget.icon == null ? null : Icon(widget.icon), |           icon: widget.icon == null ? null : Icon(widget.icon), | ||||||
|           alignLabelWithHint: true, |           alignLabelWithHint: true, | ||||||
|   | |||||||
| @@ -192,7 +192,7 @@ class __GeneralAccountSettingsBodyState | |||||||
|  |  | ||||||
|       // Personal website |       // Personal website | ||||||
|       TextEditSettingsTile( |       TextEditSettingsTile( | ||||||
|         title: tr("Personal website URL"), |         title: tr("Personal website URL (optional)"), | ||||||
|         currValue: _settings.personalWebsite, |         currValue: _settings.personalWebsite, | ||||||
|         onChanged: (v) { |         onChanged: (v) { | ||||||
|           _settings.personalWebsite = v; |           _settings.personalWebsite = v; | ||||||
| @@ -200,7 +200,20 @@ class __GeneralAccountSettingsBodyState | |||||||
|         }, |         }, | ||||||
|         checkInput: (s) => validateUrl(s), |         checkInput: (s) => validateUrl(s), | ||||||
|         allowEmptyValues: true, |         allowEmptyValues: true, | ||||||
|       ) |       ), | ||||||
|  |  | ||||||
|  |       // Public notes | ||||||
|  |       TextEditSettingsTile( | ||||||
|  |         title: tr("Public note (optional)"), | ||||||
|  |         currValue: _settings.publicNote, | ||||||
|  |         onChanged: (v) { | ||||||
|  |           _settings.publicNote = v; | ||||||
|  |           _updateSettings(); | ||||||
|  |         }, | ||||||
|  |         allowEmptyValues: true, | ||||||
|  |         maxLength: 255, | ||||||
|  |         maxLines: 3, | ||||||
|  |       ), | ||||||
|     ]; |     ]; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -15,6 +15,8 @@ class TextEditSettingsTile extends SettingsTile { | |||||||
|   final void Function(String) onChanged; |   final void Function(String) onChanged; | ||||||
|   final bool Function(String) checkInput; |   final bool Function(String) checkInput; | ||||||
|   final bool allowEmptyValues; |   final bool allowEmptyValues; | ||||||
|  |   final int maxLines; | ||||||
|  |   final int maxLength; | ||||||
|  |  | ||||||
|   bool get readOnly => onChanged == null; |   bool get readOnly => onChanged == null; | ||||||
|  |  | ||||||
| @@ -25,10 +27,13 @@ class TextEditSettingsTile extends SettingsTile { | |||||||
|     @required this.onChanged, |     @required this.onChanged, | ||||||
|     this.checkInput = _defaultCheck, |     this.checkInput = _defaultCheck, | ||||||
|     this.allowEmptyValues = false, |     this.allowEmptyValues = false, | ||||||
|  |     this.maxLength, | ||||||
|  |     this.maxLines = 1, | ||||||
|   })  : assert(title != null), |   })  : assert(title != null), | ||||||
|         assert(currValue != null), |         assert(currValue != null), | ||||||
|         assert(checkInput != null), |         assert(checkInput != null), | ||||||
|         assert(allowEmptyValues != null); |         assert(allowEmptyValues != null), | ||||||
|  |         assert(maxLines != null); | ||||||
|  |  | ||||||
|   @override |   @override | ||||||
|   Widget build(BuildContext context) { |   Widget build(BuildContext context) { | ||||||
| @@ -50,6 +55,8 @@ class TextEditSettingsTile extends SettingsTile { | |||||||
|         checkInput: checkInput, |         checkInput: checkInput, | ||||||
|         errorMessage: tr("Invalid value!"), |         errorMessage: tr("Invalid value!"), | ||||||
|         canBeEmpty: allowEmptyValues, |         canBeEmpty: allowEmptyValues, | ||||||
|  |         maxLines: maxLines, | ||||||
|  |         maxLength: maxLength, | ||||||
|       ), |       ), | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user