diff --git a/lib/pages/connect/connect_page_view.dart b/lib/pages/connect/connect_page_view.dart index f9939d45..24465b96 100644 --- a/lib/pages/connect/connect_page_view.dart +++ b/lib/pages/connect/connect_page_view.dart @@ -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( - 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( + 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), + ), + ), + ], ), ), ), diff --git a/lib/pages/homeserver_picker/homeserver_picker.dart b/lib/pages/homeserver_picker/homeserver_picker.dart index d0533c29..1017e023 100644 --- a/lib/pages/homeserver_picker/homeserver_picker.dart +++ b/lib/pages/homeserver_picker/homeserver_picker.dart @@ -34,9 +34,11 @@ class HomeserverPickerController extends State { 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 { homeserverController.text = server; searchTerm = ''; homeserverFocusNode.unfocus(); + displayServerList = false; }); /// Starts an analysis of the given homeserver. It uses the current domain and