anchor.diff:            return a.url.compareTo(b.url);
           });
       });
  +
  +    _statsSubscription = pinManager.hostsStream.listen(_updateStats);
  +  }
  +
  +  @override
  +  void dispose() {
  +    super.dispose();
  +    _statsSubscription.cancel();
  +  }
  +
  +  void _updateStats(Set<pin.Host> hosts) {
  +    int newNumDirectories = 0;
  +    int newNumSongs = 0;
  +    for (pin.Host host in hosts) {
  +      for (dto.CollectionFile file in host.content) {
  +        if (file.isDirectory()) {
  +          newNumDirectories += 1;
  +        } else {
  +          newNumSongs += 1;
  +        }
  +      }
  +    }
  +    setState(() {
  +      numDirectories = newNumDirectories;
  +      numSongs = newNumSongs;
  +    });
     }
   
     @override
  
positive.code:       leading: ListThumbnail(file.artwork),
        title: Row(
          children: [
            Padding(padding: const EdgeInsets.only(right: 8), child: PinState()),
            Expanded(child: Text(formatTitle(), overflow: TextOverflow.ellipsis))
          ],
        ),
  
negative.code: }
  
  class PinState extends StatelessWidget {
    const PinState({Key? key}) : super(key: key);
  
    @override
    Widget build(BuildContext context) {
      const index = 5;
      if (index < 4) {
        return Icon(Icons.check, size: 16, color: Theme.of(context).textTheme.caption?.color);
      } else if (index == 4) {
  