2023-11-10 19:23:25 -04:00
|
|
|
import 'package:flutter/material.dart';
|
2024-07-15 00:23:04 -04:00
|
|
|
import 'package:OpenContacts/models/users/friend.dart';
|
|
|
|
import 'package:OpenContacts/models/users/online_status.dart';
|
|
|
|
import 'package:OpenContacts/models/users/user_status.dart';
|
2023-05-07 07:38:45 -04:00
|
|
|
|
|
|
|
class FriendOnlineStatusIndicator extends StatelessWidget {
|
2024-01-27 10:55:55 -04:00
|
|
|
const FriendOnlineStatusIndicator({required this.friend, super.key});
|
2023-05-07 07:38:45 -04:00
|
|
|
|
2024-01-27 10:55:55 -04:00
|
|
|
final Friend friend;
|
2023-05-07 07:38:45 -04:00
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
2024-01-27 10:55:55 -04:00
|
|
|
final UserStatus userStatus = friend.userStatus;
|
|
|
|
final OnlineStatus onlineStatus = userStatus.onlineStatus;
|
2024-10-17 18:22:52 -04:00
|
|
|
return userStatus.appVersion.contains("OpenContacts") && friend.isOnline
|
2023-05-29 10:14:07 -04:00
|
|
|
? SizedBox.square(
|
|
|
|
dimension: 10,
|
|
|
|
child: Image.asset(
|
|
|
|
"assets/images/logo-white.png",
|
2024-01-27 10:55:55 -04:00
|
|
|
color: onlineStatus.color(context),
|
2023-11-10 19:23:25 -04:00
|
|
|
filterQuality: FilterQuality.medium,
|
|
|
|
isAntiAlias: true,
|
2023-05-29 10:14:07 -04:00
|
|
|
),
|
|
|
|
)
|
|
|
|
: Icon(
|
2024-01-27 10:55:55 -04:00
|
|
|
friend.isOffline ? Icons.circle_outlined : Icons.circle,
|
|
|
|
color: friend.isHeadless ? const Color.fromARGB(255, 41, 77, 92) : onlineStatus.color(context),
|
2023-05-29 10:14:07 -04:00
|
|
|
size: 10,
|
|
|
|
);
|
2023-05-07 07:38:45 -04:00
|
|
|
}
|
2023-05-29 10:14:07 -04:00
|
|
|
}
|
2024-10-11 14:50:25 -04:00
|
|
|
// TODO: Re-invent the fucking wheel aparently
|