Snapgate

Why you decide from the notification

13 September 2026

Snapgate lets you resolve things from the notification itself: two buttons, Discard and Upload, without opening the app. It looks like a convenience decision. It is actually shaped by a system rule most people never hear about.

Moving someone else's file needs permission; copying doesn't

Since Android 10, an app cannot freely touch files it did not create. To move a photo the camera took, you must request consent through a system dialog — and that dialog can only be launched by an Activity, meaning the app has to be open on screen.

If "Upload" had to move the file, tapping the button would open the app and put another dialog in front of you. Two extra taps, and the promise of deciding in one gesture is gone.

Copying is a different story. We create the copied file, so no permission is needed and it works perfectly in the background. That's why the notification button copies instead of moving, and the original goes into a cleanup queue that is emptied later in one go, with a single dialog for the whole batch.

That is the price, and it is a real one: for a while the photo exists twice on your phone. It seemed better than breaking the one-tap gesture.

With a Google account, the price disappears

All of the above applies to the folder route, which is the fallback. With the account connected, Snapgate uploads directly through the Google Photos API, and for that it only needs to read the bytes. Reading is already permitted.

The result: no moving, no copying, no duplicates and no dialogs. That is why the Google account went from being an optional feature hidden in settings to being the main road of the product.

The decision window

One detail came out of a conversation and turned out to be structural: a photo is only offered during its first few minutes. If you don't answer, it stays on the phone un-uploaded and stops asking.

It sounds like a convenience, and it is also a safety net. It makes it impossible for a fresh install — or a bug in working out what counts as "recent" — to drop nine hundred camera-roll photos in front of you asking you to decide one by one. That happened during development, and the window makes it impossible regardless.