Coder Social home page Coder Social logo

piwigo-flutter-app's Introduction

Piwigo Next Generation (for Android)

An android application for managing and uploading images to Piwigo servers.

This app is under development by the Piwigo android team. The goal is to close the gap with the IOS Piwigo application while keeping in mind the priority of the features like the upload, and the ability to select multiple images at a time or to take photos directly from the app to upload them.

All features are not enabled and will be implemented when needed. If you face trouble please create tickets in case you detect a bug.

Installation

You can download the latest version either from Github or from Google Play Store:

Download from Play Store

On your Android phone:

  1. Go to Play Store.
  2. Search for Piwigo NG on search-bar.
  3. Find the listing with the name Piwigo NG (Early Access) and click Install.

Alternatively, you can directly go to the Play Store page of Piwigo NG app.

Download from Github

Download the APK

In Github, Go to piwigo-flutter-app releases, choose the version (latest is recommanded) and download the .apk file.

Install the APK

On your Android phone:

  1. Go to Settings > security > install unknown apps.
  2. Go to files and enable Allow from this source. Don't forget to disable it when you have finished
  3. Exit Settings and go to files.
  4. Go to Downloads, select the .apk and click install.
  5. The app is now installed on your phone.

Usage

How to use Piwigo NG

Login

Piwigo's login screen

  • Enter the piwigo address of the server you want to log into :
  • Enter the username and the password for the server you want to log into :
    • Leave those fields empty if you just want to visit the server. You will be logged as a guest.
  • Tap the Log in button :
    • If the given URL is empty, the Log in button will be disabled.
    • If the login is not successful, a dialog describing the error will appear. Tap outside the dialog to retry.

Login Error Dialog

Logout | Change server

From the Albums Home Page

  • Go to Settings.
    • If you are logged in : Tap Log out.
    • If you are a guest : Tap Log in.

Settings Page

Upload

With Piwigo NG, you can upload images from the phone.

  1. Enter (or create) an album.
  2. Tap on the menu button at the bottom right corner.
  3. Tap the image button to select images for upload.

Menu Button

  1. Select the images from your phone 4.1. You can take a photo directly from the app by tapping the camera icon.

Multiselection Page

  1. Validate by tapping the check button on the top right corner.
  2. Review the selected images and tap the upload button to confirm or exit ton cancel.
  3. The upload will start in background, you can continue to use the app or even leave it. 7.1. Some notifications will appear each time an image is fully downloaded. 7.2. The result will be visible when all the images have been updated.

Upload Page

Flutter

This application is made with Flutter

A UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.

We are using it for Android only.

Piwigo API

The connection to the server is made with the Piwigo's API.

Upload

For the upload, we are using the uploadAsync method of the API. This method requires to chunk the image with a size given by the server. All chunks are uploaded simultaneously and reorganized by the server.

Licence

Piwigo is a free software, it can be redistributed it and / or modified under the terms of the GNU General Public License see more here

piwigo-flutter-app's People

Contributors

abrenoch avatar evgeniyspinov avatar flowgunso avatar plegall avatar prookyon avatar reighti avatar remi-martin avatar shas0408 avatar xsm1997 avatar yamanq 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

Watchers

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

piwigo-flutter-app's Issues

Upload of pictures not working

Hello,
Photo uploading doesn't work on my phone. App is never uploading the photo(s) on my server.
On standard Piwigo Android app, adding photo with community plugin works.
I read on the forum that it might be an issue so I deactivated the plugin but still doesn't work.
Is there something to set/check either on the server (Accessrights), the database (mysql version) or in Piwigo admin like in the synchronisation part?

Anyway that's a promising App.
Thanks a lot for putting this app to iOS level of functionality

Images dont upload as community user with permissions

I am not able to upload photos as a community user in an album although I can upload via the web interface.

When I upload, it takes me to a screen which says 1 photo and a big orange bar says upload.
When I click upload a grey ribbon at bottom has a rotating symbol on right. It stops after a while. No photos are uploaded.

This however works when I try to do this as an admin. Basically the community plugin functionality is not reflected since I do have rights to upload as a community user and can upload via the web interface.

Trying to move a photo did not work either as a community user. A blank screen showed up from bottom which had a rotating wheel. The rotation never stopped.

Platform
Samsung Galaxy M21
Android version 11
Kernel: 4.14.113-21183318

Don't show login screen when credentials are already there

When I launch the Piwigo NG app, I see a login screen (asking for URL/login/password + "Log in" button) briefly, and the screen disappears when the App actually connects to my gallery.

This is confusing since the screen suggests I have an action to take (such as clicking "Log in"). I usually start moving my finger towards the "Log in" button, but it disappears before I get time to click. A plain message "logging-in" without any field nor buttons (or perhaps an "Abort" button?) would make more sense IMHO.

Feature Request: Caching / Offline

1st: great job on this NG branch of the Android App and thanks for all your efforts!

For me the main benefit in using an app over the web frontend of piwigo would be to have a caching mechanism and being able to view the photos without internet connection - as a "normal" gallery app on Android is also doing. For sure saving bandwidth is an additional aspect that would be "the benefit" of using an app over the website (even though Browsers already do a great job with caching).

Poor resolution on Samsung S7 Tab

Dear developers,
I use extensively Piwigo for my private photo gallery. Until now I used it on my Macbook Pro and iPhone, but I searched for a tablet and would like to try an Android device. I bought an Samsung S7 tab released last year, resolution is quite high. All my images are shot with a DSLR or ILC camera and resolution goes from 12MP to 26MP, no iPhone photos on the Piwigo server.

I came to a major issue in the app and posted already my issue and debugging on piwigo forums. There was no real indication how to fix it, I suppose resolution of the device is not correctely checked or there is missing something in the API call to the piwigo webserver to get an image with a bigger resolution than Medium.
You allways get the image in “Medium” format. This to low and shows a pixeled image on android S7 tab.
I tried only with the app version in the official android store.

Here is my debugging trace in the forums of Piwigo if you woild like to get more technical details. I did a few tests and came to this conclusion.

https://piwigo.org/forum/viewtopic.php?id=31364

It would be really nice this to have fixed as the viewing of my images on the tablet was the main goal of buying one. And I would not like to move all my 50GB photos to a cloud provider.

If can give you further help or you need somebody to test new APK versions (even not published to the playstore), I can do this.

kind regards,

Gilles

Add search functionality

The app should allow searching on the main view and within each category, in the form of a search box at the top of view. The search results would then performed only on the currently visible albums/sub-albums. For example, opening the "2021" album and then searching would only search for images in the "2021" album and its sub-albums. The hint for the search box could be used to clarify this (e.g. "Search this album"). Images would be retrieved by the pwg.images.search endpoint and pagination could be added to the bottom of each scrolled view.

Connection failed - Dio: invalid url

In the readme it says that http is not supported yet. That's why I was surprised that it worked nevertheless in version 0.0.3-alpha.

Today I tried 0.0.4-alpha and got the error message Connection failed - Dio: invalid url. I guess it's because I used http. But as it was working in the previous version I am not sure if it might be another issue.

Thank you very much for developing this app. I am very much looking forward to it.

Upload list view

Show the remaining images to upload.
Pressing the Upload overlay #14 pushes a new page with a list view containing all images that left, with their upload progress.
Successfully uploaded images should be removed from the list.

Accessing Piwigo over != 443 Port

Its more a question than an Issue.

I have Piwigo running behind Traefik with a valid Lets Encrypt Certificate. If i type in the URL in a Browser:
https://mydomain:12000 everything works.

But from the App, i get a invalid URL error. I assume that the App anticipated that Piwigo is running under the standard Port 443 and other Ports are ignored?

If i am right, any plans to add that Feature?

Bug: Unable to enter gallery from Android 6.0 (invalid URL)

Hi.

First wanted to thank you for the great app, which actually compliments a great Piwigo. And it's much more functional than current Piwigo Android app. Please keep it moving!

I've tried to use app on my mobile (Android 6.01, MIUI Global 9.5.4.0) and I'm getting popup "Login Fail: Dio: invalid url", when trying to login. On the server side (according to access and error logs) - there is no request reaching the server, so it's not really clear what is wrong.

On other phone with Android 8.1.0, MIUI Global 10.3.1.0 - application works as intended. As well as it works on emulator (Bluestacks). Apparently something is wrong with my OS/Phone, but error message doesn't allow me to investigate.

Please advise.

Real image fullscreen views

First of all, this new piwigo app is on a good way and should quickly become better than official current one.

Thus, it would be better with fullscreen modes for images (real ones) and especially for landscape images shown in landscape position of a smartphone. Title text and navigation buttons stay visible on top of the image (and even android 3 buttons bottom bar). On most app, a single tap in the center of the image make all things except image disappear. This would be good to have, in landscape and portrait modes.

Broken views

On 0.0.6-alpha, I have a few broken views:

  • The settings view is empty
  • The category view show grey photos
  • The image view is not navigable from the category view

I've debugged with a local build on the same device.

Settings view

The following exception is thrown from lib/views/SettingsPage.dart#L135:

The following NoSuchMethodError was thrown building:
The method 'replaceAll' was called on null.
Receiver: null
Tried calling: replaceAll(",", ", ")

Category view

The following exception is thrown from lib/views/CategoryViewPage.dart#L303:

The following NoSuchMethodError was thrown building:
The method '[]' was called on null.
Receiver: null
Tried calling: []("url")

The pwg.session.getStatus endpoint on my server does not return upload_form_chunk_size and upload_file_types, which throws another exception Unhandled Exception: Invalid argument(s) (value): Must not be null at lib/api/SessionAPI.dart#L80-L82

pwg.session.getStatus response
<rsp stat="ok">
<username>***********</username>
<status>normal</status>
<theme>clear</theme>
<language>en_GB</language>
<pwg_token>*********************************************</pwg_token>
<charset>utf-8</charset>
<current_datetime>2021-07-08 19:11:54</current_datetime>
<version>11.5.0</version>
<available_sizes>
<item>square</item>
<item>thumb</item>
<item>2small</item>
<item>xsmall</item>
<item>small</item>
<item>medium</item>
<item>large</item>
<item>xlarge</item>
<item>xxlarge</item>
</available_sizes>
</rsp>
Broken views screenshots

album
photos
settings

Albums Page UI Fixes

  • Uniform albums padding
  • Adjust "Albums" title
  • Close multiple selection with back button

Improve image edition

  • Create a dedicated page to avoid dialog accumulation
  • Show the number of images selected
  • Show the next image briefly to notify the swipe mechanic
  • Leave privacy level unchanged when nothing is selected

Automatic upload of pictures taken from phone

One killer-feature of Google Photos is the automatic back-up. Once set up, pictures taken from the phone are automatically uploaded to the cloud storage, helpful both for easy sharing (e.g. take a picture from your phone, share from your computer's web browser) and backup (pictures are still there if you break your phone).

It would be awesome to have this in Piwigo's App.

Camera upload does not update photo data from first run

After the first time uploading from camera, every subsequent "upload from camera" uses the same image as that first upload. This makes it impossible to upload photos from camera.

Version:

I am using piwigo_ng-0.0.11.1-beta with Android 10.

How to reproduce:

  1. Open an album
  2. Use the FAB to "Take Photo"
  3. Upload
  4. Use FAB again to "Take Photo"
  5. The image thumbnail and uploaded file will be the same as the image taken in step 2. This occurs regardless of restarting the app, using other buttons to upload photo, etc. Importantly, the title and description added in step 4 will still be uploaded correctly.

Crashes on Samsung Galaxy S7

Hi,

The app crashes directly on opening on my Samsung Galaxy S7 phone, model SM-G930F, even after rebooting the phone.

The error message is (in french) : "piwigo² s'est arrêté".

How can I send you a crash report from my phone?

Tags implementation

It's the feature from Piwigo I'm looking forward for the most in the mobile app (I've made a similar issue on the legacy app).

The tags are mentioned in the project section but only in relation to the uploads, but what about using the tags to navigate the photos ? With search queries, a list of tags, navigating to a tag from a photo or else ?

Delete options for albums

Photo deletion mode can be "no_delete" (may create orphan photos), "delete_orphans" (default mode, only deletes photos linked to no other album) or "force_delete" (delete all photos, even those linked to other albums)

Thumbnails not appearing inside album/sub album

Just installed NG looks good. However I only see thumbnails for the album and not for images inside the album.

I have tried with albums with a low image count and with high image counts and seem to get the same result.

The is no indication that the app is performing a background task so I presume it has stalled?

I have tried to restart with no better result.

Multiple upload queue

Ability to limit the number of requests when uploading images to a Piwigo.

Enqueue images and their chunks, then upload a certain number of images and chunks simultaneously (3 to 5 at a time).

NoSuchMethodError tapping on an album

Using piwigo_ng-0.0.10.1-beta, when tapping on an album, nothing happens (the album is not opened).

Building from source in Debug mode, I get the following backtrace:

══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
The following NoSuchMethodError was thrown while handling a gesture:
The method 'call' was called on null.
Receiver: null
Tried calling: call()

When the exception was thrown, this was the stack:
#0      _AlbumListItemState.build.<anonymous closure> (package:piwigo_ng/views/components/list_item.dart:128:22)
#1      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:989:21)
#2      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:198:24)
#3      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:608:11)
#4      BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:296:5)
#5      BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:267:7)
#6      GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:157:27)
#7      GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:443:20)
#8      GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:419:22)
#9      RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:308:11)
#10     GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:374:7)
#11     GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:338:5)
#12     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:296:7)
#13     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:279:7)
#17     _invoke1 (dart:ui/hooks.dart:169:10)
#18     PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:293:7)
#19     _dispatchPointerDataPacket (dart:ui/hooks.dart:88:31)
(elided 3 frames from dart:async)

Handler: "onTap"
Recognizer:
  TapGestureRecognizer#3fec9
════════════════════════════════════════════════════════════════════════════════════════════════════

System: Android 9 (Lineage OS)
Piwigo: current master 802b209

Unable to install APK on Android 12

adb install piwigo_ng-0.0.11.1-beta.apk 
adb: failed to install piwigo_ng-0.0.11.1-beta.apk: Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl1032259992.tmp/base.apk (at Binary XML file line #51): com.remi.piwigo_ng.MainActivity: Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present]

Updated: Multiple Android App Issues

Piwigo app / Cannot download files after upload

I ran a test on the Piwigo Android app and ran into a problem. Uploading files is perfectly fine, but when I visit the website on my phone or desktop computer, then download a file I've uploaded it saves with no file type. I would have to manually convert it to an image file.

This didn't start happening (to my knowledge) until I used the new Piwigo NG APK/early access install, so the issues may be related. (I only went back to using the original Piwigo app because there were issues using the new one.)

Piwigo NG app / Multiple Issues

When uploading more than one file, it seems to overload my website so the files do not finish uploading AND I cannot access the website through the mobile/desktop website, even to access the administration panel.

The issue with downloading files after upload has also been detailed above.

For reference (if this is necessary):
Piwigo 11.5.0 Check for upgrade
Operating system: Linux
PHP: 7.4.19 (Show info) [2021-07-15 01:47:18]
MySQL: 5.5.5-10.3.26-MariaDB [2021-07-14 20:47:18]
Graphics Library: External ImageMagick 6.9.10-68

Versioning

Currently, all your APKs identify as version 1.0.0 with versionCode 1 – which not only makes it hard to tell which version is installed, but also lets Android assume there is only a single version (Android uses versionCode to tell versions apart), making updates a bit more complicated.

May I suggest to adjust versionName ane versionCode properly – at least starting with the next version? That would then e.g. be 0.0.7 and 7. Thanks!

hide "no description" message

I never write album description other than the album name. On the web interface, I just don't get any message, but on the android app, I see (no description) greyed-out on all of my albums. To me, the message just adds noise to the interface, displaying nothing when there's no description would be much better.

No Album thumnails

As a community user could not see any album thumbnails. Album thumbnails are present in the web version and can be seen by all community users.

Suggestions

First of all : good job, this app is very promising.

I have a bunch of bugs/features after a few minutes of usage, tell me if you want me to create multiple issues, or parhaps use the Kaban https://github.com/Piwigo/piwigo-flutter-app/projects ? (never use it)


  • pixelated images
    because the app initially load the "medium" resolution the result is very pixelated (I have a Mi 9 with 2340 x 1080 screen), there should be an option to choose the default resolution and/or save the preference when changing it and/or gradually load better resolutions

  • parsing/ignoring HTML description and ExtendedDescription
    I often use HTML in my album description, currently it displays as raw text. I also use ExtendedDescription, particularly the <!-- more --> tag to have a description only visible on the album page (could be very useful to support that as the space is very limited on the album card).
    A quick and dirty solution would be to extract text and ignore any HTML.


Those are other ideas I guess are already more or less planned

  • option to download the image on the device with multi-select if possible
  • edit metadata of albums and photos
  • supports videos
  • multiple servers (personnally I wouldn't have the usage)

First issues with Piwigo2

Downloaded the apk today and successfully installed Piwigo2...

At last, an Android app to match or even beat the iOS version. A job well done to the team, a fantastic start. Looks great. The connection was quick and looking through the albums and photos was quite snappy. (550 photos for now)

Here are my observations on this version so far on a Galaxy A50, the latest Android.

  • When creating a new album the create album dialogue box does not disappear, however, the new album does get created as I discovered when I kept pressing to confirm, I had about 15 new albums called "test". The dialog of course needs to disappear. You do get a message at the bottom confirming the creation of the album, however.
  • Couldn't get the search function to work. Even typing in a known full file name didn't return anything.

That's it for me. I will keep testing until I break something! Waiting for more functionality. Bring it on.

Good job

Dj

Does not show albums in version 0.0.10-beta

Hi.
Since I updated the application to version 0.0.10-beta the albums are not shown, it is blank.
With version 0.0.9 it worked correctly.
I have Piwigo version 11.5.
I have tried to connect both through the reverse proxy and in a local connection directly to the server's IP and nothing is shown in any case.
I have tried to erase the data of the application and it has not worked.
My mobile has Android 10.
Thank you very much for this great development, it is fantastic!
Greetings.

Upload overlay

Show the upload progression over the "Home" floating button for each "CategoryViewPage".
There should be a Circular Progress Indicator to show the progress of the running upload, and the number of images left.

Improvement: server URLs with non-latin characters

Hi!

Excellent app, thanks for this.

My Piwigo album is accessible via an URL that contains a non-latin character (å in my case). I could not add it on the app, I had to use the punycode version of the URL. So my question would be: can you consider handling the non-latin characters in server URLs?

Thanks!

/CN

Feature Request: background sync

Together with (or after) #51 a new feature to hav background synchronization from one (or several) android local directories to dedicated alums into a remote gallery (if the configured network constraints are satisfied - like only on WLAN) would be great to have. This would be the second big benefit of using an app over the website.

FeatureRequest: publish App on f-droid

As not all users of Android phones have a google-account and therefore cannot use the google play store I would propose to publish the next generation piwigo app on f-droid.

Especially the piwigo users could be interested in this, because those people with a preference for google anyhow use the the photo service from google instead of accepting the effort of self-hosting a gallery like piwigo.

Document the use of .env

When setting up the project to begin contributing, I kept getting errors until I created a .env file with PRIVACY_POLICIES="https://piwigo.org/mobile-apps-privacy-policy". I was unable to find other uses for the file, but this first value should be documented and possibly added to a .env on the repository.

Wrong aspect ratio for videos in landscape orientation

If the Smartphone is in portrait orientation the aspect ratio is correct.
In landscape orientation the video height is limited by the upper and lower app/action bars but is streched to the device width. Which results in a wrong aspect ratio.

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.