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:
parent
7535c3a8bb
commit
7de6b8c700
|
@ -8,17 +8,17 @@ class SimpleDialogs {
|
||||||
|
|
||||||
const SimpleDialogs(this.context);
|
const SimpleDialogs(this.context);
|
||||||
|
|
||||||
Future<String> enterText({
|
Future<String> enterText(
|
||||||
String titleText,
|
{String titleText,
|
||||||
String confirmText,
|
String confirmText,
|
||||||
String cancelText,
|
String cancelText,
|
||||||
String hintText,
|
String hintText,
|
||||||
String labelText,
|
String labelText,
|
||||||
String prefixText,
|
String prefixText,
|
||||||
String suffixText,
|
String suffixText,
|
||||||
bool password = false,
|
bool password = false,
|
||||||
bool multiLine = false,
|
bool multiLine = false,
|
||||||
}) async {
|
TextInputType keyboardType}) async {
|
||||||
var textEditingController = TextEditingController();
|
var textEditingController = TextEditingController();
|
||||||
final controller = textEditingController;
|
final controller = textEditingController;
|
||||||
String input;
|
String input;
|
||||||
|
@ -38,6 +38,7 @@ class SimpleDialogs {
|
||||||
maxLines: multiLine ? 3 : 1,
|
maxLines: multiLine ? 3 : 1,
|
||||||
obscureText: password,
|
obscureText: password,
|
||||||
textInputAction: multiLine ? TextInputAction.newline : null,
|
textInputAction: multiLine ? TextInputAction.newline : null,
|
||||||
|
keyboardType: keyboardType,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
hintText: hintText,
|
hintText: hintText,
|
||||||
labelText: labelText,
|
labelText: labelText,
|
||||||
|
|
|
@ -12,7 +12,8 @@ class HomeserverPicker extends StatelessWidget {
|
||||||
final homeserver = await SimpleDialogs(context).enterText(
|
final homeserver = await SimpleDialogs(context).enterText(
|
||||||
titleText: L10n.of(context).enterYourHomeserver,
|
titleText: L10n.of(context).enterYourHomeserver,
|
||||||
hintText: Matrix.defaultHomeserver,
|
hintText: Matrix.defaultHomeserver,
|
||||||
prefixText: 'https://');
|
prefixText: 'https://',
|
||||||
|
keyboardType: TextInputType.url);
|
||||||
if (homeserver?.isEmpty ?? true) return;
|
if (homeserver?.isEmpty ?? true) return;
|
||||||
_checkHomeserverAction(homeserver, context);
|
_checkHomeserverAction(homeserver, context);
|
||||||
}
|
}
|
||||||
|
@ -21,6 +22,13 @@ class HomeserverPicker extends StatelessWidget {
|
||||||
if (!homeserver.startsWith('https://')) {
|
if (!homeserver.startsWith('https://')) {
|
||||||
homeserver = 'https://$homeserver';
|
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(
|
final success = await SimpleDialogs(context).tryRequestWithLoadingDialog(
|
||||||
Matrix.of(context).client.checkServer(homeserver));
|
Matrix.of(context).client.checkServer(homeserver));
|
||||||
if (success != false) {
|
if (success != false) {
|
||||||
|
|
|
@ -131,6 +131,7 @@ class _LoginState extends State<Login> {
|
||||||
readOnly: loading,
|
readOnly: loading,
|
||||||
autocorrect: false,
|
autocorrect: false,
|
||||||
autofocus: true,
|
autofocus: true,
|
||||||
|
keyboardType: TextInputType.emailAddress,
|
||||||
onChanged: (t) => _checkWellKnownWithCoolDown(t, context),
|
onChanged: (t) => _checkWellKnownWithCoolDown(t, context),
|
||||||
controller: usernameController,
|
controller: usernameController,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
|
|
Loading…
Reference in a new issue