google / java-photoslibrary

Java client library for the Google Photos Library API
http://developers.google.com/photos
Apache License 2.0
108 stars 59 forks source link

Impossible to interrupt a long-running media item upload #30

Closed ylexus closed 3 years ago

ylexus commented 4 years ago

PhotosLibraryClient.uploadMediaItem() is blocking uninterruptibly until the upload is complete. In a UI app it means the user is unable to cancel the upload process without killing the app.

Screenshot 2020-04-25 at 23 38 50

Related to https://github.com/ylexus/jiotty-photos-uploader/issues/23

ylexus commented 3 years ago

Any chance this can be improved?

jfschmakeit commented 3 years ago

We are currently working on some major improvements to the upload flow in the client library - in particular around retries and error handling. This sounds like something that should be considered as well.

You can also configure a timeout for upload calls that cancels any in-progress requests.

(Ideally, calling .cancel(..) on the ApiFuture returned by making a call through the PhotosLibraryClient#uploadMediaItemCallable() should interrupt and cancel the upload. This is something we are looking at improving.)

jfschmakeit commented 3 years ago

The behaviour around this has been improved in the latest release (1.7.0): https://github.com/google/java-photoslibrary/releases/tag/v1.7.0

You should now be able to cancel (and interrupt) long running media uploads. Please file a new issue if you are having issues with this behaviour after upgrading to the latest version.