[mob][photos] Deprecate in User model and create extension of User which has displayName() method that gets user name from emailToNameCache

This commit is contained in:
ashilkn
2025-01-22 16:02:43 +05:30
parent 03be554025
commit 9ff57b765c
3 changed files with 29 additions and 8 deletions

View File

@@ -0,0 +1,14 @@
import "package:photos/models/api/collection/user.dart";
import "package:photos/services/machine_learning/face_ml/person/person_service.dart";
extension UserExtension on User {
String? displayName() {
final emailToName = PersonService.instance.emailToNameMapCache;
if (emailToName.containsKey(email)) {
return emailToName[email];
} else {
//Some initial users have name in name field.
return name;
}
}
}

View File

@@ -3,6 +3,10 @@ import "dart:convert";
class User {
int? id;
String email;
@Deprecated(
"Use displayName() extension method instead. Note: Some early users have"
" value in name field.",
)
String? name;
String? role;

View File

@@ -19,7 +19,7 @@ class PersonService {
final EntityService entityService;
final MLDataDB faceMLDataDB;
final SharedPreferences prefs;
final _emailToNameMap = <String, String>{};
final _emailToNameMapCache = <String, String>{};
PersonService(this.entityService, this.faceMLDataDB, this.prefs);
@@ -44,14 +44,17 @@ class PersonService {
_instance!.getPersons().then((value) {
for (var person in value) {
if (person.data.email != null && person.data.email!.isNotEmpty) {
_instance!._emailToNameMap[person.data.email!] = person.data.name;
_instance!._emailToNameMapCache[person.data.email!] =
person.data.name;
}
}
});
}
Map<String, String> get emailToNameMapCache => _emailToNameMapCache;
void clearCache() {
_emailToNameMap.clear();
_emailToNameMapCache.clear();
}
Future<List<PersonEntity>> getPersons() async {
@@ -191,7 +194,7 @@ class PersonService {
clusterID: clusterID,
);
if (data.email != null) {
_emailToNameMap[data.email!] = data.name;
_emailToNameMapCache[data.email!] = data.name;
}
return PersonEntity(result.id, data);
}
@@ -282,7 +285,7 @@ class PersonService {
justName.data.logStats();
if (entity.data.email != null) {
_emailToNameMap.remove(entity.data.email!);
_emailToNameMapCache.remove(entity.data.email!);
}
} else {
await entityService.deleteEntry(personID);
@@ -290,7 +293,7 @@ class PersonService {
if (entity != null) {
if (entity.data.email != null) {
_emailToNameMap.remove(entity.data.email!);
_emailToNameMapCache.remove(entity.data.email!);
}
}
}
@@ -454,10 +457,10 @@ class PersonService {
);
await updatePerson(updatedPerson).then((value) {
if (email != null) {
_emailToNameMap[email] = updatedPerson.data.name;
_emailToNameMapCache[email] = updatedPerson.data.name;
}
if (name != null && updatedPerson.data.email != null) {
_emailToNameMap[updatedPerson.data.email!] = name;
_emailToNameMapCache[updatedPerson.data.email!] = name;
}
});
return updatedPerson;