Force Neos bot account status to be always online

This commit is contained in:
Nutcake 2023-05-12 18:40:09 +02:00
parent a9424cc84b
commit 801881cc07

View file

@ -3,6 +3,7 @@ import 'package:contacts_plus_plus/models/user_profile.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class Friend implements Comparable { class Friend implements Comparable {
static const _neosBotId = "U-Neos";
final String id; final String id;
final String username; final String username;
final String ownerId; final String ownerId;
@ -16,11 +17,13 @@ class Friend implements Comparable {
}); });
factory Friend.fromMap(Map map) { factory Friend.fromMap(Map map) {
final userStatus = UserStatus.fromMap(map["userStatus"]);
return Friend( return Friend(
id: map["id"], id: map["id"],
username: map["friendUsername"], username: map["friendUsername"],
ownerId: map["ownerId"] ?? map["id"], ownerId: map["ownerId"] ?? map["id"],
userStatus: UserStatus.fromMap(map["userStatus"]), // Neos bot status is always offline but should be displayed as online
userStatus: map["id"] == _neosBotId ? userStatus.copyWith(onlineStatus: OnlineStatus.online) : userStatus,
userProfile: UserProfile.fromMap(map["profile"] ?? {}), userProfile: UserProfile.fromMap(map["profile"] ?? {}),
friendStatus: FriendStatus.fromString(map["friendStatus"]), friendStatus: FriendStatus.fromString(map["friendStatus"]),
latestMessageTime: map["latestMessageTime"] == null latestMessageTime: map["latestMessageTime"] == null