|
|
|
@ -508,38 +508,36 @@ class _HomePageState extends State<HomePage> with tray.TrayListener, WindowListe
|
|
|
|
|
), |
|
|
|
|
if (appsData != null) ...[ |
|
|
|
|
for (final appImplementation in appsData) ...[ |
|
|
|
|
if (appsData.map((final a) => a.id).contains(appImplementation.id)) ...[ |
|
|
|
|
ListTile( |
|
|
|
|
key: Key('app-${appImplementation.id}'), |
|
|
|
|
title: StreamBuilder<int>( |
|
|
|
|
stream: appImplementation.getUnreadCounter(_appsBloc) ?? |
|
|
|
|
BehaviorSubject<int>.seeded(0), |
|
|
|
|
builder: (final context, final unreadCounterSnapshot) => Row( |
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween, |
|
|
|
|
children: [ |
|
|
|
|
Text(appImplementation.name(context)), |
|
|
|
|
if (unreadCounterSnapshot.hasData && |
|
|
|
|
unreadCounterSnapshot.data! > 0) ...[ |
|
|
|
|
Text( |
|
|
|
|
unreadCounterSnapshot.data!.toString(), |
|
|
|
|
style: TextStyle( |
|
|
|
|
color: Theme.of(context).colorScheme.primary, |
|
|
|
|
fontWeight: FontWeight.bold, |
|
|
|
|
fontSize: 14, |
|
|
|
|
), |
|
|
|
|
ListTile( |
|
|
|
|
key: Key('app-${appImplementation.id}'), |
|
|
|
|
title: StreamBuilder<int>( |
|
|
|
|
stream: appImplementation.getUnreadCounter(_appsBloc) ?? |
|
|
|
|
BehaviorSubject<int>.seeded(0), |
|
|
|
|
builder: (final context, final unreadCounterSnapshot) => Row( |
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween, |
|
|
|
|
children: [ |
|
|
|
|
Text(appImplementation.name(context)), |
|
|
|
|
if (unreadCounterSnapshot.hasData && |
|
|
|
|
unreadCounterSnapshot.data! > 0) ...[ |
|
|
|
|
Text( |
|
|
|
|
unreadCounterSnapshot.data!.toString(), |
|
|
|
|
style: TextStyle( |
|
|
|
|
color: Theme.of(context).colorScheme.primary, |
|
|
|
|
fontWeight: FontWeight.bold, |
|
|
|
|
fontSize: 14, |
|
|
|
|
), |
|
|
|
|
], |
|
|
|
|
), |
|
|
|
|
], |
|
|
|
|
), |
|
|
|
|
], |
|
|
|
|
), |
|
|
|
|
leading: appImplementation.buildIcon(context), |
|
|
|
|
minLeadingWidth: 0, |
|
|
|
|
onTap: () { |
|
|
|
|
_appsBloc.setActiveApp(appImplementation.id); |
|
|
|
|
Navigator.of(context).pop(); |
|
|
|
|
}, |
|
|
|
|
), |
|
|
|
|
], |
|
|
|
|
leading: appImplementation.buildIcon(context), |
|
|
|
|
minLeadingWidth: 0, |
|
|
|
|
onTap: () { |
|
|
|
|
_appsBloc.setActiveApp(appImplementation.id); |
|
|
|
|
Navigator.of(context).pop(); |
|
|
|
|
}, |
|
|
|
|
), |
|
|
|
|
], |
|
|
|
|
], |
|
|
|
|
], |
|
|
|
|