anchor.diff:              default:
                 message = 'No YubiKey present';
             }
  -          return ListTile(
  -            leading: DeviceAvatar.deviceNode(
  +          return Column(
  +            children: [
  +              DeviceAvatar.deviceNode(
  +                node,
  +                selected: true,
  +                radius: 64,
  +              ),
  +              ListTile(
  +                title: Center(child: Text(message)),
  +                subtitle: Center(child: Text(node.name)),
  +              ),
  +            ],
  +          );
  +        },
  +        loading: () => Column(
  +          children: [
  +            DeviceAvatar.deviceNode(
                 node,
                 selected: true,
  -            ),
  -            title: Text(message),
  -            subtitle: Text(node.name),
  -            onTap: onTap,
  -          );
  -        },
  -        loading: () => ListTile(
  -          leading: DeviceAvatar.deviceNode(
  -            node,
  -            selected: true,
  -          ),
  -          title: const Text('No YubiKey present'),
  -          subtitle: Text(node.name),
  -          onTap: onTap,
  +              radius: 64,
  +            ),
  +            ListTile(
  +              title: const Center(child: Text('No YubiKey present')),
  +              subtitle: Center(child: Text(node.name)),
  +            ),
  +          ],
           ),
         );
   }
   
  -class _DeviceRow extends StatelessWidget {
  +class _DeviceRow extends ConsumerWidget {
     final DeviceNode node;
     final DeviceInfo? info;
  -  final Function() onTap;
   
     const _DeviceRow(
       this.node, {
  -    required this.info,
  -    required this.onTap,
  +    this.info,
     });
   
     @override
  -  Widget build(BuildContext context) {
  +  Widget build(BuildContext context, WidgetRef ref) {
       return ListTile(
         leading: Padding(
           padding: const EdgeInsets.symmetric(horizontal: 4),
  
positive.code:           title: const Text('USB'),
            subtitle: const Text('No YubiKey present'),
            onTap: () {
              Navigator.of(context).pop();
              ref.read(currentDeviceProvider.notifier).setCurrentDevice(null);
            },
          ),
        ...devices.map(
          (e) => _DeviceRow(
            e,
            info: e.map(
              usbYubiKey: (node) => node.info,
              nfcReader: (_) => null,
            ),
            onTap: () {
              Navigator.of(context).pop();
              ref.read(currentDeviceProvider.notifier).setCurrentDevice(e);
            },
          ),
        ),
      ];
  
      return SimpleDialog(
        children: [
          hero,
          if (others.isNotEmpty) const Divider(),
          ...others,
        ],
      );
    }
  }
  
negative.code: class _CurrentDeviceRow extends StatelessWidget {
    final DeviceNode node;
    final AsyncValue<YubiKeyData> data;
  
    const _CurrentDeviceRow(this.node, this.data);
  
    @override
    Widget build(BuildContext context) => data.when(
          data: (data) {
            final isNfc = data.node is NfcReaderNode;
            return Column(
              children: [
                DeviceAvatar.yubiKeyData(
                  data,
                  selected: true,
                  radius: 64,
                ),
                ListTile(
                  isThreeLine: isNfc,
                  title: Center(child: Text(data.name)),
                  subtitle: Column(
                    children: [
                      Text(_getSubtitle(data.info)),
                      if (isNfc) Text(node.name),
                    ],
                  ),
                  //onTap: onTap,
                ),
              ],
            );
          },
          error: (error, _) {
  