Add accepted leg edit notification and class leaderboard
All checks were successful
Release / meta (push) Successful in 12s
Release / linux-build (push) Successful in 1m0s
Release / web-build (push) Successful in 2m6s
Release / android-build (push) Successful in 6m8s
Release / release-master (push) Successful in 16s
Release / release-dev (push) Successful in 19s
All checks were successful
Release / meta (push) Successful in 12s
Release / linux-build (push) Successful in 1m0s
Release / web-build (push) Successful in 2m6s
Release / android-build (push) Successful in 6m8s
Release / release-master (push) Successful in 16s
Release / release-dev (push) Successful in 19s
This commit is contained in:
@@ -22,6 +22,7 @@ import 'package:mileograph_flutter/components/pages/stats.dart';
|
||||
import 'package:mileograph_flutter/components/pages/traction.dart';
|
||||
import 'package:mileograph_flutter/components/pages/more/user_profile_page.dart';
|
||||
import 'package:mileograph_flutter/components/widgets/friend_request_notification_card.dart';
|
||||
import 'package:mileograph_flutter/components/widgets/leg_share_edit_notification_card.dart';
|
||||
import 'package:mileograph_flutter/components/widgets/leg_share_notification_card.dart';
|
||||
import 'package:mileograph_flutter/objects/objects.dart';
|
||||
import 'package:mileograph_flutter/services/authservice.dart';
|
||||
@@ -731,7 +732,8 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
final item = notifications[index];
|
||||
final isFriendRequest = _isFriendRequestNotification(item);
|
||||
final isLegShare = _isLegShareNotification(item);
|
||||
final isSpecial = isFriendRequest || isLegShare;
|
||||
final isLegShareEdit = _isLegShareEditNotification(item);
|
||||
final isSpecial = isFriendRequest || isLegShare || isLegShareEdit;
|
||||
return Card(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(12.0),
|
||||
@@ -754,10 +756,12 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
isFriendRequest || isLegShare
|
||||
isSpecial
|
||||
? isFriendRequest
|
||||
? 'Accept to share entries'
|
||||
: 'Shared entry details below.'
|
||||
: isLegShareEdit
|
||||
? 'Shared leg edits below.'
|
||||
: 'Shared entry details below.'
|
||||
: item.body,
|
||||
style: Theme.of(context).textTheme.bodyMedium,
|
||||
),
|
||||
@@ -801,6 +805,13 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
notification: item,
|
||||
),
|
||||
),
|
||||
if (_isLegShareEditNotification(item))
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 8.0),
|
||||
child: LegShareEditNotificationCard(
|
||||
notification: item,
|
||||
),
|
||||
),
|
||||
if (isLegShare)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 8.0),
|
||||
@@ -890,7 +901,22 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
bool _isLegShareNotification(UserNotification notification) {
|
||||
final channel = notification.channel.trim().toLowerCase();
|
||||
final type = notification.type.trim().toLowerCase();
|
||||
return channel.contains('leg_share') || type.contains('leg_share');
|
||||
final isAcceptEdits =
|
||||
_isLegShareAcceptEdits(channel) || _isLegShareAcceptEdits(type);
|
||||
return (channel.contains('leg_share') || type.contains('leg_share')) &&
|
||||
!isAcceptEdits;
|
||||
}
|
||||
|
||||
bool _isLegShareEditNotification(UserNotification notification) {
|
||||
final channel = notification.channel.trim().toLowerCase();
|
||||
final type = notification.type.trim().toLowerCase();
|
||||
return _isLegShareAcceptEdits(channel) || _isLegShareAcceptEdits(type);
|
||||
}
|
||||
|
||||
bool _isLegShareAcceptEdits(String value) {
|
||||
final normalized = value.trim().toLowerCase();
|
||||
// Match both singular/plural: leg_share_accept_edit / leg_share_accept_edits
|
||||
return normalized.contains('leg_share_accept_edit');
|
||||
}
|
||||
|
||||
Widget _buildBadge(String label) {
|
||||
|
||||
Reference in New Issue
Block a user