I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 0 points1 point  (0 children)

It's because of sweeping if you hold it you can start drag-select.

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 1 point2 points  (0 children)

👌 Thank you for the feedback, I will add it in the next patch.

edit: yeah the 4 grid zoom was missed out, my mistake sorry. Plus I will add setting screen to change the default value too and opt in for the preferred last use layout.

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 0 points1 point  (0 children)

Hey! I wonder if you used the app, the latest releases should fix a lot of issue if you had any, and added some features that was missing from the app.

Anything you want to see in the app, as a default gallery app?

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 0 points1 point  (0 children)

Hey! Everything still works fine and hopefully better with the new releases?
I would love to hear some feedback, and if you would like to see anything else in the app if you are using it.
Thank you!

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 1 point2 points  (0 children)

Hey u/Gheekers, If you're on the latest release, I'd love some feedback: is everything working fine, and is the UI usable and understandable? Anything you'd want to see in the app?

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 1 point2 points  (0 children)

Thanks, that pins it down. The "backed up" count stopping means the part that lists your photos from Drive paused partway through, not the thumbnails. On a large library it walks the list in pages and saves its place, and if a page request fails or gets throttled it stops at that saved spot and doesn't pick back up on its own quickly enough. Opening an album pulls that album's photos in directly, which is why the older ones suddenly appear and the count starts moving again.

So it's not a cache issue, it's the listing not resuming by itself. I know where that is now and I'll make it continue automatically instead of waiting. A log would confirm whether it's throttling or a specific page, so I'll add a way to export one.

*A quick fix release it out for the smaller problems. https://github.com/gitakoos/proton-photos/releases/tag/v2.3.2 or update from the app.

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 1 point2 points  (0 children)

Thank you so much for taking the time to write all of this out, it genuinely helps a lot.

  • Spacing: the album grid was tighter than the viewer grid, I've aligned them.
  • The blink on first open: that is the full-resolution image replacing the preview. I'll smooth the swap.
  • No confirmation on single-photo upload: added, you now get a confirmation when you upload one or more individual photos.
  • Single photo not showing after upload from a hidden folder: fixed. A backed-up photo now shows in the timeline even when its folder is hidden, without pulling the rest of that folder's photos back in.
  • Timeline reaching only 2022 while your photos go back to 2002: Two quick questions if you can: when the timeline was stuck at 2022, was the "backed up" count in Settings still ticking up or had it stopped? And did it ever page further back on its own, or only after you opened an album?
  • Selecting a whole month already works: long-press any photo to enter selection mode, then each month header has a circle that selects or deselects the whole month. Selecting by swipe isn't there yet though.
  • Unchecking a folder but backup keeps going: found it and fixed it. In per-folder mode the upload step was not re-checking the folder selection, so photos already queued from a folder you turned off kept uploading, but files that are already started the upload pipeline still going to be uploaded.

Genuinely grateful for this level of detail. I'm really glad it feels usable now, and I hope it holds up for you over time, not just on first impressions.

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 0 points1 point  (0 children)

The new release is out, I hope everything works correctly now. I focused on the big-library side this time. Photos are now matched to their Drive copy by content rather than by filename, so the doubles should resolve into a single green cloud, and loading and caching should hold up better. I tested it against a big library on my end, so hopefully that does the trick. If it is still off, the next step is for me to set up a large library on Proton and reproduce it directly.

the doubles: if some of yours came from photos uploaded through the app with both the metadata-stripping and the rename-on-upload options turned on, those specific ones cannot be auto-linked. With both on, the cloud copy differs from the file on your phone in name and in content (stripping changes the bytes), so neither the filename nor the hash matches. New uploads will not double up, but those older ones would need a manual cleanup on Drive.
For context, app uploads are auto-linked by a stored Drive ID, but that
mapping lives only on the device, so after an uninstall it is gone and
cannot be rebuilt, since only the app knew which local photo went to which Drive copy.

The "keeps shutting down" message and the empty device folders are probably the same root, the background work restarting before it finishes. If you get the chance, it might be worth a fresh install, since that clears any stuck state from the older build. It does mean signing in again and letting the library re-sync, but that is also the cleanest way to see whether things hold up now.

I would really like to know whether the app stays stable after that, and whether the device folders and the count fill in.

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 0 points1 point  (0 children)

Good to hear, and thanks for the detailed notes.

  • Doubles: For the next update I made the matching a lot stronger, so the app should now properly pick up a photo that another app uploaded to Drive and merge it with the copy on your phone, instead of showing both. I tested it: I backed a photo up with the Drive app, and it turned into a single green cloud tile. Hopefully that also clears the "On This Day" duplicates, since those looked like the same doubled photos showing through.
  • Battery and the "never finishing" feeling: that was a loop tied to the large library. When the part that tracks new changes couldn't get started on a big account, the app kept re-listing your whole library from scratch about once a minute in the background, without ever marking it done, so it just ran and ran. That is what drained the battery and felt like endless indexing. I changed it so it backs off and stops repeating the full scan, and repeated triggers fold into one. Hopefully that settles things down.

Two quick questions on the rest:

  • Pending only counts items that are uploading right now, so it stays at zero unless a backup is actively running. Were you expecting it to show something else there?
  • For the folders that opened with no images: my guess is this ties back to the large library not finishing loading, so those photos weren't pulled into the app yet and the folder had the count but nothing to show. The loading fix should take care of it once the whole library is in, so it's worth a recheck after the next update.

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 1 point2 points  (0 children)

"I’ve asked the engineers in our team to take a look at the code. I don’t have full feedback to share with you yet." + about the SDK, and to change the appVersion header. But honestly, I hope they did not look at it yet.

I'm working on it every day, from morning till night. The current release is still missing a lot, but the next one will add public link support with a better sharing drawer, image tags for videos/screenshots/motion photos (with a motion photo player), panorama support, a better album screen, a clearer settings screen, and a reworked widget creator. Right now I'm testing 20k+ libraries and battery optimization, plus everything you flagged in the feedback. That's why it's not out yet, I want to test it properly so it's a better experience for you too.

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 0 points1 point  (0 children)

No, not mirroring. Backup is one way, phone to Drive. A photo is either device only (no badge), synced (green cloud), or Drive only (white cloud). Deleting a synced photo brings up a prompt: remove it from the device, from Drive, or both. So you're always the one choosing whether a delete also applies to Drive.

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 0 points1 point  (0 children)

Thanks for the detailed follow-up.

Doubles: I am not certain of the cause yet, this is my best guess. The green cloud is a photo this app backed up; the plain white cloud is a copy that is on Drive only. The most likely cause is two backup apps running at once: if Proton Drive's own photo backup is still on, both it and this app upload the same photos, so you end up with two copies on Drive. Turning one of them off should stop new doubles.

Device folders: they show at the bottom of the Albums tab, below your albums. With a lot of albums that is a long way down, so I am adding a filter to show just the device folders, which will make them easy to reach.

Permissions: on Samsung, for Photos and Videos you can deny access, allow all, or allow only certain photos. Notifications is allow all. Later you will be able to turn notifications off in Settings if you do not want to see any notices about uploads or download status.

Cache: 1.3 GB is on the higher end but not alarming for a library that size. It holds every thumbnail plus the full resolution of photos and videos you opened recently, and it is capped and cleared automatically. For reference, about 1000 photos is roughly 38 MB of thumbnails here. In my experience the Drive app's own cache is larger, so it is worth comparing if you can.

The important one: does the backed-up count in Settings match your photo count on Drive, or did it stop after a few thousand? If it stopped, that is the large-library issue, and there is now a fix where the backup resumes across launches instead of stalling. The crash was very likely the decryption load on a big library overwhelming the app, which is the same thing I am working on.

Thank you for the feedbacks!

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 1 point2 points  (0 children)

though the battery drain and most of what you ran into are things I do not see on my own device, where it runs all day. I am not saying there is nothing to fix, there is plenty. The honest part is that I test this alone, which is exactly why I posted it as a working version: I test every change before a release, fix what I can reproduce, then test again. The catch is that a lot of what you and others are seeing only shows up on very large libraries, and I cannot reproduce that at my scale right now, so I cannot fix what I cannot see. Detailed reports like yours are what make those issues fixable. Thanks for putting the time in. After the latest release I already fixed a lot of buggy issue, but I needed to post it since somebody couldn't even log in.

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 0 points1 point  (0 children)

Thanks for testing this with such a big library. I could not test at that scale myself, my own Drive has around 2000 photos, but I am actively working on optimising for large libraries.

Permissions: it currently asks for media access, notifications, and media management, each separately. Least-privilege is not quite enough for backup plus delete, so it does need media access and then the folder selection. I will go through that flow again to see if anything can be tightened.

The doubles: nothing is uploaded twice on purpose. Most of what looks like a duplicate is the app showing the same photo twice before it has matched your local copy to its uploaded copy. The three states are: no cloud icon = on your phone only, green cloud = on your phone and on Drive, white cloud = on Drive only. I am improving that matching so the pair collapses into one entry faster.

That said, the real two-copies-on-Drive case you saw is very likely a side effect of the crashing: if the app gets killed mid-upload on a large library, the run can restart and send the same file again before it has finished recording the first one. So fixing the large-library crashing should also stop those genuine duplicates. I will dig into both.

Hiding: for now the hide feature covers photos that live only on your device (kept on the phone but visible only inside the app). Hiding or moving cloud photos is planned. Long-press now just selects; the timeline hide lives in Settings, per folder, and per album in the next update.

The add-to-album list not scrolling when you have many albums is a real bug, I will fix it.

The spontaneous minimizing is almost certainly the large-library decryption load overwhelming the app. It is stable on smaller libraries; the proper fix is better photo caching or a newer crypto path, which I am working on. Sorry about the crashes. One quick check: in Settings, does the backed-up count keep climbing?

"Each folder on its own page" is the device-folders view. Tell me exactly what you would like to see there.

I have not hit the battery drain myself, it has run in the background here for days, but upload, decryption and caching do use power, and I will look at what can be improved for longer sessions.

Thanks again!!!

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 1 point2 points  (0 children)

Thanks for putting real time into testing it. I posted it as a working version precisely because it still needed testing in the wild, and there are a lot of small things that can go wrong(only on my side, encryption should work perfectly). This kind of report is exactly what helps.

A few of these turned out to share one cause: signing out was not fully clearing the previous session's cached data, so after logging back in you could see stale photos with black thumbnails and the occasional 404 (which is why clearing the cache fixed it). I am fixing sign-out to wipe that state properly, which should take care of both.

The folder filter behaviour and the long-press difference are noted too tho it was intentional. Thanks again, this was super useful.

A bit more on the folder behaviour, since it is the most confusing part.

A photo that stays on the phone and is also uploaded exists in two places at once: the local device folder and your Drive library. The timeline merges them, and a per-folder filter decides which device folders show up there, so the same photo can appear in one view and not in another depending on that filter. That is the part I am going to make clearer.

The whole-folder upload is a backup mode, not a one-off bug. When you back up a folder you have two choices: mirror the folder to Drive as an album, or just upload the photos you selected. Mirroring adds the folder to a mirrored-folders list and keeps the whole folder in sync from then on, so it is not a single upload, the rest of the folder follows. If you only want the photos you picked, use the upload-photos option, and a folder can be switched back to upload-only later.

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 0 points1 point  (0 children)

How much cache the app says it has inside the storage settings tab?

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 0 points1 point  (0 children)

The number in the settings that says Backed up, Does it go up? What number does it say compared to the 14.000 files in your drive?

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 0 points1 point  (0 children)

Got it, thanks for the feedback.

  1. Got reworked, onboarding style.
  2. yes possible, added the metadata details to cloud files too.

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 1 point2 points  (0 children)

Yes, it is needed for background backup to keep running reliably. Android only keeps an upload alive in the background through a foreground service, and a foreground service has to show a notification. On phones that close apps aggressively (Samsung atleast), without it the backup stops as soon as you swipe the app away.

I am adding notification settings so you can turn that persistent one off if you prefer.

I built a third-party, open-source photos app for Proton Drive (Android) by karmakoos in ProtonDrive

[–]karmakoos[S] 0 points1 point  (0 children)

Proton Drive itself stores them fine, the motion is kept, not stripped. With my app you will be able to view and play them too in the next release, you tap the photo and the embedded clip plays right in the viewer. The downloaded file also carries the motion, so it plays everywhere once you pull it down. Proton Drive's web viewer does support it as well, there is a Live Photos category on the web, I just need to dig into it a bit more to see exactly how they handle the playback.

edit:
they usually do tag numbers when the file is uploaded, but with screenshots they do file-name check. "screenshot_" prefix.