Giter Club home page Giter Club logo

lespas's Introduction

Feature graphic

A private photo album that saves and shares your precious moments

Get it on F-Droid Get it on Github Get it on Google Play

Les Pas, is a free, modern, lightweight and fast gallery app. Organize your photos, GIFs and videos into albums for easy viewing and sharing. With built-in two-way sync with your Nextcloud server, your files are kept private, secure and safe.

Although it use Nextcloud as storage backend, you don't have to install any Nextcloud app on server for Les Pas to function. It's a perfect solution if you have limited knowledge or authorization to alter your Nextcloud configuration.

Features:

  • Managing, Syncing and Archiving
    • Organize your media files in albums
    • Easy media importing by simply sharing files to Les Pas
    • Manage media files in your phone's gallery and auto backup to server, each media folder in your phone has its own backup setting
    • Integrate with Snapseed for photo editing
    • Support adding caption to photo
    • Synchronization works with Nextcloud server and among multiple devices, edit albums on Nextcloud server and on all your mobile devices simultaneously
    • Support Remote Album, which have all its media file stored in Nextcloud server only, free up Phone's storage
    • Search for photos by objects with AI
    • Search photos by location
    • Support GPX importing, so that you can easily add GPS location data to pictures shoot on your digital camera
    • Support Nextcloud's external storage
    • Beautiful theme inspired by works of Wes Anderson
    • Support standard media format plus RAW and HDR photos
  • Sharing
    • Share albums and album slideshow with other Nextcloud users, groups and circles
    • Unique 'Joint Album' feature, which you and other Nextcloud users can edit together
    • Export GPX file from album, you can share your adventure with others
  • Privacy focus
    • Media files and thumbnails are all saved in App's private storage, stop being scanned by malicious apps
    • Option provided to strip photo's EXIF before sharing to other social networks
    • Option to hide album both in Phone and on server
    • Authenticate on your Nextcloud server with your Nextcloud's credential
    • Opensource
  • Any apps that can do the above is merely a media file manager with a fancy UI. Les Pas does not stop here, it strives to provide ways of utilizing your photos. The past shouldn't be resting in the hard-drive, make all those memories shine.
    • Integrate with Muzei Live Wallpaper app, deliver 'Today in History' pictures right on your phone's desktop
    • Album slideshow, with background music
    • Unique 'Slideshow on Map' feature which runs album slideshow on Map
    • Support photo blogging in three ready made templates. With selected pictures and caption you added, you can share your stories with the world. Refer to this instruction for detail.

Welcome Page Albums List Album Detail Photo Viewer

Adding Photo Browsing Camera Roll Publishing Album Search by Objects

Search by Location Show Album on Map Show Photo with Map Manage Photo Blog

Geotagging with GPX Settings

Here is a short video demonstrate how the slideshow on map works:

slideshow_on_map_720p.mp4

This project is built using the following open source software:

Faq

Why organize by album?

I believe when someone start searching his/her memory for a moment in the past, it's hard for him/her to recall the exact date or exact location, but rather easy to remember what was happening during that period of time, like kid's birthday or family trip to Paris. So organized photos by events is probably the best way for most people, therefore grouping photos by event into an album is the best choice.

Why use folder but not tag to group photos?

Les Pas uses folders to group photos on the server, e.g., each album in Les Pas app has a one-to-one relationship with a folder on your Nextcloud server. You can manage your photo collection by working with folders/files on server side or albums/photos on your phone, Les Pas will sync changes from both sides. But how about tags? Yes, tagging is much more flexible than folders, and Nextcloud has its own file tagging support too. But not every picture format supports tagging, that makes tagging picture file a feature which relies heavily on platform specific functions. I would like my data (and yours too) to be platform neutral instead.

I have a hugh photo collection organized in nested folders, Les Pas only support a flat folder structure.

There is a very cool scripts made by @steviehs to help you out.

Why does Les Pas use a lot of storage space?

If you set the album as Local Album, Les Pas stores photos in its app private storage, so if you have a large collection of photos, you will find that it use a lot of storage space in Android's setting menu.
There are two reasons why Les Pas use private storage. First, Android introduced scope storage policy recently, highly recommends apps to stay out of share storage area. Second, storing photos in apps private storage area can prevent malicious apps scanning, uploading your photo secretly in the backgroud. Yes, they love your pictures so much, especially those with your face in it.
For privacy sake, stop using "/Pictures" folder in your phone's internal/external storage.

Since release 2.5.0, Les Pas support managing albums remotely. With Remote Album, all photo's and video's media file are stored in Nextcloud server, this will dramatically reduces app's storage footprint on mobile device.

It's very slow loading photos from server, the waiting seems forever.

Nextcloud has a reputation of sluggish image processing, to make Remote Album work, you need to setup Nextcloud Preview Generator app to automatically generate aspect ratio preview files of size 1024x1024. Here is an excellent document on how to do it. You should make sure Les Pas's specific size is taken into action, by:

sudo -u www-data php /var/www/html/nextcloud/occ config:app:set --value="256 384 1024" previewgenerator widthSizes
sudo -u www-data php /var/www/html/nextcloud/occ config:app:set --value="256 1024" previewgenerator heightSizes

Why there is no QR code scanning button on Login screen like in the screenshot?

Les Pas supports scanning QR code of server access token generated by Nextcloud server, by using external QR code scanner apps. This app should be compatible with ZXing, which will expose a standard API for Les Pas to call. Make sure your install a compatible scanner app before your start Les Pas for the first time, then you will see the scanning button.

About synchronization

Les Pas does two types of sync in the background. A two-way sync of your albums and a one-way backup of your phone's camera roll.
Whenever you did something with your albums on your phone, Les Pas will synchronize the changes to your server immediately. Since Nextcloud's push notification only work with Google Firebase Cloud Messaging, which Les Pas decided not to support due to privacy concern, any changes you make to your albums on server side will be synced to your phone during the next synchonization cycle.
Upon opening Les Pas app, it will sync with server once. If you enable periodic sync setting, Les Pas will synchronize with your server every 6 hours in the background.
One-way backup of phone's camera roll is a background job which also happen every 6 hours. So don't delete photos from your camera roll too fast too soon. If synchronization doesn't seem to work, especially when you phone is a Chinese OEM model, like Huawei, Xiaomi, Oppo etc, please allow Les Pas app to auto start and opt-out battery optimization.

Checklist for enabling sharing on Nextcloud server

To enable publishing (e.g. sharing album to other users on Nextcloud server), there are several things you need to take care beforehand:

  • Make sure your are using LesPas version 2.4.1+ (sroll to the bottom of Setting page to find out)
  • Set up groups on Nextcloud server and add users who wish to share LesPas albums to the group. User not belongs to any group can not download sharee list from server, this is a limitation of Nextcloud Sharee API
  • Optionally, but highly recommended for the sake of smooth user experience, setup Nextcloud Preview Generator app to automatically generate aspect ratio preview files of size 1024x1024, LesPas will use those files to populate shared album list on phone.
  • Optionally, setup a specific "shared_with_me" folder to house all the shares you received, otherwise Nextcloud will dump all the shares you received onto your root folder. This can be done by adding line 'share_folder' => 'shared_with_me' into Nextcloud's config.php file. Refer to nextcloud documentation for details. If you don't like Nextcloud's dumping behavior at all, a Nextcloud server app Mv Shared Pics, created by @frederikb96, can be used to automatically move folders a user received via a share, which contain files with a specific mime type (e.g. pictures) to a configurable destination. This is useful in combination with albums shared via Les Pas since they will be automatically moved to the desired location such that the default folder where shares are received is kept clean.

lespas's People

Contributors

alestrix avatar bettageorge avatar chiaratira avatar choukajohn avatar dave7895 avatar developerol avatar michelafr avatar nosklo avatar raphaelporsche avatar scubajeff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

lespas's Issues

Move image to different album from within the app

Is your feature request related to a problem? Please describe.
As far as I can tell, once you have added a picture to an album, it is stuck there forever. The only way to get it into a different album is to go to your PC, move it to a different folder in your Nextcloud, and wait six hours. That makes it essentially impossible to organize your gallery with lespas, because if you accidentally put a picture into the wrong album, you cannot get it back out (unless you delete it and import it anew).

Describe the solution you'd like
Add a "move" button to pictures to move them from the current folder to a different one. Preferably add the same button when you have multiple pictures selected to facilitate moving lots of pictures at the same time.

Describe alternatives you've considered
I tried just using the phone's file manager to move the pictures, but the app storage does not show up there.

My current workaround (for anyone coming across this) is to open the photo in lespas, tap on "share", share to lespas, which lets me copy it to an album, and then delete the original photo. This works, but is needlessly complicated. It also does not work for multiple selected pictures, because sharing them unselects them, which means you have to select everything a second time in order to delete it.

Related feature: Move from Camera Roll
The camera roll has the same problem: I can add photos to albums via the little Les Pas icon, but this does not delete them from my DCIM folder. Consequently my DCIM folder is cluttered with duplicates of stuff I have long since organized via Les Pas. Here I would like the same option: rather than copy the image to Les Pas, move it there so I do not have to delete it manually.

Select local folders on Android

I'd like the ability to select which folders are synced via the camera roll function, rather than all downloaded images being uploaded

Auto-Repeat/Loop GIFs/Videos

Is your feature request related to a problem? Please describe.
I would like a GIF to automatically restart after it plays once, without having to manually play it again.

Describe the solution you'd like
I would like to have an option to enable/disable automatic looping of GIFs/videos, preferably enabled by default.

Describe alternatives you've considered
Using my phone's built-in gallery to watch GIFs with auto-loop.

Crash after login

Describe the bug
Crash after login.

To Reproduce
Steps to reproduce the behavior:

  1. Install app
  2. Log into server (past the Web UI and everything)
  3. Oh no, crash!

Expected behavior
No crash after login.

Screenshots
"Les Pass keeps stopping" via the SystemUI process.

Smartphone (please complete the following information):

  • Device: Xiaomi Mi 5
  • OS: /e/ OS 3 based on Android 10 (Custom ROM)
  • Browser default Chromium thing that ships with every Android
  • Version 2.1.0

Additional context

ADB log:

--------- beginning of main
07-20 19:45:22.774 25663 25663 E eos.apps.lespa: Not starting debugger since process cannot load the jdwp agent.
07-20 19:45:22.832 25663 25663 W Riru64  : 99e3 is too old to hide so
07-20 19:45:27.312 25663 25663 W ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@a20286f
07-20 19:45:27.540 25663 25663 W ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@8ad57fe
07-20 19:45:27.882 25663 25663 D AndroidRuntime: Shutting down VM
--------- beginning of crash
07-20 19:45:27.886 25663 25663 E AndroidRuntime: FATAL EXCEPTION: main
07-20 19:45:27.886 25663 25663 E AndroidRuntime: Process: site.leos.apps.lespas, PID: 25663
07-20 19:45:27.886 25663 25663 E AndroidRuntime: java.lang.RuntimeException: Cannot create an instance of class site.leos.apps.lespas.publication.NCShareViewModel
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:275)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.java:106)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:185)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:54)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:41)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at site.leos.apps.lespas.album.AlbumFragment.getPublishViewModel(AlbumFragment.kt:54)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at site.leos.apps.lespas.album.AlbumFragment.onViewCreated(AlbumFragment.kt:108)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:332)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1187)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:447)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2169)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1992)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1947)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2629)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2577)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:247)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:541)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:210)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1432)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.app.Activity.performStart(Activity.java:7847)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3294)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:107)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:214)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7356)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
07-20 19:45:27.886 25663 25663 E AndroidRuntime: Caused by: java.lang.reflect.InvocationTargetException
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at java.lang.reflect.Constructor.newInstance0(Native Method)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:267)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        ... 36 more
07-20 19:45:27.886 25663 25663 E AndroidRuntime: Caused by: java.lang.SecurityException: uid 10194 cannot get user data for accounts of type: com.google
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.os.Parcel.createException(Parcel.java:2071)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.os.Parcel.readException(Parcel.java:2039)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.os.Parcel.readException(Parcel.java:1987)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.accounts.IAccountManager$Stub$Proxy.getUserData(IAccountManager.java:1371)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at android.accounts.AccountManager.getUserData(AccountManager.java:514)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        at site.leos.apps.lespas.publication.NCShareViewModel.<init>(NCShareViewModel.kt:88)
07-20 19:45:27.886 25663 25663 E AndroidRuntime:        ... 39 more
07-20 19:45:27.887 25663 25663 E AndroidRuntime: Caused by: android.os.RemoteException: Remote stack trace:
07-20 19:45:27.887 25663 25663 E AndroidRuntime:        at com.android.server.accounts.AccountManagerService.getUserData(Unknown Source:159)
07-20 19:45:27.887 25663 25663 E AndroidRuntime:        at android.accounts.IAccountManager$Stub.onTransact(IAccountManager.java:468)
07-20 19:45:27.887 25663 25663 E AndroidRuntime:        at com.android.server.accounts.AccountManagerService.onTransact(Unknown Source:0)
07-20 19:45:27.887 25663 25663 E AndroidRuntime:        at android.os.Binder.execTransactInternal(Binder.java:1021)
07-20 19:45:27.887 25663 25663 E AndroidRuntime:        at android.os.Binder.execTransact(Binder.java:994)
07-20 19:45:27.887 25663 25663 E AndroidRuntime: 

NextCloud 21.0.3 running in Docker on ArchLinux

Add translations to Transifex

I propose to add the application to "Nextcloud Server team", which will gain more multilingualism and popularity.

Crash right after opening the app

Hello @scubajeff
I wanted to give lespas another try as it seems to have matured a lot. While it seems to work fine on my smartphone (Mi Note 10 Lite, Android 11, MIUI 12.5.7), it crashes just after opening the app on my wife's smartphone (POCO something, Android 11, MIUI Global 12.5.5, Lespas 2.5.5 from Google Play Store.).
There is no error message, the app is just closing. After that I uninstalled Lespas completely to remove any data and configuration and reinstalled it from Play store. Now, the Nextcloud login screen was shown and I could log in successfully. When the lespas main screen is shown after around half a second (probably right when the syncing should start), the app closes without an error.
No matter what I do, the app always quits in the main screen.

Do you have any ideas how I should continue debugging? Are there any logs I could look into?
Thank you for your amazing work!

File size choice

First of all, thanks for the great app!

Is your feature request related to a problem? Please describe.
It appears that, for example a 2.5 mb / 2700x3600 jpg is reduced to 185 kb / 1200x1600 when passing through LesPas. That could be a problem for people who are not aware of it or who prefer less strong size reduction, as it appears that there is no indication nor option about that.

Describe the solution you'd like
Though that actually greatly reduces the storage needs, it would be good to have some choices.

Describe alternatives you've considered
Or some clear documentation about how it will be processed ; it is quite silent for now I think.
At least I didn't find something about that in the description of the app nor in the in-app dialogues. For example, I processed some files without thinking about that, files that I didn't want to have the quality reduced so drastically, and I realized after hand when I checked the fruit of my effort. I think that could cause some frustration.

Import nextcloud photos

I've got abot 30gb of photos already in nextcloud. Is there a way to import them into les pas?

Manually update dates of albums

Is your feature request related to a problem? Please describe.
I have quite a few albums where the created/changed date is incorrect, due to the files having been moved around several times between drives/SD cards/clouds. Because of this, the album dates mentioned in the app are incorrect, which is very annoying and messing up the order of the albums. I have about 10 years of albums, so it's very tricky to find something at the moment.

Describe the solution you'd like
I'd like to be able to manually change the dates related to an album, independent of the creation dates of the pictures themselves.

Describe alternatives you've considered
I've tried updating the dates of the files with using touch and the file name (IMGyyyymmddhhmmss, etc) in the lespas folder on the server, removing the json files, so they have to be recreated. Sadly, this still messes up some of the dates for some reason.

Additional context
I have been using Lespas for quite some time now, and I really like it, so keep up the good work!

Set Default Sorting for All Albums at Once

Is your feature request related to a problem? Please describe.
Changing the sorting type for each album individually is not very difficult or time-consuming. But, if you have a lot of albums that you want to set to the same setting, it can take a relatively long time to get every album set up with the correct settings. This includes setting up new albums as well afterwards.

Describe the solution you'd like
It would be nice to be able to choose multiple albums at a time when setting the default filter option (perhaps similar to the Unhide menu?) and/or the ability to set the default filter for new albums in the future.

Describe alternatives you've considered
Going through each album one by one and setting my preferred filter setting.

Add "sync now" button

Is your feature request related to a problem? Please describe.
It's frustrating when you want to organize some little thing real quick, and then have to wait until auto-sync fetches the images from your server. Sometimes I want to force my images to be synced right now, not sometime in the next six hours.

Describe the solution you'd like
A simple button that forces immediate synchronisation would be great. Doesn't matter where it is, it can even be in the settings menu. I just want to be able to use it every now and then.

LesPas is not syncing remote albums

Describe the bug
Today I installed latest LesPas v2.5.3, Fdroid, in another phone that I have here (Samsung Galaxy M20 with LineageOS). I noticed that no albums were synced from my remote Nextcloud Server. Usually in previous versions it downloaded all my photos from lespas folder into my device.

So I ran two tests: I created a two albums with one photo each, one with the "remote album" toggled in, and another one without it. It created two folders in Nextcloud, and uploaded the photo there. Then I uninstalled and reinstalled the app, and after authenticating, no albums shows in the screen (I waited around 10 hours to report this issue, sync enabled).

I don't have the Preview Generator installed in my server yet due to storage constraints. But in previous versions
(pre 2.5.0) it downloaded my photos without this requirement

To Reproduce
Steps to reproduce the behavior:

  1. Install LesPas from F-droid
  2. Login into Nextcloud account
  3. Create an Album
  4. Check that folder is create remotely
  5. Uninstall and Reinstall LesPas, authenticate again
  6. Check that album does not show in the UI anymore

Expected behavior
In previous versions, albums should download into device. From what I read from the Readme, now should it show as remote albums?

Screenshots
LesPas:
Screenshot_20220327-004538_Les_Pas

Remote Server:
image

Smartphone (please complete the following information):

  • Device: Samsung Galaxy M20
  • OS: LineageOS Microg 2022-03-19
  • Version LesPas 2.5.3

add pictures to an album later

Thanks for creating this!
During my tests I recognized that it is not possible (or I can't find the option) to add pictures to an album later - after it has been created...

choose what folder you want to sync to the phone

Hi, first of all thank you for the great app! It is already super useful.

However it would be nice if there is the feature to exclude some folders being downloaded to the smartphone. Couldn't be there a possibility to just preview them in the app and downloading them temporarily if clicked?

Would be useful to save space. Right now your Le Pas Gallery is limited to the storage size of your phone.

Not syncing photos from server

Describe the bug
After logging in, the app is not syncing photos from NC.

To Reproduce
Steps to reproduce the behavior:

  1. Log in and grant access
  2. Turn on periodic syncing
  3. Wait for a long time (overnight for me)
  4. No image/preview showing up

Expected behavior
Images/preview showing up in the main interface

Screenshots
Screenshot_20201223-140250
Screenshot_20201223-140319

Smartphone (please complete the following information):

  • Device: Fairphone 3
  • OS: Android 10
  • Browser: Fennec
  • Version: 83

Netzwerkfehler (Network error)

I loaded Les Pas from FDroid yesterday and can't login to my Nextcloud.

My NextcloudPi 21.0.4.1 runns in my local network.

When entering my ip adress it only say's "Netzwerkfehler, versuchen Sie es erneut" (Network error, try again.) doesn't matter if i use http or https.

Same message on Samsung and Huawei Phone. IP adress is working from phone browser.

What am I doing wrong?

Tapping and Holding an Album then Swiping Crashes the App

Describe the bug
Tapping and holding to select an album, then moving your finger off of the album without leaving the screen will cause Les Pas to crash.

To Reproduce
Steps to reproduce the behavior:

  1. Created an album.
  2. Tap and hold to select album.
  3. Without removing finger from screen, move finger off of album.
  4. App crashes.

Expected behavior
Either additional albums should be added to the selection, like with pictures. Or, simply prevent the crash and wait for the user to remove their finger before being able to perform another action.

Smartphone (please complete the following information):

  • Device: Pixel 5A
  • OS: Android 12 (GrapheneOS)
  • Version 2.4.5

Q: How to set "Remote" or "Local" Album

In the Readme there is mentioned to set an Album as Remote (with the preview generation) and Local.

Right now I am using Les Pas by generating a flatted folder structure with all my pictures reduced to FHD size in a lespas folder. This works fine and fast. The pros and cons of flat vs. nested folders have been discussed already, so I am fine with these :-)

This was the usual flow so far and I guess this is called "Local"?

Now I would like to understand: how to set a folder to "Remote"?

New Folders no Longer Syncing after Removing Albums

Describe the bug
New albums added after recent update are not automatically syncing when opening the app.

To Reproduce
Steps to reproduce the behavior:

  1. Create a synced folder.
  2. Copy to a new folder with a different name in /lespas from Nextcloud.
  3. Observe how the app will not automatically sync the new folder.

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

  • Device: OnePlus 5
  • OS: Android 11
  • Version 2.1.1

Additional context
I have a large amount of albums (300+), but I didn't have any issues with the initial sync after removing the problematic albums/files.

Files do not get deleted when moved to album

Describe the bug
When you choose to move a file to an album (instead of copy) the file is correctly added to the album, but it doesn't get deleted out of the camera roll permanently.

Smartphone (please complete the following information):
Mi Note 10 Lite with MIUI Global 12.5.2 Android 11
also another Xiaomi Phone

Album synchronization status and synchronization error status indicator needed.

First let me thank you for all your great work, this app has the potential to become a Google Photos replacement!
One of the most needed features is a sync-status indicator in the main window since this is the main feature of les pas (are my photos securely saved in nextcloud?). Something like green=all photos synced, yellow=sync in progress (progress bar?), red=sync error, button to manually start a sync attempt.

Let me explain. I was happily using lespas together with my wife for several days. I had created the lespas-folder through nextclouds external storage functionality (just a folder on the local hdd) so we both had access to the same lespas folder and our albums where always in sync. This worked perfectly for some days until suddenly the sync stopped working (maybe we created some kind of conflict e.g. by modifying album settings on one phone etc.). We didn't notice this because there where no error messages (I couldn't find any logs!). There currently is no indicator wheter photos are synced or when there are any sync errors. We each kept on adding photos to albums till I noticed that none of the changes were in Nextcloud and we each had completly different albums. So I had to manually export all the photos from lespas for each album and then manually fused the albums which was quite the effort.

In my opinion knowing that the photos are safely synced to nextcloud (in case I loose the phone) would be one of the most important features.
Thanks again for your effort!

Feature request: Allow changing/cropping album banner

Is your feature request related to a problem? Please describe.
It would be nice to be able to change the banner used on an album. I have an album which has cropped the head off for the banner. Not great!

Describe the solution you'd like
Allow to choose another photo for the banner at a later time. Also, it would be nice to be able to crop/zoom so that the relevant part is shown i.e. the face of an album for a person.

Describe alternatives you've considered

Additional context

Mistake between Sync status and the reality.

Hello @scubajeff ,

I see a difference between the lespas sync status and what I exactly have on my server.

This is the sync status
Screenshot_20220417-233716.jpg

Here is the gap in my nextcloud server
Screenshot_20220417-233802.jpg

And here is an example of photos present in my roll but not on the server
Screenshot_20220417-234003.jpg

I tested to stop and restart the syncing but no effect.

Thank you 😊

infinitely attempting to connect with nextcloud kdrive

Hello,

When I try to connect to my kdrive ( which is a managed nextcloud instance) using connect.drive.infomaniak.com (as mentioned in https://www.infomaniak.com/en/support/faq/2409/kdrive-logging-in-to-your-drive-via-webdav) on the les pas first login screen, les pas infinitely attempts to connect and nothing happens (no error message).

I would expect that les pas would connect or throw me an error explaining why I can't connect

Screenshot_2022-02-13-12-15-57-136_site leos apps lespas

Here is my phone config :

Screenshot_2022-02-13-12-17-00-760_com android settings

I also want to let you know that the official nextcloud app can connect to my kdrive without any trouble.

Thanks for your help

Allow storing images on SD card

Is your feature request related to a problem? Please describe.
Internal storage is notoriously small. I have a large collection of photos, which takes up more internal storage than I can afford to sacrifice, since you need some free internal storage for other apps to keep working.

Describe the solution you'd like
Allow moving the app storage to an external SD card via Android's built-in feature.

Describe alternatives you've considered
As far as I can see, there is no alternative non-rooting solution because Les Pas stores images in its app storage. For now, I have to limit myself to only having some of my recent photos in Les Pas, which is annoying because there are a hundred gigs of free space on my SD card.

add option to deactivate TLS

I use 1.4.5 of your app and NextCloud 20.0.7

Please add an option to:

  • deactivate TLS and / or
  • to allow self signed certificates without having to import them into Android.

It would make testing of the app and also using it at home e.g. in my own WiFi much more easy.

#8 (comment)
did not work for me, or i was not able to make it work.

btw:
were do I find your donation link.
And also thank you for your work and for publishing the recent changes in the F-Droid description.

Feature Request: Map view of EXIF location

For my android gallery I am actually using f-stop, but I'd rather go with LesPas.
One thing which is really nice is the map view of a picture to see, where it was taken. Would be great to have such a thing and may be even better, if not google maps would be used but OsmAnd...

Allow Searching/Filtering by Name of Folder/File

Is your feature request related to a problem? Please describe.
I have a large amount of folders and pictures and sometimes I spend a lot of time scrolling through the lists looking for them.

Describe the solution you'd like
I would like to have the option to filter and/or search folders and images to make it easier to access a folder or image more quickly.

Describe alternatives you've considered
Manually scrolling through the folders and pictures.

WebDAV server

Would it be possible to support WebDAV servers?
This would open up more possibilities for many clouds.

Great application. congratulations

App crashes on tapping "Kamerarolle"

Describe the bug
App crashes on tapping "Kamerarolle". I'm not sure what is should do, its my first use of the App. Also the wording " Kamerarolle" is not clear to me and seems to me like a wired translation...

Smartphone (please complete the following information):

  • Device: Motorola Moto G7
  • OS: Android 10 (LineageOS)
  • lespas 1.4.4 from F-Droid

App crashes at login

First of all, thanks for developping this app ! I just discovered it by FDroid, and I downloaded it to test it asap !!

Describe the bug
But when I log in, app crashes and cannot launch anymore. It still can’t launch after clearing data and cache, the only way to try again is to reinstall the app...

To Reproduce
Steps to reproduce the behavior:

  1. Go to the app
  2. Log in
  3. It crashes

Expected behavior
It doesn’t crash

Server

  • Nextcloud 20.0.4

Smartphone

  • Device: Xiaomi Redmi Note 4 Snapdragon (mido)
  • OS: LineageOS 18.1 - Unofficial (Android 11)

Additional context
Here are the adb crash logs adb logcat --pid=$(adb shell pidof -s site.leos.apps.lespas) :

--------- beginning of crash
12-21 12:47:20.622 14700 15149 E AndroidRuntime: FATAL EXCEPTION: SyncAdapterThread-1
12-21 12:47:20.622 14700 15149 E AndroidRuntime: Process: site.leos.apps.lespas, PID: 14700
12-21 12:47:20.622 14700 15149 E AndroidRuntime: java.lang.ExceptionInInitializerError
12-21 12:47:20.622 14700 15149 E AndroidRuntime:        at okhttp3.OkHttpClient.<init>(OkHttpClient.kt:219)
12-21 12:47:20.622 14700 15149 E AndroidRuntime:        at okhttp3.OkHttpClient$Builder.build(OkHttpClient.kt:955)
12-21 12:47:20.622 14700 15149 E AndroidRuntime:        at com.thegrizzlylabs.sardineandroid.impl.OkHttpSardine.<init>(OkHttpSardine.java:73)
12-21 12:47:20.622 14700 15149 E AndroidRuntime:        at site.leos.apps.lespas.sync.SyncAdapter.onPerformSync(SyncAdapter.kt:40)
12-21 12:47:20.622 14700 15149 E AndroidRuntime:        at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:334)
12-21 12:47:20.622 14700 15149 E AndroidRuntime: Caused by: java.lang.IllegalStateException: Expected Android API level 21+ but was 30
12-21 12:47:20.622 14700 15149 E AndroidRuntime:        at okhttp3.internal.platform.AndroidPlatform$Companion.buildIfSupported(AndroidPlatform.kt:370)
12-21 12:47:20.622 14700 15149 E AndroidRuntime:        at okhttp3.internal.platform.Platform$Companion.findPlatform(Platform.kt:204)
12-21 12:47:20.622 14700 15149 E AndroidRuntime:        at okhttp3.internal.platform.Platform$Companion.access$findPlatform(Platform.kt:178)
12-21 12:47:20.622 14700 15149 E AndroidRuntime:        at okhttp3.internal.platform.Platform.<clinit>(Platform.kt:179)
12-21 12:47:20.622 14700 15149 E AndroidRuntime:        ... 5 more
12-21 12:47:20.669 14700 15149 I Process : Sending signal. PID: 14700 SIG: 9

Thanks for your attention, and don’t hesitate to ask me to test !

App only Syncs some Folders

Describe the bug
I have been having issues getting the app to sync all of my folders and pictures/videos in my Nextcloud server. The files are in the correct place, within /lespas, but only 37 of the ~350 albums actually appear.

To Reproduce
Steps to reproduce the behavior:

  1. Create 350 folders with images directly beneath them in /lespas.
  2. Open and sign into Les Pas.
  3. Wait for albums to start syncing.
  4. Albums eventually stop syncing, regardless of how much time has passed.

Expected behavior
All of the albums should appear in the app.

Smartphone (please complete the following information):

  • Device: Oneplus 5
  • OS: Android 11
  • Browser N/A
  • Version 2.0.4

Additional context
I have tried restarting the app, restarting the phone, logging out and back in, disabling battery optimization, and changing my DNS server without any change in behavior.

I have not set up user sharing or image previews on my server. I have also ensured I have enough storage space on my phone for additional pictures.

Consumed all available data even with sync wifi only enabled

Describe the bug
I updated lespas yesterday and this morning I have zero data left on my mobile. I checked mobile data usage and there is one app displayed: lespas consumed all of my available data, nearly 5gb.

I checked lespas settings again: backup camera roll is off, sync periodically is off, update wifi only is on, yet somehow overnight it did something with nearly 5gb of data.

There actually should have been nothing to sync, I synced everything on wifi and haven't taken a photo in weeks.

Expected behavior
Any syncing should only take place while on wifi.

Smartphone (please complete the following information):

  • Device: Nokia
  • OS: Android 9

*Other related information *
I'm reporting this as a bug to bring awareness but I am not willing to test further releases. I had just refilled my mobile data for the next month a few days ago and now have zero data left.

It's a very nice app, but I cannot afford to reload my data several times each month.

Feature Request: Folder Sorting chooseable

Testing Les Pas, it seems, that the folders are sorted in folders with youngest pictures first?

As I have my "whole life" stored in a - size reduced - album, I would love to have an option to have the folders ordered alphabetical (and reversed alphabetical). The reason is, that there are some pictures without exif dates and they are stored in folders like "1985_summer_holidays")

cant login because Login sceen flickers

Describe the bug
when trying to log in, the login sceen starts flickering. On every device I tried its the same. F-Droid aswell as PlayStore. Sometimes the background image does the same.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the login screen
  2. Log in with URL i cant show
  3. See error

Expected behavior
Being able to type in the login Field

Screenshots

LesPas.mov

Smartphone (please complete the following information):

  • Device: Xiaomi Mi 9, Windows Subsystem for Android
  • OS: Android 11 MIUI, Android 11
  • Version 2.5.4 F-Droid, GooglePlay

Additional context
Is it the BG?

Orientation/Upper Screen Issues

Describe the bug
I have noticed two issues relating to the upper part of the screen either not working or not displaying properly in certain situations.
The player controls for videos at the top of the screen do not work in portrait mode unless the buttons are tapped quickly after the player control bar appears. Landscape mode does not seem to be affected. In addition, the title bar at the top of the screen that either displays "Les Pas" or the currently selected album's name is moved slightly below the upper edge of the screen if an image/video is viewed and then backed out of quickly afterwards. Opening another image and waiting before going back seems to fix the issue.

To Reproduce
Steps to reproduce the behavior for the player controls:

  1. Open a video in portrait mode.
  2. Wait ~1 second for the media player controls to appear at the top, tapping the screen if necessary.
  3. Attempt to interact with any of the controls.

Steps to reproduce the behavior for the title bar:

  1. Open an image/video.
  2. Quickly back out to the album view.
  3. Note how the upper title bar is no longer at the upper edge of the screen and has been moved slightly down.

Expected behavior
I expect the video player controls to work regardless of how long the bar has been on-screen and I expect the title bar to remain at the very top of the screen whenever it is being displayed normally.

Smartphone (please complete the following information):

  • Device: Pixel 5A
  • OS: Android 12
  • Version 2.4.5

Additional context
This may be related to some of the updates/bug fixes related to screen orientation/resizing.

Hidden Files/Folders Support

Is your feature request related to a problem? Please describe.
I have some albums/images that I would not like to see by default. Typically, I would place a . in front of the file so that it is hidden, but this behavior is not present in Les Pas.

Describe the solution you'd like
Provide a toggle to choose if files/folders that start with a ., such as ".image.jpg", should be hidden. A way to mark/unmark a folder/image as hidden in-app by adding or removing a . in front of it would also be nice.

Describe alternatives you've considered
Placing images outside of Les Pas and moving them in either manually or through scripts when I want to view the images.

Creating album from Camera Roll or from other App keeps stuck forever, uploading from file picker works normally

First of all, thanks for the app! Really loving the experience. If my bug description was not good enough, I can record a video of what is happening on my device.

Describe the bug
When I open the Camera Roll in the app, select a photo, touch the icon to create a new album, and create a new album, the app got stuck in the dialog that the image is being processed. This also happens when I'm in the Camera Roll and try to add the photo to an existing album.

This does not happen when I'm in the file picker UI. For example, when I'm inside an album and select the icon to add a new photo, it opens the File Picker. If I select a photo there, it works normally.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Camera Roll
  2. Pick a photo
  3. Click on Les Pas logo
  4. In the modal, select an album (or go to the bottom an create a new album)
  5. See that the app never uploads the photo to the album

Expected behavior
After some time, the dialog "Need to upload x kb to the server..." should appear, as it happens when I select from the file picker UI

Screenshots
This is the screen with app got stuck. I've applied blur to the photo.

Screenshot_20211225-124123_Les_Pas

Smartphone (please complete the following information):

  • Device: Pocophone F1
  • OS: Lineage OS 11, MicroG Build
  • Version 11
  • Les Pas Version: v2.4.1, from F-Droid

Additional context
Few weeks ago, this was not a problem, as I was able to create and upload albums normally. I didn't find a way to retrieve logs from the application, but if its possible I can provide.

Opening Albums Twice Occasionally Crashes the App

Describe the bug
I am not sure why, but Les Pas has recently started to crash when I'm trying to open albums.

To Reproduce
Steps to reproduce the behavior:

  1. Open an album.
  2. Go back to the main screen.
  3. Open the same album (or another album).
  4. App crashes.

Expected behavior
App should not crash.

Smartphone (please complete the following information):

  • Device: Pixel 5A
  • OS: Android 12
  • Version 2.4.4

Additional context
I have tried deleting the json data from my Nextcloud and tried reinstalling the app, but the issue persists. The odd thing is that only certain albums appear to trigger this behavior, not all of them.

Can't sync Photos

Describe the bug
I can't sync my Photos with nextcloud. When i create a folder on my phone (lespas app) it will show up in my lespas folder. The already existing folders will not show up in the app.

OS

  • Nextcloud 20.0.4
  • Lespas 1.3
  • PHP 7.3.19
  • mysql 10.3.27
  • NextCloudPi version v1.34.1

Error message 1

[webdav] Fatal: Sabre\DAV\Exception\ServiceUnavailable: Could not open file at <>

  1. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php line 90
    OCA\DAV\Connector\Sabre\File->get()
  2. /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
    Sabre\DAV\CorePlugin->httpGet(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
  3. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 474
    Sabre\DAV\Server->emit("method:GET", [Sabre\HTTP\Requ ... }])
  4. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 251
    Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
  5. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 319
    Sabre\DAV\Server->start()
  6. /var/www/nextcloud/apps/dav/lib/Server.php line 332
    Sabre\DAV\Server->exec()
  7. /var/www/nextcloud/apps/dav/appinfo/v2/remote.php line 35
    OCA\DAV\Server->exec()
  8. /var/www/nextcloud/remote.php line 167
    require_once("/var/www/nextcl ... p")

Error message 2

[PHP] Error: Error: fopen(/media/1d39d588-0b92-6a47-bc86-0b4da013189a/ncdata/USERNAME/files/lespas/Photos from 2012/CAM00064.jpg): failed to open stream: No such file or directory at /var/www/nextcloud/lib/private/Files/Storage/Local.php#355 at <>

  1. <>
    OC\Log\ErrorHandler::onError(2, "fopen(/media/1d ... y", "/var/www/nextcl ... p", 355, {path: "files/le ... "})
  2. /var/www/nextcloud/lib/private/Files/Storage/Local.php line 355
    fopen("/media/1d39d588 ... g", "r")
  3. /var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php line 300
    OC\Files\Storage\Local->fopen("files/lespas/Ph ... g", "r")
  4. /var/www/nextcloud/lib/private/Files/View.php line 1165
    OC\Files\Storage\Wrapper\Wrapper->fopen("files/lespas/Ph ... g", "r")
  5. /var/www/nextcloud/lib/private/Files/View.php line 1001
    OC\Files\View->basicOperation("fopen", "/lespas/Photos from 2012/CAM00064.jpg", ["read"], "r")
  6. /var/www/nextcloud/apps/dav/lib/Connector/Sabre/File.php line 434
    OC\Files\View->fopen("lespas/Photos from 2012/CAM00064.jpg", "r")
  7. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php line 90
    OCA\DAV\Connector\Sabre\File->get()
  8. /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
    Sabre\DAV\CorePlugin->httpGet(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
  9. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 474
    Sabre\DAV\Server->emit("method:GET", [Sabre\HTTP\Requ ... }])
  10. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 251
    Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
  11. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 319
    Sabre\DAV\Server->start()
  12. /var/www/nextcloud/apps/dav/lib/Server.php line 332
    Sabre\DAV\Server->exec()
  13. /var/www/nextcloud/apps/dav/appinfo/v2/remote.php line 35
    OCA\DAV\Server->exec()
  14. /var/www/nextcloud/remote.php line 167
    require_once("/var/www/nextcl ... p")

GET /remote.php/dav/files/USERNAME/lespas/Photos%20from%202012/CAM00064.jpg

Feature Request: Better Camera Roll Viewing Experience

Currently, only being able to view a few photos at a time and having to swipe horizontally makes browsing the Camera Roll difficult. It would be great to have it look more akin to Google Photos.

Thanks for the fantastic app!

Nested Folders

On my Computer, I organize my pictures in nested folders like "2021/10" "2021/09" and so on. (in fact I gave up organizing by event :-) While converting this to my mobile album, I create a flat folder hierarchy like 2021_10, 2021_09. This list gets quite long after 30 years of collecting pictures. Is there a reason why Les Pas - like most of the other picture viewers on Android - does not allow nested folders?

Cannot use ipv6 as address

Cannot enter ipv6 like https
://[200:5817:28d3::da33] as address.
also I think both http and https should work.

LoginFlow for Android

Hi, I was curious about LoginFlow for Android, which uses the Nextcloud app on the phone in order to authenticate the user account. This is an alternative to providing the URL and logging in.

Thanks either way for considering!

File upload doesn't work for bigger files (112mb)

Adding some "bigger" video files (e.g. 112mb) to les pas seems to completely break the Nextcloud upload feature. They are perfectly added to les pas but upload to Nextcloud breaks and all added photos/videos don't get uploaded to Nextcloud after that (Android 11, les pas 2.3.8 here).
No error message is shown nor an indicator that sync isn't happening any more (supporting my feature request here #29).
Thanks for fixing this bug!

Allow picking a different Nextcloud folder

I would like to use this app to show my existing image gallery I have stored in my Nextcloud, limiting the app to only use the /lespas folder seems needlessly restrictive.

Unhiding Albums Deletes Any Pictures Stored in Any Albums with the Same Name

Describe the bug
Unhiding albums will overwrite/delete any photos stored in any albums with the same name as the unhidden album (eg An album with the same name without the . in front).

To Reproduce
Steps to reproduce the behavior:

  1. Add an album with pictures to Nextcloud.
  2. Hide the album in Les Pas (or put a leading .).
  3. Add another album with the same original name with different pictures.
  4. Unhide the original album.
  5. Note that the pictures from the 2nd album are gone and no longer available.

Expected behavior
I would expect there to be a warning if a folder with the same name already exists, in case unhiding the folder will delete any pictures. Having the option to merge the folders would also be nice.

Smartphone (please complete the following information):

  • Device: Pixel 5A
  • OS: Android 12 (GrapheneOS)
  • Version 2.4.5

Additional context
Being able to hide individual pictures instead of albums may also be a worthwhile solution to the issue.

Serious bug: Data loss of whole albums

Hello @scubajeff thanks for fixing the big files upload bug.
When I wanted to try to move some of our family albums I always stumble upon a serious bug leading to data loss.
I have 3 albums (ASCII characters only) with 12 (223.6mb), 14 (98.3mb) and 50 (279.8mb) media files.
I start with a complete new les pas 2.3.9 installation (Nextcloud/lespas folder is deleted).
I add the media files from the first album to lespas (choosing copy-mode and create a new album) and as soon as the "preparing is finished" dialog opens, add the media from the second album to a new album and as soon as the "preparing is finished" dialog shows proceed with the third album. As soon as the third album gets added, the second completely vanishes out of the lespas app.

Nextcloud logs are this:

172.18.0.4 - Raphael [28/Oct/2021:18:38:37 +0000] "PROPFIND /remote.php/dav/files/Raphael/lespas HTTP/1.0" 404 1783 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:38:37 +0000] "GET /ocs/v1.php/apps/files_sharing/api/v1/sharees?itemType=file&format=json HTTP/1.0" 200 2238 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:38:38 +0000] "MKCOL /remote.php/dav/files/Raphael/lespas HTTP/1.0" 201 1394 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:38:38 +0000] "GET /ocs/v2.php/apps/sharelisting/api/v1/sharedSubfolders?format=json&path= HTTP/1.0" 404 1911 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:38:38 +0000] "PROPFIND /remote.php/dav/files/Raphael/lespas HTTP/1.0" 207 1901 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:38:53 +0000] "PROPFIND /remote.php/dav/files/Raphael/lespas HTTP/1.0" 207 1894 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:38:54 +0000] "MKCOL /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof HTTP/1.0" 201 1404 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:38:55 +0000] "PUT /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof/IMG_20210912_155750.jpg HTTP/1.0" 201 1667 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:38:57 +0000] "PUT /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof/452586.json HTTP/1.0" 201 1669 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:38:57 +0000] "PUT /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof/IMG_20210912_155753.jpg HTTP/1.0" 201 1671 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:38:59 +0000] "PUT /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof/IMG_20210912_163739.jpg HTTP/1.0" 201 1681 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:00 +0000] "PUT /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof/IMG_20210912_163745.jpg HTTP/1.0" 201 1671 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:01 +0000] "PUT /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof/IMG_20210912_163747.jpg HTTP/1.0" 201 1669 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:02 +0000] "PUT /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof/IMG_20210926_114642.jpg HTTP/1.0" 201 1675 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:03 +0000] "PUT /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof/VID_20210912_155757.mp4 HTTP/1.0" 201 1667 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:06 +0000] "PUT /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof/VID_20210912_155827.mp4 HTTP/1.0" 201 1671 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:08 +0000] "PUT /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof/VID_20210912_162811.mp4 HTTP/1.0" 201 1671 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:14 +0000] "PUT /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof/VID_20210912_163044.mp4 HTTP/1.0" 201 1669 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:16 +0000] "MKCOL /remote.php/dav/uploads/Raphael/VID_20210912_163106.mp4 HTTP/1.0" 201 1371 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:16 +0000] "PUT /remote.php/dav/uploads/Raphael/VID_20210912_163106.mp4/000000000000000 HTTP/1.0" 201 1547 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:24 +0000] "PUT /remote.php/dav/uploads/Raphael/VID_20210912_163106.mp4/000000052428800 HTTP/1.0" 201 1547 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:31 +0000] "PUT /remote.php/dav/uploads/Raphael/VID_20210912_163106.mp4/000000104857600 HTTP/1.0" 201 1547 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:34 +0000] "MOVE /remote.php/dav/uploads/Raphael/VID_20210912_163106.mp4/.file HTTP/1.0" 201 1673 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:41 +0000] "PUT /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof/VID_20210912_163751.mp4 HTTP/1.0" 201 1673 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:44 +0000] "PUT /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof/452586-content.json HTTP/1.0" 201 1673 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:44 +0000] "PROPFIND /remote.php/dav/files/Raphael/lespas HTTP/1.0" 207 1952 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:45 +0000] "PROPFIND /remote.php/dav/files/Raphael/lespas/2021-09-12%20Besuch%20im%20Mundenhof HTTP/1.0" 207 2631 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:51 +0000] "PROPFIND /remote.php/dav/files/Raphael/lespas HTTP/1.0" 207 1900 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:18:39:51 +0000] "MKCOL /remote.php/dav/files/Raphael/lespas/2021-09-17%20Claras%20erste%20Schuhe%20shoppen HTTP/1.0" 201 1404 "-" "LesPas_v2.3.9"

First album is correctly created and uploaded to nextcloud. Second album (which doesn't show up in lespas any more) is created within nextcloud and synchronization is stopped here. Third album (showing up in les pas app perfectly) doesn't get uploaded to nextcloud, the synchronisation always stops at the second album.

Restarting the lespas app yields this

172.18.0.4 - Raphael [28/Oct/2021:19:05:14 +0000] "PROPFIND /remote.php/dav/files/Raphael/lespas HTTP/1.0" 207 1898 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:19:05:14 +0000] "GET /ocs/v1.php/apps/files_sharing/api/v1/sharees?itemType=file&format=json HTTP/1.0" 200 2240 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:19:05:14 +0000] "GET /ocs/v2.php/apps/sharelisting/api/v1/sharedSubfolders?format=json&path= HTTP/1.0" 404 1911 "-" "LesPas_v2.3.9"
172.18.0.4 - Raphael [28/Oct/2021:19:05:14 +0000] "PROPFIND /remote.php/dav/files/Raphael/lespas HTTP/1.0" 207 1896 "-" "LesPas_v2.3.9"
(No more activity after here.)

If you moved your photos to the second album instead of copying them, these photos will be lost!! I can reliably reproduce this bug with the described procedure (tried it 3 times).

Please fix this bug. Thanks again for your great app, we are realy looking forward to using it within our family.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.