Skip to content

Comments

Instant uploads based on watch for new files in camera folder#1783

Merged
davivel merged 12 commits intomasterfrom
instant_upload_from_observer
Aug 29, 2016
Merged

Instant uploads based on watch for new files in camera folder#1783
davivel merged 12 commits intomasterfrom
instant_upload_from_observer

Conversation

@davivel
Copy link
Contributor

@davivel davivel commented Aug 25, 2016

Fixes #6, and means instant uploads... :

  • ... work in Android 7;
  • ... work with more camera apps.

New requisites for camera apps will be:

  • store pictures and videos in public storage (there's not much sense in doing other way);
  • store pictures and videos in same folder (this can be extended in the future if needed)

BUGS & IMPROVEMENTS

@mention-bot
Copy link

@davivel, thanks for your PR! By analyzing the annotation information on this pull request, we identified @przybylski, @tobiasKaminsky and @jabarros to be potential reviewers

@davivel
Copy link
Contributor Author

davivel commented Aug 25, 2016

@jesmrec , ready to test.

@nasli and @owncloud/android-developers , code reviews are welcome.

@davivel davivel added this to the 2.2.0 milestone Aug 25, 2016
private static final String PREF__INSTANT_PICTURE_UPLOAD_PATH = "instant_upload_path";
private static final String PREF__INSTANT_VIDEO_UPLOAD_PATH = "instant_video_upload_path";
private static final String PREF__INSTANT_UPLOAD_BEHAVIOUR = "prefs_instant_behaviour";
private static final String PREF__INSTANT_UPLOAD_SOURCE = "instant_upload_source_path"; // NEW - not saved yet
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Self note: instant_upload_source_path is saved, the comment is wrong.

@nasli
Copy link

nasli commented Aug 25, 2016

Wow, awesome refactor and fast-timing for Android7 ! Let's release it! 👍

@davivel
Copy link
Contributor Author

davivel commented Aug 25, 2016

For the record: Travis fails getting build dependencies from Google, code is OK. Let's see with a retry,

@jesmrec
Copy link
Collaborator

jesmrec commented Aug 25, 2016

@davivel i have noticed this:

The "Camera MX" app does not upload the videos taken into its folder `...DCIM/CameraMX' . The following log is print at the moment the video starts recording:

08-25 13:00:37.256 11051-11068/com.owncloud.android W/InstantUploadsObserver: Camera app saved an empty or temporary file, ignoring VIDEO_20160825_130036.mp4

With this app the photos works correctly. I have tested other apps and works properly with videos and photos. Checked with empty and non-empty folder.

Perhaps is a corner case that only happens with this app, but having a look can be a good idea :)

Checked in Android7 (Huawei 6P), Android6 (Nexus9) and Android5 (Nexus5)

@davivel
Copy link
Contributor Author

davivel commented Aug 25, 2016

I'll have a look to see if we can do something fast. Video recording might become a problem. Seems that every camera app handles file its-very-own-way. I tested with Google Camera and OpenCamera, both save the video in different ways (OpenCamera keeps it simple).

Let me debug a bit and cross your fingers.

Any case involving video uploads should be blocked meanwhile.

@davivel
Copy link
Contributor Author

davivel commented Aug 25, 2016

MOG. The camera is "writing&closing" the same file twice after creating. Probably it's doing:

  • start recording: create new file, then close it empty;
  • stop recording: open same file, save video and close file;

We are not tracking that workflow. And it's a crappy one, since it's indistinguishable of updating a video file, what we didn't want to track.

I need to think a bit about this. Ideas are welcome.

Instant video was working for this app in Android 6 with ownCloud 2.1.0 ?

@jesmrec
Copy link
Collaborator

jesmrec commented Aug 25, 2016

i'm not pretty sure but i think they did. Checking...

@jesmrec
Copy link
Collaborator

jesmrec commented Aug 25, 2016

@davivel checked with 2.1.0 + Camera MX and works correctly. Videos & Photos are uploaded without error.

@davivel
Copy link
Contributor Author

davivel commented Aug 25, 2016

OK, seems I have a solution.

@davivel
Copy link
Contributor Author

davivel commented Aug 25, 2016

@jesmrec, should work now.

@nasli , you should give another look to code updated. All the changes are in file InstantUploadsObserver

@jesmrec
Copy link
Collaborator

jesmrec commented Aug 25, 2016

With Android5 and Android4 (backwards compatibility)

Steps:

  1. Enable instant uploads for videos with "only wifi"
  2. Disable wifi
  3. Take a video

Actual behaviour:

In uploads view, the video appears twice as pending to upload

Video_1234.mp4
Video_1234.mp4.tmp

Expected behaviour:

In uploads view, only one file related to the video appears in the queue

Nexus5 v5.0.1

@davivel
Copy link
Contributor Author

davivel commented Aug 25, 2016

Really? That .tmp never should have got here.

What camera app are you using in that device?

@jesmrec
Copy link
Collaborator

jesmrec commented Aug 25, 2016

i used default camera.

@davivel
Copy link
Contributor Author

davivel commented Aug 25, 2016

OK, that was stupid from my side.

Fixed now also, @jesmrec

@jesmrec
Copy link
Collaborator

jesmrec commented Aug 26, 2016

Bug (low severity)

Steps:

  1. In a device with a SIM card, enable the instant uploads with only wifi
  2. Switch the wifi off (4G is up)
  3. Take several photos/videos -> pending of wifi connection
  4. Switch the wifi on

Actual behaviour

All the photos/videos are uploaded but the last one, that have to be tapped manually to upload

Expected behaviour

All the photos are uploaded

From plane mode to wifi mode -> works fine

Tested with Android 7. Lower Android versions, work correctly

@davivel
Copy link
Contributor Author

davivel commented Aug 26, 2016

Taking a look.

@jesmrec
Copy link
Collaborator

jesmrec commented Aug 26, 2016

Bug (only in samsung note 4 Android 6)

  1. Enable instant uploads
  2. Set the default camera folder with the default camera
  3. Take some photos and videos

Actual behaviour

Nothing is uploaded

Expected behaviour

Content is uploaded

@davivel
Copy link
Contributor Author

davivel commented Aug 26, 2016

That's worse. Checking.

@davivel
Copy link
Contributor Author

davivel commented Aug 26, 2016

As discussed offline: this last bug is very, very specific of the OS version + camera app + camera app configuration, maybe also model, and there is no way we can fix this with a limited effort. Let's open another issue for it.

@jesmrec
Copy link
Collaborator

jesmrec commented Aug 29, 2016

@davivel working fine. Approved.

Now we should be aware of posible differences related to device/software vendors that can cause exceptions like #1783 (comment).

Great job ;)

@davivel davivel force-pushed the instant_upload_from_observer branch from 98a052b to 99352d4 Compare August 29, 2016 10:44
@davivel
Copy link
Contributor Author

davivel commented Aug 29, 2016

Rebasing.

Great job you :D

@davivel davivel merged commit 5534fe0 into master Aug 29, 2016
@davivel davivel deleted the instant_upload_from_observer branch August 29, 2016 10:54
@davivel davivel modified the milestones: 2.1.1, 2.2.0 Aug 29, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants