chore: Follow up fixes new login design

This commit is contained in:
Christian Pauly 2022-04-23 10:57:12 +02:00
parent 1a2eb272fa
commit 0f1bb4dccf
2 changed files with 51 additions and 44 deletions

View File

@ -36,48 +36,52 @@ class ConnectPageView extends StatelessWidget {
Padding(
padding: const EdgeInsets.all(16.0),
child: Center(
child: Material(
borderRadius: BorderRadius.circular(64),
elevation: 10,
color: Colors.transparent,
child: CircleAvatar(
radius: 64,
backgroundColor: Colors.white.withAlpha(200),
child: Stack(
children: [
Center(
child: avatar == null
? const Icon(
Icons.person_outlined,
color: Colors.black,
size: 64,
)
: FutureBuilder<Uint8List>(
future: avatar.readAsBytes(),
builder: (context, snapshot) {
final bytes = snapshot.data;
if (bytes == null) {
return const CircularProgressIndicator
.adaptive();
}
return Image.memory(bytes);
},
),
),
Positioned(
bottom: 0,
right: 0,
child: FloatingActionButton(
mini: true,
onPressed: controller.pickAvatar,
backgroundColor: Colors.white,
foregroundColor: Colors.black,
child: const Icon(Icons.camera_alt_outlined),
),
),
],
child: Stack(
children: [
Material(
borderRadius: BorderRadius.circular(64),
elevation: 10,
color: Colors.transparent,
clipBehavior: Clip.hardEdge,
child: CircleAvatar(
radius: 64,
backgroundColor: Colors.white.withAlpha(200),
child: avatar == null
? const Icon(
Icons.person_outlined,
color: Colors.black,
size: 64,
)
: FutureBuilder<Uint8List>(
future: avatar.readAsBytes(),
builder: (context, snapshot) {
final bytes = snapshot.data;
if (bytes == null) {
return const CircularProgressIndicator
.adaptive();
}
return Image.memory(
bytes,
fit: BoxFit.cover,
width: 128,
height: 128,
);
},
),
),
),
),
Positioned(
bottom: 0,
right: 0,
child: FloatingActionButton(
mini: true,
onPressed: controller.pickAvatar,
backgroundColor: Colors.white,
foregroundColor: Colors.black,
child: const Icon(Icons.camera_alt_outlined),
),
),
],
),
),
),

View File

@ -34,9 +34,11 @@ class HomeserverPickerController extends State<HomeserverPicker> {
void _updateFocus() {
if (benchmarkResults == null) _loadHomeserverList();
setState(() {
displayServerList = homeserverFocusNode.hasFocus;
});
if (homeserverFocusNode.hasFocus) {
setState(() {
displayServerList = true;
});
}
}
void showServerInfo(HomeserverBenchmarkResult server) => showModalBottomSheet(
@ -76,6 +78,7 @@ class HomeserverPickerController extends State<HomeserverPicker> {
homeserverController.text = server;
searchTerm = '';
homeserverFocusNode.unfocus();
displayServerList = false;
});
/// Starts an analysis of the given homeserver. It uses the current domain and