immich icon indicating copy to clipboard operation
immich copied to clipboard

feat(mobile): update hidden status of a Person

Open JobiJoba opened this issue 5 months ago • 1 comments

Description

We now have the ability to hide a person from the mobile app (before only via the web app). To do so, you have to go on a person detail page (currently called PersonResultPage) and on the three dots you can select to Hide or Unhide a person.

We also have the possibility to see everyone on the PeopleCollectionPage (people with hidden) and people without hidden (default) by clicking on a toggle icon on the top right corner (see screenshot).

I've done some refactoring to make it works

  1. Move the Person class from the Interface class of a repository to it's own class (from IPersonApiRepository to domain/models/Person.dart)
  2. Remove unused page (allPlaces, AllPeoples) and unused widgets (explore_grid) - It would have been arduous to refactor them for something not being used.
  3. I passed a full Person object in PersonResultPage instead of adding only the isHidden from a person, so future feature will be able to use stuff from person (I will need the thumbnailPath for another PR for example) or if we want to display favorite, etc etc

How Has This Been Tested?

Go on the people collection page

  • check if it shows all the people without the hidden
  • click on the icon on the top right; check if hidden people are now showing

Go on the person page; click on the top three dots icon; select :

  • Hide a person; check if it's correctly hidden
  • Unhide a person; check if it's correctly unhidden

Screenshots (if appropriate)

![image](https://github.com/user-attachments/assets/bc12c7ce-a77c-41dc-8b35-4758ffda1edd)

Checklist:

  • [x] I have performed a self-review of my own code
  • [x] I have made corresponding changes to the documentation if applicable
  • [x] I have no unrelated changes in the PR.
  • [x] I have confirmed that any new dependencies are strictly necessary.
  • [x] I have written tests for new code (if applicable)
  • [x] I have followed naming conventions/patterns in the surrounding code
  • [x] All code in src/services/ uses repositories implementations for database calls, filesystem operations, etc.
  • [x] All code in src/repositories/ is pretty basic/simple and does not have any immich specific logic (that belongs in src/services/)

JobiJoba avatar Jun 10 '25 08:06 JobiJoba