Mobile. Share Screen. Remove readonly textinput for ID/password

This commit is contained in:
grummbeer 2023-03-09 16:40:30 +01:00
parent 1c634aa7d7
commit 4d95ada300

View File

@ -1,6 +1,7 @@
import 'dart:async'; import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_hbb/mobile/widgets/dialog.dart'; import 'package:flutter_hbb/mobile/widgets/dialog.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -205,7 +206,7 @@ class ServerInfo extends StatelessWidget {
Widget ConnectionStateNotification() { Widget ConnectionStateNotification() {
const Color colorPositive = Colors.greenAccent; const Color colorPositive = Colors.greenAccent;
const Color colorNegative = Colors.redAccent; const Color colorNegative = Colors.redAccent;
const double paddingRight = 15; const double paddingRight = 12;
if (serverModel.connectStatus == -1) { if (serverModel.connectStatus == -1) {
return Row(children: [ return Row(children: [
@ -229,38 +230,76 @@ class ServerInfo extends StatelessWidget {
} }
return PaddingCard( return PaddingCard(
title: translate('Your Device'),
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, // mainAxisSize: MainAxisSize.min,
// ID
children: [ children: [
TextFormField( Row(children: [
readOnly: true, const Icon(Icons.perm_identity, color: Colors.grey, size: 24)
style: const TextStyle(fontSize: 25.0, fontWeight: FontWeight.bold), .marginOnly(right: 12),
controller: model.serverId, Text(
decoration: InputDecoration( translate('ID'),
icon: const Icon(Icons.perm_identity), style: const TextStyle(
labelText: translate("ID"), fontSize: 16.0,
labelStyle: const TextStyle(fontWeight: FontWeight.bold),
),
onSaved: (String? value) {},
),
TextFormField(
readOnly: true,
style: const TextStyle(fontSize: 25.0, fontWeight: FontWeight.bold),
controller: isPermanent ? emptyController : model.serverPasswd,
decoration: InputDecoration(
icon: const Icon(Icons.lock),
labelText: translate("Password"),
labelStyle: const TextStyle(
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: Colors.grey),
)
]),
Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
Text(
model.serverId.value.text,
style: const TextStyle(
fontSize: 25.0, fontWeight: FontWeight.bold),
), ),
suffix: isPermanent IconButton(
? null visualDensity: VisualDensity.compact,
: IconButton( icon: Icon(Icons.copy_outlined),
onPressed: () {
Clipboard.setData(
ClipboardData(text: model.serverId.value.text.trim()));
showToast(translate('ID copied'));
})
]).marginOnly(left: 35, bottom: 10),
// Password
Row(children: [
const Icon(Icons.lock_outline, color: Colors.grey, size: 24)
.marginOnly(right: 12),
Text(
translate('One-time Password'),
style: const TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.bold,
color: Colors.grey),
)
]),
Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
Text(
isPermanent ? '-' : model.serverPasswd.value.text,
style: const TextStyle(
fontSize: 25.0, fontWeight: FontWeight.bold),
),
isPermanent
? SizedBox.shrink()
: Row(children: [
IconButton(
visualDensity: VisualDensity.compact,
icon: const Icon(Icons.refresh), icon: const Icon(Icons.refresh),
onPressed: () => bind.mainUpdateTemporaryPassword())), onPressed: () => bind.mainUpdateTemporaryPassword()),
onSaved: (String? value) {}, IconButton(
), visualDensity: VisualDensity.compact,
ConnectionStateNotification().marginOnly(top: 20) icon: Icon(Icons.copy_outlined),
onPressed: () {
Clipboard.setData(ClipboardData(
text: model.serverPasswd.value.text.trim()));
showToast(translate('Password copied'));
})
])
]).marginOnly(left: 35, bottom: 10),
ConnectionStateNotification()
], ],
)); ));
} }