Cosmetic improvements of homeserver and user inputs

Keyboard type for homeserver TextInput changed to url and trailing '/' with potential whitespaces is stripped.
Keyboard type for username changed to e-mail for convenience.

Should resolve: #34 and #64
This commit is contained in:
Katerina 2020-07-02 09:10:03 +00:00 committed by Christian Pauly
parent 7535c3a8bb
commit 7de6b8c700
3 changed files with 22 additions and 12 deletions

View File

@ -8,17 +8,17 @@ class SimpleDialogs {
const SimpleDialogs(this.context);
Future<String> enterText({
String titleText,
String confirmText,
String cancelText,
String hintText,
String labelText,
String prefixText,
String suffixText,
bool password = false,
bool multiLine = false,
}) async {
Future<String> enterText(
{String titleText,
String confirmText,
String cancelText,
String hintText,
String labelText,
String prefixText,
String suffixText,
bool password = false,
bool multiLine = false,
TextInputType keyboardType}) async {
var textEditingController = TextEditingController();
final controller = textEditingController;
String input;
@ -38,6 +38,7 @@ class SimpleDialogs {
maxLines: multiLine ? 3 : 1,
obscureText: password,
textInputAction: multiLine ? TextInputAction.newline : null,
keyboardType: keyboardType,
decoration: InputDecoration(
hintText: hintText,
labelText: labelText,

View File

@ -12,7 +12,8 @@ class HomeserverPicker extends StatelessWidget {
final homeserver = await SimpleDialogs(context).enterText(
titleText: L10n.of(context).enterYourHomeserver,
hintText: Matrix.defaultHomeserver,
prefixText: 'https://');
prefixText: 'https://',
keyboardType: TextInputType.url);
if (homeserver?.isEmpty ?? true) return;
_checkHomeserverAction(homeserver, context);
}
@ -21,6 +22,13 @@ class HomeserverPicker extends StatelessWidget {
if (!homeserver.startsWith('https://')) {
homeserver = 'https://$homeserver';
}
// removes trailing spaces and slash from url if present (api errors on it)
homeserver = homeserver.trim();
if (homeserver.endsWith('/')) {
homeserver = homeserver.substring(0, homeserver.length - 1);
}
final success = await SimpleDialogs(context).tryRequestWithLoadingDialog(
Matrix.of(context).client.checkServer(homeserver));
if (success != false) {

View File

@ -131,6 +131,7 @@ class _LoginState extends State<Login> {
readOnly: loading,
autocorrect: false,
autofocus: true,
keyboardType: TextInputType.emailAddress,
onChanged: (t) => _checkWellKnownWithCoolDown(t, context),
controller: usernameController,
decoration: InputDecoration(