diff --git a/mobile/lib/extensions/user_extension.dart b/mobile/lib/extensions/user_extension.dart index 6670cd95e8..e04b215b2b 100644 --- a/mobile/lib/extensions/user_extension.dart +++ b/mobile/lib/extensions/user_extension.dart @@ -2,13 +2,7 @@ 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; - } - } + //Some initial users have name in name field. + String? get displayName => + PersonService.instance.emailToNameMapCache[email] ?? name; } diff --git a/mobile/lib/models/search/hierarchical/contacts_filter.dart b/mobile/lib/models/search/hierarchical/contacts_filter.dart index 100061cc22..7fc0682bec 100644 --- a/mobile/lib/models/search/hierarchical/contacts_filter.dart +++ b/mobile/lib/models/search/hierarchical/contacts_filter.dart @@ -1,4 +1,5 @@ import "package:flutter/material.dart"; +import "package:photos/extensions/user_extension.dart"; import "package:photos/models/api/collection/user.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/search/hierarchical/hierarchical_search_filter.dart"; @@ -16,10 +17,11 @@ class ContactsFilter extends HierarchicalSearchFilter { @override String name() { - if (user.name == null || user.name!.isEmpty) { + final name = user.displayName; + if (name == null || name.isEmpty) { return user.email.split("@")[0]; } - return user.name!; + return name; } @override diff --git a/mobile/lib/services/search_service.dart b/mobile/lib/services/search_service.dart index 861449336e..ebcb3cf512 100644 --- a/mobile/lib/services/search_service.dart +++ b/mobile/lib/services/search_service.dart @@ -12,6 +12,7 @@ import 'package:photos/data/years.dart'; import 'package:photos/db/files_db.dart'; import "package:photos/db/ml/db.dart"; import 'package:photos/events/local_photos_updated_event.dart'; +import "package:photos/extensions/user_extension.dart"; import "package:photos/models/api/collection/user.dart"; import 'package:photos/models/collection/collection.dart'; import 'package:photos/models/collection/collection_items.dart'; @@ -1346,7 +1347,8 @@ class SearchService { .getFileOwner(file.ownerID!, file.collectionID); if (fileOwner.email.toLowerCase().contains(lowerCaseQuery) || - ((fileOwner.name?.toLowerCase().contains(lowerCaseQuery)) ?? false)) { + ((fileOwner.displayName?.toLowerCase().contains(lowerCaseQuery)) ?? + false)) { if (peopleToSharedFiles.containsKey(fileOwner)) { peopleToSharedFiles[fileOwner]!.add(file); } else { @@ -1359,7 +1361,9 @@ class SearchService { searchResults.add( GenericSearchResult( ResultType.shared, - key.name != null && key.name!.isNotEmpty ? key.name! : key.email, + key.displayName != null && key.displayName!.isNotEmpty + ? key.displayName! + : key.email, value, hierarchicalSearchFilter: ContactsFilter( user: key, @@ -1396,8 +1400,8 @@ class SearchService { } peopleToSharedFiles.forEach((key, value) { - final name = key.name != null && key.name!.isNotEmpty - ? key.name! + final name = key.displayName != null && key.displayName!.isNotEmpty + ? key.displayName! : key.email.split("@")[0]; searchResults.add( GenericSearchResult( diff --git a/mobile/lib/ui/sharing/user_avator_widget.dart b/mobile/lib/ui/sharing/user_avator_widget.dart index 7741dc29e0..2df85755b5 100644 --- a/mobile/lib/ui/sharing/user_avator_widget.dart +++ b/mobile/lib/ui/sharing/user_avator_widget.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import "package:photos/extensions/user_extension.dart"; import "package:photos/models/api/collection/user.dart"; import 'package:photos/theme/colors.dart'; import 'package:photos/theme/ente_theme.dart'; @@ -23,9 +24,9 @@ class UserAvatarWidget extends StatelessWidget { @override Widget build(BuildContext context) { final colorScheme = getEnteColorScheme(context); - final displayChar = (user.name == null || user.name!.isEmpty) + final displayChar = (user.displayName == null || user.displayName!.isEmpty) ? ((user.email.isEmpty) ? " " : user.email.substring(0, 1)) - : user.name!.substring(0, 1); + : user.displayName!.substring(0, 1); Color decorationColor; if (user.id == null || user.id! <= 0 || user.id == currentUserID) { decorationColor = Colors.black;