Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Photo picker for stories cannot pick new photos #5921

Open
3 tasks done
WhyNotHugo opened this issue Dec 8, 2024 · 7 comments
Open
3 tasks done

Photo picker for stories cannot pick new photos #5921

WhyNotHugo opened this issue Dec 8, 2024 · 7 comments

Comments

@WhyNotHugo
Copy link

WhyNotHugo commented Dec 8, 2024

  • I have searched open and closed issues for duplicates
  • I am submitting a bug report for existing functionality that does not work as intended
  • This isn't a feature request or a discussion topic

Bug description

It seems Signal uses its own custom photo picker instead of the iOS one. The problem is that a custom photo picker can only enumerate photos for which I’ve granted Signal access. So, in my case, I only see a single one.

The only workaround is to go into iOS settings > Signals > Photos > Edit Selected Photos, pick the new photo I want to upload there (eg: grant Signal access to it), then jump back into Signal and redo the above steps, and the photo is pickable.

Clearly the workaround is a huge pain, and I suspect most iOS users don't even know how to dig into settings to fix this. The photo also has to be picked twice: once in settings and once again in signal.

Steps to reproduce

Many months ago, I used the "share photo" option on a conversation on Signal. At the time, I picked a single photo to share (the one I was about to send). This is relevant context; the first time you use Signal's photo picker it will work, but only the first time.

  • Click on the stories tab
  • Tap on the button to upload a new one
  • Only the photo to which Signal has already been granted access is show.

Actual result

I can only pick the photo to which Signal has already been granted access.

Expected result

I should be able to pick another, different, photo.

Device info

Device: iPhone 11 Pro

iOS version: 16.0

Signal version: 5.59.10

Possible solution

The obvious solution here is: simply use iOS image picker. The current approach won't work because it only lists photos to which Signal has been granted access (but Signal has no shortcut to change this without digging into settings).

I'm not entirely sure of the exact API (I'm an iOS user, not developer), but apps like Fastmail get this right: when I want to attach a photo to an email, it pops up iOS's photo picker, which allows me to pick any photo on my phone.

Alternatives considered

Instagram tries to work around this by showing a link on the photo picker to use the native iOS photo picker to select new photos. With this approach, one can easily grant access to new photos, but when uploading a new story, one has to pick the photo twice, first on the iOS photo picker, and then on Instagram's internal one. I don't know how they consider this good UX.

Additional context

This was originally reported as #5478. However, nobody filed the paperwork in time, and the original issue expired.

Please do keep in mind that this kind of stale bots are counterproductive; they just add more churn and don't really fix anything.

@MarlowBrown
Copy link

Hey there!

As a contributor to Signal iOS, I understand and share your frustration with the ongoing issue affecting users for over two and a half years. I'm eager to submit a pull request to resolve this problem finally. I aim to strike a balance between user privacy and ease of use. I prioritize user privacy, but I also recognize the importance of making the app user-friendly.

Currently, when messaging someone, users can select a photo or video to send while maintaining control over their privacy settings. If they choose "Limited Access," they can handpick the photos they want to share with Signal. To add more photos, they can simply scroll to the side and select "manage." However, this experience is not currently available when creating stories.

To address this, I propose the following solution. When adding photos or videos to stories, users with limited access to their photos set in Signal will be able to easily grant access to new content. Here's the proposed workflow:

  1. Navigate to the Stories tab and press "My Stories" to create a new story.
  2. Open the custom photo picker in the bottom left corner.
  3. If limited access is enabled, a new gear icon will appear in the navigation bar on the right.
  4. Tapping the gear icon will present the user with the familiar limited access photo picker, allowing them to select additional photos and videos for Signal to access.
  5. After granting access and pressing "Done," the user will be returned to the custom photo picker, where they can select the newly added photo or video and add it to their story.

I appreciate any feedback or thoughts you may have as I implement this new feature! :)

@WhyNotHugo
Copy link
Author

As an end-user, I don't quite understand the value in having two layers of photo pickers. I have to select photos in iOS's photo picker, which then show up in Signal's photo picker, where I have to select them again.

The following sounds more straightforward to me:

  1. Navigate to the Stories tab and press "My Stories" to create a new story.
  2. Open iOS's built-in photo picker (instead of a custom picker) in the bottom left corner.
  3. I select photos and videos to share in my story.
  4. My selected photos and videos are added to my story.

That said, your suggestion is still better than the status quo.

@MarlowBrown
Copy link

The reasoning behind having these two layers of photo pickers is to have Signal have limited access to only the photos you select. If you're a privacy-focused person this would make sense; however, it's very cumbersome.

I think that when you're presented with that limited image picker, you simply pick the image that you want Signal to have access to, then you're brought to a new screen where you are presented with the images that you just selected, and then you can decide which that you want and not have to swim in a sea of photos.

Since I'm only a contributor and not a part of the team I'm limited in the scope of the changes that I'm allowed to do, so the current approach that I laid out in my first comment is the path that I think will have the highest likelihood of getting accepted.

@WhyNotHugo
Copy link
Author

The reasoning behind having these two layers of photo pickers is to have Signal have limited access to only the photos you select.

My proposal would also result in Signal having limited access, to only the photos that you select.

When an application opens iOS's photo picker, the photo picker shows ALL photos on the device. The user then selects some photos, and the application receives a handle to only those photos.

Your proposal is to grant Signal permanent access to the selected photos, so Signal can shows its own custom photo picker. What I don't see is any value in this custom photo picker; it's just an additional layer of confusing indirection. This custom photo picker adds no real value. My guess is that it was implemented by someone who didn't know that iOS have a native API to show a photo picker, and assumed that all users would always grant access to all photos.

@MarlowBrown
Copy link

Yeah, I see what you are talking about now! Having to select the photo first in the limit images picker and then select it again in the custom picker is pretty annoying. Looking through all of the code related to this issue, there is a lot of code that deals with photos.

I just looked at the system photo picker as linked in this comment. The system photo picker came out in iOS 15 and that's what the minimum required iOS version for Signal is. My best guess as to why they haven't migrated over yet is just that they haven't gotten around to it yet, it's a pretty big change in the codebase, and/or they wanted that layer of privacy for a reason.

Image

Since I'm just a contributor and not a part of the team I'm more limited in my abilities of what I'm allowed to do. For this issue, I only added new code and didn't rewrite anything, so QA would be faster/happier. If I were to start ripping some things out to implement just the photo picker (not the custom one), this PR would have a lot less chance of being accepted and merged. But that's no reason to give up hope of your feature getting into the app one day.

But I agree with you that the overall flow of selecting the photos to use in a story needs to 100% be reworked in favor of the user, but until then I hope that my PR will be able to make things a little less annoying for you :)

Simulator.Screen.Recording.-.iPhone.16.-.2025-01-23.at.18.44.40.mp4

Here's the PR! :)

@akwick
Copy link

akwick commented Jan 24, 2025

Thanks for your work and explaining how one can select more photos from a message. I didn't know about this feature. 🙏

@dabo248
Copy link

dabo248 commented Jan 24, 2025

To add more photos, they can simply scroll to the side and select "manage." However, this experience is not currently available when creating stories.

Oh wow, didn't knew that either. This is super hidden, especially when already having 300+ granted items in there. I think it would be much better to have the "manage" button as the first item in the selection and not the last one, so it's always visible.

Let me know if I should create a new issue for that, as it differs a bit from what you worked on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

4 participants