Closed
Bug 971090
Opened 12 years ago
Closed 12 years ago
[Camera] 1.4 Visual Design - Thumbnail/Preview Gallery
Categories
(Firefox OS Graveyard :: Gaia::Camera, defect, P1)
Tracking
(blocking-b2g:1.4+, b2g-v1.4 verified, b2g-v2.0 verified)
People
(Reporter: amylee, Assigned: hyuna.cho82)
References
Details
(Whiteboard: ux-tracking, visual design, jian [fxos:media])
Attachments
(17 files, 2 obsolete files)
|
809.54 KB,
image/jpeg
|
Details | |
|
140.50 KB,
image/svg+xml
|
Details | |
|
27 bytes,
text/plain
|
Details | |
|
25.12 KB,
image/svg+xml
|
Details | |
|
140.05 KB,
image/svg+xml
|
Details | |
|
300.14 KB,
image/png
|
Details | |
|
187.57 KB,
image/png
|
amylee
:
ui-review-
|
Details |
|
485.15 KB,
image/png
|
Details | |
|
259.43 KB,
image/png
|
Details | |
|
178.75 KB,
image/png
|
Details | |
|
104.75 KB,
image/jpeg
|
Details | |
|
87.63 KB,
image/jpeg
|
Details | |
|
89.47 KB,
image/jpeg
|
Details | |
|
63.96 KB,
image/jpeg
|
Details | |
|
177 bytes,
text/html
|
djf
:
review-
tif
:
ui-review+
|
Details |
|
177 bytes,
text/html
|
djf
:
review-
|
Details |
|
46 bytes,
text/x-github-pull-request
|
justindarc
:
review+
|
Details | Review |
When user selects preview thumbnail, user is able to swipe through images.
Will attach visual specs
Updated•12 years ago
|
Target Milestone: --- → 1.4 S2 (28feb)
Updated•12 years ago
|
Assignee: nobody → jdarcangelo
| Reporter | ||
Comment 1•12 years ago
|
||
Visual spec for Image Preview
| Reporter | ||
Comment 2•12 years ago
|
||
Camera back icon
Comment 3•12 years ago
|
||
Here is a VERY simple (~100 lines) implementation on JS Bin of a full-screen photo carousel. It uses touch events exclusively, so you must run on device to see it working. Just swipe around in the demo to switch between the images. The previous Filmstrip implementation also has the ability to swipe between images, but there is no animation going between the images.
Also, the included CSS in the JS Bin will center and fit the images to the screen while preserving their aspect ratio.
Attachment #8382799 -
Flags: feedback?(hyuna.cho82)
Updated•12 years ago
|
Assignee: jdarcangelo → nobody
Updated•12 years ago
|
Assignee: nobody → hyuna.cho82
Comment 4•12 years ago
|
||
Please update with eta on pull request to camera branch
Flags: needinfo?(hyuna.cho82)
Please upload svg images for share/delete.
Flags: needinfo?(hyuna.cho82) → needinfo?(amlee)
Updated•12 years ago
|
Attachment #8382799 -
Flags: feedback?(hyuna.cho82)
| Reporter | ||
Comment 7•12 years ago
|
||
Flags: needinfo?(amlee)
| Reporter | ||
Comment 8•12 years ago
|
||
Hi,
The icons have been uploaded.
Comment on attachment 8386014 [details]
WIP-preview gallery PR
Plz review the preview gallery
Attachment #8386014 -
Flags: review?(dmarcos)
Updated•12 years ago
|
Attachment #8386014 -
Flags: review?(wilsonpage)
Attachment #8386014 -
Flags: review?(jdarcangelo)
Attachment #8386014 -
Flags: review?(dmarcos)
Attachment #8386014 -
Flags: review?(dflanagan)
Comment 10•12 years ago
|
||
Comment on attachment 8386014 [details]
WIP-preview gallery PR
Since the patch description says this is a work in progress, I assume it is not ready for formal review. I'm clearing the review flag.
Overall the code looks pretty good, and I'm setting feedback+. I have not tried testing it. I've left a few comments on github.
The patch includes a long file named style/icomoon.json which should not be there.
The patch includes a gallery.png image file, but no code that uses that image, which makes me think that the image is not needed.
Next steps: once the new controls-2 view has landed, this patch can probably land. Coordinate with Diego and as soon as controls2 lands, try to make a pull request against camera-new-features.
Also: attach screenshots illustrating the gallery/share/delete buttons and the image count text for ux review.
Attachment #8386014 -
Flags: review?(dflanagan) → feedback+
| Assignee | ||
Comment 11•12 years ago
|
||
I'm modifying some code regarding with comments.
But there is some questions, so I added comments in github. Please check it.
I will create a pull request for preview in camera-new-features after landing Diego patch.
I will remove a gallery.png. But how about icomoon.json?
If anyone want to add new icons, I know they need this icomoon.json to generate.
| Assignee | ||
Comment 12•12 years ago
|
||
Attachment #8389683 -
Flags: ui-review?(amlee)
| Assignee | ||
Comment 13•12 years ago
|
||
Attachment #8389686 -
Flags: ui-review?(amlee)
Comment 14•12 years ago
|
||
Comment on attachment 8386014 [details]
WIP-preview gallery PR
r-
- Camera app crashes on attempting to pinch zoom image
- Image post-process work should be managed centrally in CameraController, emitting 'newmedia' when done.
- Old filmstrip has not been removed
- Patches not being linted before review.
- Smaller 'nits' in Github comments.
Overall: I'm super happy with the code. It's well structured and integrates nicely into the existing architecture. You clearly know what you're doing :)
Attachment #8386014 -
Flags: review?(wilsonpage) → review-
| Reporter | ||
Comment 16•12 years ago
|
||
Hi Hyuna,
Here is my feedback. I've also attached a visual spec for reference. Let me know if you have any questions. Thanks!
------------------------------------------------
Camera Back Icon
Position: Should be same as camera
front/back toggle switch
Circle should be 50x50px (looks too small)
Icon should be 3x3 rems based on SVG bounding box (looks too big).
Circle Opacity: Should be 12% (looks too opaque)
Highlight State: Please remove fade in transition. Circle should turn blue right away on press (same as flash, toggle, and settings button
Menu Fade in/Fade Out
Please have toolbar, text, and camera back button fade out after 3 seconds or when the user taps the screen. These should appear again when the user taps the screen.
Image Swipe Transition
When user swipes to next image, the image should slide to the next image based on the direction of the swipe. Right now it jumps to the next image.
Swiping gesture doesn’t feel responsive. Several attempts at swiping was required to view next image.
Confirmation Text
Font: Should be Fira Sans Medium (currently Regular)
Positon: Distance between image number text and toolbar should be a minimum of 38px (should be in the same position for all confirmation text).
| Reporter | ||
Updated•12 years ago
|
Attachment #8389686 -
Flags: ui-review?(amlee) → ui-review-
| Reporter | ||
Comment 17•12 years ago
|
||
(In reply to hyuna.cho from comment #13)
> Created attachment 8389686 [details]
> preview_landscape.png
Provided feedback in comment 16
Attachment #8386014 -
Flags: review- → review?(wilsonpage)
Comment 18•12 years ago
|
||
Comment on attachment 8386014 [details]
WIP-preview gallery PR
r-
- Improper use of events to call API and some events like `previewGalleryOpen` being called when they shouldn't be.
- Broadcast module should be completely removed and replaced with `app` events if need be.
- Unspecced PreviewGallery opening transition artifact of old filmstrip. SHould be changed to quick fade-in-out.
- Some questionable unit-tests assertions around `calledWith`
- Some unused CSS and confusion around flexbox.
- CSS state overrides should sit directly below original declarations to make sure all selectors for each element are in one place.
OVERALL: We're almost there! Really awesome changes in response to last review!! :)
Attachment #8386014 -
Flags: review?(wilsonpage) → review-
| Assignee | ||
Comment 19•12 years ago
|
||
Please check the below:
# Camera back icon
I changed the camera back icon with the latest SVG icon.
Circle: 50x50px
Circle opacity: 12%
Icon: 3x3rem
But it's too small.
# Confirmation text
It was 38px far from the toolbar
Flags: needinfo?(amlee)
| Reporter | ||
Comment 20•12 years ago
|
||
Hi Hyuna,
Can you give me the branch you are working from so I can flash my device to see the changes.
Thanks
Flags: needinfo?(amlee)
| Reporter | ||
Comment 21•12 years ago
|
||
Hi Hyuna,
Can you give me the branch you are working from so I can flash my device to see the changes.
Thanks
Flags: needinfo?(hyuna.cho82)
Comment 22•12 years ago
|
||
(In reply to Amy from comment #16)
>
> Image Swipe Transition
>
> When user swipes to next image, the image should slide to the next image
> based on the direction of the swipe. Right now it jumps to the next image.
>
> Swiping gesture doesn’t feel responsive. Several attempts at swiping was
> required to view next image.
>
Getting this right will be a substantial amount of work, and I'd like to handle that in a followup bug. I'm responsible for the current swiping behavior, and in the case where we had the filmstrip displayed I guess it was good enough. Doing a nice smooth transition like gallery does will be a lot of work and will have performance implications because we'll have to have the preview image loaded in advance.
I agree that the current behavior is unacceptable, but let's land what we have now so we can get rid of the filmstrip and move ahead with the new visuals.
| Reporter | ||
Comment 23•12 years ago
|
||
Hi David,
Thanks for responding. It would be great if we got the preview image transitions to the same level as the gallery at some point so a follow-up bug would be great for that.
Also, I wanted to ask about the overall scale of the graphics in the camera build. All the screen shots that I've seen, I've noticed that the graphics are roughly 10% smaller than the spec (i.e the flash, camera back, settings menu buttons, shutter controls). For example, it says 50px x 50px for the camera back icon in image preview but when I actually measure the screenshot, the button is closer to 42px x 42px. Do you know what is causing this?
Thanks
(In reply to David Flanagan [:djf] from comment #22)
> (In reply to Amy from comment #16)
>
> >
> > Image Swipe Transition
> >
> > When user swipes to next image, the image should slide to the next image
> > based on the direction of the swipe. Right now it jumps to the next image.
> >
> > Swiping gesture doesn’t feel responsive. Several attempts at swiping was
> > required to view next image.
> >
>
> Getting this right will be a substantial amount of work, and I'd like to
> handle that in a followup bug. I'm responsible for the current swiping
> behavior, and in the case where we had the filmstrip displayed I guess it
> was good enough. Doing a nice smooth transition like gallery does will be a
> lot of work and will have performance implications because we'll have to
> have the preview image loaded in advance.
>
> I agree that the current behavior is unacceptable, but let's land what we
> have now so we can get rid of the filmstrip and move ahead with the new
> visuals.
Flags: needinfo?(dflanagan)
Comment 24•12 years ago
|
||
Amy,
I don't have any idea what could be causing the smaller size. But I've never worked with an icon font before. Let's ask Wilson. Maybe it is just a matter of adjusting the font size.
Flags: needinfo?(dflanagan) → needinfo?(wilsonpage)
| Reporter | ||
Comment 25•12 years ago
|
||
Just to clarify, I am referring to the css created assets such as the circles for the buttons/shutter button and also the background bar height of the preview image toolbar. In the CSS it says 50px x 50px but it's actually smaller when measured. It looks like all the assets on the screen are universally smaller. Thanks
(In reply to David Flanagan [:djf] from comment #24)
> Amy,
>
> I don't have any idea what could be causing the smaller size. But I've never
> worked with an icon font before. Let's ask Wilson. Maybe it is just a
> matter of adjusting the font size.
| Assignee | ||
Comment 26•12 years ago
|
||
(In reply to Amy from comment #21)
> Hi Hyuna,
>
> Can you give me the branch you are working from so I can flash my device to
> see the changes.
>
> Thanks
Hi Amy,
https://github.com/hyunacho/gaia/tree/bug971090-preview
It's the working branch of the preview based on camera-new-feature branch.
You can find your requirements except 'Menu Fade in/Fade Out' and 'Image Swipe Transition'
Flags: needinfo?(hyuna.cho82)
| Assignee | ||
Comment 27•12 years ago
|
||
* It's the patch based on camera-new-features
* Camera back icon : The camera back icon with 3*3 rem is too small. So it's 4*4 rem
Attachment #8392094 -
Flags: ui-review?(amlee)
Attachment #8392094 -
Flags: review?(wilsonpage)
| Reporter | ||
Comment 28•12 years ago
|
||
Hi Hyuna,
Can you make the following changes:
1. Camera back icon: Make this 4.5x4.5 rems
2. Speed up the fade in/out of menu items to 200ms (See attached)
3. Change the opacity of the preview toolbar background to 40% (See attached)
4. Can you move preview image so it is aligned to the top of the screen in portrait view? (I want to avoid having the camera back icon to get cut off by the black cropping)
6. Speed up the transition fade out when you hit the camera back icon and fades to viewfinder.
5. When the menu disappears and the user swipes to next image. The menu should remain invisible until the user taps the screen to bring back the menu.
6. Image count text: Can you change this to Fira Sans Medium?
Can you please also flag Rob MacDonald for future UI reviews? It's looking really good so far. Let me know if you have any questions. Thanks!
Flags: needinfo?(hyuna.cho82)
Comment 29•12 years ago
|
||
Can you please file individual bugs for each of the UX issues you find? Your suggestions are going to be lost in the comment of this bug.
Flags: needinfo?(amlee)
Comment 30•12 years ago
|
||
Follow-up bug for adding animations/transitions for the swipe gesture in `media_frame.js`:
https://bugzilla.mozilla.org/show_bug.cgi?id=984566
Comment 31•12 years ago
|
||
This is top priority right now. How far are we from landing this? Hyuna, Do you need any help?
| Assignee | ||
Comment 32•12 years ago
|
||
(In reply to Diego Marcos [:dmarcos] from comment #31)
> This is top priority right now. How far are we from landing this? Hyuna, Do
> you need any help?
The remaining issues are amy's requirements.
4. Can you move preview image so it is aligned to the top of the screen in portrait view? (I want to avoid having the camera back icon to get cut off by the black cropping)
-> It's related with media_frame.js to fit the image. I start to check about this. Do you have any idea to fix this?
5. When the menu disappears and the user swipes to next image. The menu should remain invisible until the user taps the screen to bring back the menu.
Flags: needinfo?(hyuna.cho82)
Comment 33•12 years ago
|
||
Hyuna,
Are there any remaining issues from code review that need addressed as well?
Comment 34•12 years ago
|
||
Amy,
As for your one comment:
(In reply to Amy from comment #28)
> 4. Can you move preview image so it is aligned to the top of the screen in
> portrait view? (I want to avoid having the camera back icon to get cut off
> by the black cropping)
The component responsible for displaying the preview is also shared by the Gallery app and it centers the preview image. If we modify `media_frame.js` to top-align, this will also top-align the full-screen images in the Gallery app.
So, do we have any room to adjust/remove this from the UI spec? If not, is it acceptable to also top-align in the Gallery app? If not, I think our only option here would be to create a separate copy of `media_frame.js` for the Camera app that uses top-align, but then we lose our code reusability.
Attachment #8392094 -
Flags: ui-review?(rmacdonald)
Attachment #8392094 -
Flags: review?(dflanagan)
Attachment #8386014 -
Attachment is obsolete: true
Attachment #8386014 -
Flags: review?(jdarcangelo)
Attachment #8386014 -
Flags: review?(dmarcos)
| Assignee | ||
Comment 35•12 years ago
|
||
Comment on attachment 8392094 [details]
PR-preview gallery
Except the below item:
4. Can you move preview image so it is aligned to the top of the screen in portrait view? (I want to avoid having the camera back icon to get cut off by the black cropping)
Plz refer Justin comment.
https://bugzilla.mozilla.org/show_bug.cgi?id=971090#c34
| Reporter | ||
Comment 36•12 years ago
|
||
(In reply to hyuna.cho from comment #35)
> Comment on attachment 8392094 [details]
> PR-preview gallery
>
> Except the below item:
> 4. Can you move preview image so it is aligned to the top of the screen in
> portrait view? (I want to avoid having the camera back icon to get cut off
> by the black cropping)
>
> Plz refer Justin comment.
> https://bugzilla.mozilla.org/show_bug.cgi?id=971090#c34
Hi Hyuna,
I don't want this to over complicate the code so let's keep the image center aligned. Can you please change the colour of the black area above and below the image to a dark grey (#333333). This will allow the camera back icon circle to still show up against the dark background. Thanks!
Flags: needinfo?(amlee)
Comment 37•12 years ago
|
||
Comment 38•12 years ago
|
||
Comment 39•12 years ago
|
||
Hey guys - I reviewed Hyunacho's' patch while Rob is on vacation.
While in preview, I noticed a couple of issues:
- the full screen dialogues appear in portrait when the phone is oriented to landscape (attached photos)
- swiping up from the bottom exits preview and returns to the camera
Thanks!
Flags: needinfo?(rmacdonald)
Comment 40•12 years ago
|
||
Comment on attachment 8392094 [details]
PR-preview gallery
See my comments in #39 - sorry guys I did it wrong! o_O
Attachment #8392094 -
Flags: ui-review?(rmacdonald) → ui-review-
Comment 41•12 years ago
|
||
In my phon(In reply to Tiffanie Shakespeare from comment #38)
> Created attachment 8392997 [details]
> share action menu not in landscape
In my phone the delete/share dialogs rotate properly (see attachments). Anyways the rotation of those dialogs is a separate issue that should be addressed in a different bug.
Comment 42•12 years ago
|
||
Comment 43•12 years ago
|
||
Comment 44•12 years ago
|
||
Diego: How in the world are you getting those dialogs in landscape? What hardware? Since the app is in portrait, I'm shocked that the system activity menu is not in portrait!
Tiffanie: I'm pretty sure that the dialogs are wrong on the existing camera as well, so this is not a regression from the current camera. Obviously it is wrong, but since it is deeply tied to the system app, it really isn't something we can address as part of this bug.
Flags: needinfo?(tshakespeare)
Comment 45•12 years ago
|
||
I had just flashed hyuna's branch. I don't know if she's changing the behaviour of the dialogs based on the feedback
Flags: needinfo?(hyuna.cho82)
| Assignee | ||
Comment 46•12 years ago
|
||
(In reply to Diego Marcos [:dmarcos] from comment #45)
> I had just flashed hyuna's branch. I don't know if she's changing the
> behaviour of the dialogs based on the feedback
I didn't change about the dialog rotation.
In my nexus 4, delete/share dialog didn't rotate.
But I know it can not handle in camera app. If need to fix, how can I handle in camera.
Flags: needinfo?(hyuna.cho82)
Comment 47•12 years ago
|
||
Hyuna. You don't need to handle this in this bug. It's a system app issue.
I cannot explain why those dialogs rotate in my phone with your branch :)
Comment 48•12 years ago
|
||
Sorry guys I don't have a regular FFOS device to check it out the current camera behaviour. It seems weird that those dialogues would rotate in other apps (gallery, browser) but not in camera. Am I crazy?
Flags: needinfo?(tshakespeare)
Comment 49•12 years ago
|
||
Tiffanie: The Camera app orientation is locked to keep certain UI elements (like capture button) "fixed" to their locations on the screen. As a result, the orientation events don't bubble up to the system-level dialogs.
Comment 50•12 years ago
|
||
The rotation of the dialog doesn't belong to the scope of this patch. We can create a separate bug to deal with it. Are there any other UX concerns left to get an r+ for this feature?
Flags: needinfo?(tshakespeare)
Comment 51•12 years ago
|
||
I haven't checked it out lately but did this get fixed? I didn't see any discussion on it in the comments.
- swiping up from the bottom exits preview and returns to the camera
Flags: needinfo?(tshakespeare)
| Assignee | ||
Comment 52•12 years ago
|
||
(In reply to Tiffanie Shakespeare from comment #51)
> I haven't checked it out lately but did this get fixed? I didn't see any
> discussion on it in the comments.
>
> - swiping up from the bottom exits preview and returns to the camera
I updated the patch about this. Please check it again.
- swiping up from the bottom exits preview and returns to the camera
Comment 53•12 years ago
|
||
Comment on attachment 8392094 [details]
PR-preview gallery
I didn't have time to do a complete review, but am giving r- because:
1) In secure mode, when the camera is closed, we have to forget all of the images that are in the gallery preview. It is not enough to just close the preview. This is an important privacy feature.
2) I'm very nervous about the changes to shared/js/media/video_player.js since that is also used by Gallery. It would be much better if you didn't have to change that file.
3) I'd like you to check how this patch interacts with pick activities. You don't need to create thumbnails in that case, do you?
4) There is unrelated code in style/icons.css
Attachment #8392094 -
Flags: review?(dflanagan) → review-
| Assignee | ||
Comment 54•12 years ago
|
||
(In reply to David Flanagan [:djf] from comment #53)
> Comment on attachment 8392094 [details]
> PR-preview gallery
>
> I didn't have time to do a complete review, but am giving r- because:
>
> 1) In secure mode, when the camera is closed, we have to forget all of the
> images that are in the gallery preview. It is not enough to just close the
> preview. This is an important privacy feature.
I updated the comment in github. I had frame.clear also. Please check.
> 3) I'd like you to check how this patch interacts with pick activities. You
> don't need to create thumbnails in that case, do you?
I updated the comment in github. Please check.
Comment 55•12 years ago
|
||
Hyunacho: I updated the patch but am still seeing the issue (swiping up exits preview). I even tried doing a gaia reset and applied the patch again but still see the behaviour.
Can you please check?
| Assignee | ||
Comment 56•12 years ago
|
||
Attachment #8392094 -
Attachment is obsolete: true
Attachment #8392094 -
Flags: ui-review?(amlee)
Attachment #8392094 -
Flags: review?(wilsonpage)
Attachment #8393875 -
Flags: ui-review?(tshakespeare)
Attachment #8393875 -
Flags: review?(dflanagan)
Comment 57•12 years ago
|
||
Comment on attachment 8393875 [details]
971090_link to path on github.html
Seems good hyunacho - the swipe issue is fixed!
I'll file a bug for the dialogues.
Thanks!
Attachment #8393875 -
Flags: ui-review?(tshakespeare) → ui-review+
Comment 58•12 years ago
|
||
Comment on attachment 8393875 [details]
971090_link to path on github.html
r- because of the potential for unbounded memory growth from saving every thumbnail ever generated. Also, there is related code that is going to need to be rebased on top of the patch for bug 949941.
Other bugs I've noticed while testing:
1) In the preview gallery, if I tap delete or share and then cancel, when I go back to the preview the buttons are gone, which seems surprising to me. I suspect that you need to add a stopPropagation() to the handlers for those buttons so that the user's click doesn't also get interpreted as a command to hide the controls
2) If I tap on the preview to bring up the buttons and the item number, I would expect those to stay permanently instead of disappearing on their own. Does the spec say that they should disappear even when I've tapped to make them visible again?
3) The patch includes these lines to allow the screen to sleep while the preview gallery is shown:
+ this.on('previewgallery:opened', lockscreen.enableTimeout);
+ this.on('previewgallery:closed', lockscreen.disableTimeout);
When I test on the nexus 4, however they don't work. While the preview is shown the screen never times out. It is possible that this is a bug in the system app and not in your patch, but please investigate.If you can verify that the release lock code in lock-screen.js is being called at the appropriate time, then we just need to file a follow up bug because something in the system is broken. But it seems more likely that something is wrong in the camera app and we ought to fix it.
4) It is possible to get trapped in the preview with no way back to camera. STR:
- take a picture
- record a video
- go to the preview gallery
- start playing the video
- while the video is playing, swipe to see the photo
- tap to bring up the controls
- notice that the controls do not appear. There is no way to get back
to the camera!
If you go back to the video, play it again, then pause, you'll get controls, but not otherwise. Swiping away a playing video needs to be treated as a video pause.
5) When I record a video in any orientation other than regular landscape, the thumbnail that appears in the circle is rotated the wrong way. I think you need to use getVideoRotation() to determine the correct orientation of the video when generating the thumbnail. See the old filmstrip code or see how it is done in Gallery.
Attachment #8393875 -
Flags: review?(dflanagan) → review-
Comment 59•12 years ago
|
||
Comment on attachment 8393875 [details]
971090_link to path on github.html
The "Play" icon needs to be removed from the thumbnail for videos as reported in Bug 986102.
| Assignee | ||
Comment 60•12 years ago
|
||
(In reply to David Flanagan [:djf] from comment #58)
> Comment on attachment 8393875 [details]
> 971090_link to path on github.html
>
> r- because of the potential for unbounded memory growth from saving every
> thumbnail ever generated. Also, there is related code that is going to need
> to be rebased on top of the patch for bug 949941.
bug 949941 didn't land into camera-new-features.
So I created new PR that merged bug 949941 patch using cherry-pick in my patch.
> Other bugs I've noticed while testing:
>
> 1) In the preview gallery, if I tap delete or share and then cancel, when I
> go back to the preview the buttons are gone, which seems surprising to me.
> I suspect that you need to add a stopPropagation() to the handlers for those
> buttons so that the user's click doesn't also get interpreted as a command
> to hide the controls
I fixed it.
> 2) If I tap on the preview to bring up the buttons and the item number, I
> would expect those to stay permanently instead of disappearing on their own.
> Does the spec say that they should disappear even when I've tapped to make
> them visible again?
It's Amy's requirements and completed to review from Amy.
Refer to Amy comments in Comment 16
> 3) The patch includes these lines to allow the screen to sleep while the
> preview gallery is shown:
>
> + this.on('previewgallery:opened', lockscreen.enableTimeout);
> + this.on('previewgallery:closed', lockscreen.disableTimeout);
>
> When I test on the nexus 4, however they don't work. While the preview is
> shown the screen never times out. It is possible that this is a bug in the
> system app and not in your patch, but please investigate.If you can verify
> that the release lock code in lock-screen.js is being called at the
> appropriate time, then we just need to file a follow up bug because
> something in the system is broken. But it seems more likely that something
> is wrong in the camera app and we ought to fix it.
I checked the 'requestWakeLock('screen')' in lock-screen.js.
The preview gallery locked/unlocked the screen lock but the screen doesn't go to sleep.
I can't find the reason in our code. I think it's better to file a bug and follow up.
> 4) It is possible to get trapped in the preview with no way back to camera.
> STR:
> - take a picture
> - record a video
> - go to the preview gallery
> - start playing the video
> - while the video is playing, swipe to see the photo
> - tap to bring up the controls
> - notice that the controls do not appear. There is no way to get back
> to the camera!
>
> If you go back to the video, play it again, then pause, you'll get
> controls, but not otherwise. Swiping away a playing video needs to be
> treated as a video pause.
I fixed it.
> 5) When I record a video in any orientation other than regular landscape,
> the thumbnail that appears in the circle is rotated the wrong way. I think
> you need to use getVideoRotation() to determine the correct orientation of
> the video when generating the thumbnail. See the old filmstrip code or see
> how it is done in Gallery.
When video recording started, the rotation is '0' in portrait mode.
But the rotate value changed to '90' after getting video meta data.
Already use getVideoRotation() in lib/get-video-meta-data.js and
I found the rotate value is changed to wrong value in MP4Parser() of shared/js/media/get_video_rotation.js
It need to check by the proper engineer.
| Assignee | ||
Comment 61•12 years ago
|
||
Attachment #8394616 -
Flags: review?(dflanagan)
| Reporter | ||
Comment 62•12 years ago
|
||
Hi Hyuna,
Just a small thing I noticed. Is the fade in/fade out menu transition speed the same for when you tap to make the menu disappear and when it disappears automatically? The transition looks faster when it disappears on it's own. If they are different, can you match the speed to the slower one?
Thanks
Flags: needinfo?(hyuna.cho82)
Comment 63•12 years ago
|
||
(In reply to hyuna.cho from comment #60)
> (In reply to David Flanagan [:djf] from comment #58)
> > Comment on attachment 8393875 [details]
> > 971090_link to path on github.html
> >
> > r- because of the potential for unbounded memory growth from saving every
> > thumbnail ever generated. Also, there is related code that is going to need
> > to be rebased on top of the patch for bug 949941.
>
> bug 949941 didn't land into camera-new-features.
> So I created new PR that merged bug 949941 patch using cherry-pick in my
> patch.
Did you modify the code to save only a single thumbnail?
> > 2) If I tap on the preview to bring up the buttons and the item number, I
> > would expect those to stay permanently instead of disappearing on their own.
> > Does the spec say that they should disappear even when I've tapped to make
> > them visible again?
>
> It's Amy's requirements and completed to review from Amy.
> Refer to Amy comments in Comment 16
Comment 16 does not actually say that. Setting needinfo for Amy to check. Amy: In preview mode, if the user taps to make the controls visible, do you want them to stay visible until the next tap, or do you want them to fade out automatically. I expect the former but currently we have the latter implemented and it feels wrong to me.
> > 3) The patch includes these lines to allow the screen to sleep while the
> > preview gallery is shown:
> >
> > + this.on('previewgallery:opened', lockscreen.enableTimeout);
> > + this.on('previewgallery:closed', lockscreen.disableTimeout);
> >
> > When I test on the nexus 4, however they don't work. While the preview is
> > shown the screen never times out. It is possible that this is a bug in the
> > system app and not in your patch, but please investigate.If you can verify
> > that the release lock code in lock-screen.js is being called at the
> > appropriate time, then we just need to file a follow up bug because
> > something in the system is broken. But it seems more likely that something
> > is wrong in the camera app and we ought to fix it.
>
> I checked the 'requestWakeLock('screen')' in lock-screen.js.
> The preview gallery locked/unlocked the screen lock but the screen doesn't
> go to sleep.
> I can't find the reason in our code. I think it's better to file a bug and
> follow up.
Okay, please file a followup bug and note the number here.
>
> > 5) When I record a video in any orientation other than regular landscape,
> > the thumbnail that appears in the circle is rotated the wrong way. I think
> > you need to use getVideoRotation() to determine the correct orientation of
> > the video when generating the thumbnail. See the old filmstrip code or see
> > how it is done in Gallery.
>
> When video recording started, the rotation is '0' in portrait mode.
> But the rotate value changed to '90' after getting video meta data.
> Already use getVideoRotation() in lib/get-video-meta-data.js and
> I found the rotate value is changed to wrong value in MP4Parser() of
> shared/js/media/get_video_rotation.js
> It need to check by the proper engineer.
If I'm understanding you correctly, you have not fixed this bug, and as far as I know you have not filed a followup bug for it, so I'm not sure why you're requesting review again. Video thumbnails work correctly in the old filmstrip code, don't they? If so, then it doesn't seem like it should be hard to make the work right in this patch. I'm the one who wrote get_video_rotation and MP4Parser, so if you have questions about those I might be able to help. Note that when you hold the phone in portrait orientation we say that the phone orientation is 0 in that case. But on most devices, the sensor is mounted at a 90 degree angle to the phone, so the video will have a 90 degree rotation recorded in its metadata. The phone orientation and the video rotation are two different values, and it is normal for them to be 90 degrees off from each other.
I'm willing to let this be fixed in a followup, but I'd prefer to just get it done in this bug, especially if the video thumbnails worked correctly in the old filmstrip code that you are replacing.
Flags: needinfo?(amlee)
Comment 64•12 years ago
|
||
Comment on attachment 8394616 [details]
PR_971090+949941
I haven't looked at the latest code, but setting r- pending clarification from Amy about when controls should time out and because it sounds like the video thumbnail orientation issue is not fixed yet.
Attachment #8394616 -
Flags: review?(dflanagan) → review-
Comment 65•12 years ago
|
||
Here's a guess about the video rotation bug. Somewhere I bet you're using the camera orientation as the rotation. Then I bet there is code that does if (!rotation) { rotation = getVideoRotation(); }
When you pass in 0 (portait mode orientation for the phone), the !rotation branch runs and you correctly parse the rotation from the video. But for all other orientations, you're passing in a number !== 0 and you just end up using that number and your video rotation is off by 90 degrees.
When creating a thumbnail for a photo, you pass in rotation and mirrored from the EXIF data. When creating a thumbanil for a video, maybe you need to leave those undefined.
| Reporter | ||
Comment 66•12 years ago
|
||
(In reply to David Flanagan [:djf] from comment #63)
> (In reply to hyuna.cho from comment #60)
> > (In reply to David Flanagan [:djf] from comment #58)
> > > Comment on attachment 8393875 [details]
> > > 971090_link to path on github.html
> > >
> > > r- because of the potential for unbounded memory growth from saving every
> > > thumbnail ever generated. Also, there is related code that is going to need
> > > to be rebased on top of the patch for bug 949941.
> >
> > bug 949941 didn't land into camera-new-features.
Hi David,
When the user taps to make the controls visible, it should fade out again if left idle. This is a common convention used in other devices (i.e android, kindle app). Also, we want to stay consistent with the behaviour pattern. When you open image preview, the menu fades out when left idle, so when the user taps to bring the menu back, it also follows the same pattern of fading out when left idle.
> > So I created new PR that merged bug 949941 patch using cherry-pick in my
> > patch.
>
> Did you modify the code to save only a single thumbnail?
>
> > > 2) If I tap on the preview to bring up the buttons and the item number, I
> > > would expect those to stay permanently instead of disappearing on their own.
> > > Does the spec say that they should disappear even when I've tapped to make
> > > them visible again?
> >
> > It's Amy's requirements and completed to review from Amy.
> > Refer to Amy comments in Comment 16
>
> Comment 16 does not actually say that. Setting needinfo for Amy to check.
> Amy: In preview mode, if the user taps to make the controls visible, do you
> want them to stay visible until the next tap, or do you want them to fade
> out automatically. I expect the former but currently we have the latter
> implemented and it feels wrong to me.
>
>
> > > 3) The patch includes these lines to allow the screen to sleep while the
> > > preview gallery is shown:
> > >
> > > + this.on('previewgallery:opened', lockscreen.enableTimeout);
> > > + this.on('previewgallery:closed', lockscreen.disableTimeout);
> > >
> > > When I test on the nexus 4, however they don't work. While the preview is
> > > shown the screen never times out. It is possible that this is a bug in the
> > > system app and not in your patch, but please investigate.If you can verify
> > > that the release lock code in lock-screen.js is being called at the
> > > appropriate time, then we just need to file a follow up bug because
> > > something in the system is broken. But it seems more likely that something
> > > is wrong in the camera app and we ought to fix it.
> >
> > I checked the 'requestWakeLock('screen')' in lock-screen.js.
> > The preview gallery locked/unlocked the screen lock but the screen doesn't
> > go to sleep.
> > I can't find the reason in our code. I think it's better to file a bug and
> > follow up.
>
> Okay, please file a followup bug and note the number here.
>
> >
> > > 5) When I record a video in any orientation other than regular landscape,
> > > the thumbnail that appears in the circle is rotated the wrong way. I think
> > > you need to use getVideoRotation() to determine the correct orientation of
> > > the video when generating the thumbnail. See the old filmstrip code or see
> > > how it is done in Gallery.
> >
> > When video recording started, the rotation is '0' in portrait mode.
> > But the rotate value changed to '90' after getting video meta data.
> > Already use getVideoRotation() in lib/get-video-meta-data.js and
> > I found the rotate value is changed to wrong value in MP4Parser() of
> > shared/js/media/get_video_rotation.js
> > It need to check by the proper engineer.
>
> If I'm understanding you correctly, you have not fixed this bug, and as far
> as I know you have not filed a followup bug for it, so I'm not sure why
> you're requesting review again. Video thumbnails work correctly in the old
> filmstrip code, don't they? If so, then it doesn't seem like it should be
> hard to make the work right in this patch. I'm the one who wrote
> get_video_rotation and MP4Parser, so if you have questions about those I
> might be able to help. Note that when you hold the phone in portrait
> orientation we say that the phone orientation is 0 in that case. But on most
> devices, the sensor is mounted at a 90 degree angle to the phone, so the
> video will have a 90 degree rotation recorded in its metadata. The phone
> orientation and the video rotation are two different values, and it is
> normal for them to be 90 degrees off from each other.
>
> I'm willing to let this be fixed in a followup, but I'd prefer to just get
> it done in this bug, especially if the video thumbnails worked correctly in
> the old filmstrip code that you are replacing.
| Reporter | ||
Comment 67•12 years ago
|
||
Hi Hyuna,
Can you please add a fade out/in transition for when the image preview button disappears and appears when you turn video recording on/off? Right now it just disappears abruptly with no transition.
Thanks!
Flags: needinfo?(amlee)
| Reporter | ||
Comment 68•12 years ago
|
||
See above. Thanks
Comment 69•12 years ago
|
||
Feedback:
- `PreviewGalleryController` is doing some very low level file-system work. IMO I think code like this should only be seen inside `Storage` class.
- `PreviewGalleryController` is touching `camera` and `controls`. I think this work should be moved to there corresponding controllers.
- Testing on the Nexus4 I noticed that that you can see images loading in the media frame (top to bottom, like images loading on a website). Looks a little unpolished. I suggest we should fade images in only once we know they are fully loaded.
Flags: needinfo?(wilsonpage)
| Assignee | ||
Comment 70•12 years ago
|
||
(In reply to Amy from comment #62)
> Hi Hyuna,
>
> Just a small thing I noticed. Is the fade in/fade out menu transition speed
> the same for when you tap to make the menu disappear and when it disappears
> automatically? The transition looks faster when it disappears on it's own.
> If they are different, can you match the speed to the slower one?
>
> Thanks
The transition speed is same when the menu fade in/out. (Comment 28)
Flags: needinfo?(hyuna.cho82)
| Assignee | ||
Comment 71•12 years ago
|
||
The screen timeout issue
Bug 987071 - [Camera] The screen doesn't going to sleep in the preview gallery
Comment 72•12 years ago
|
||
(In reply to Amy from comment #67)
> Hi Hyuna,
>
> Can you please add a fade out/in transition for when the image preview
> button disappears and appears when you turn video recording on/off? Right
> now it just disappears abruptly with no transition.
>
> Thanks!
Amy: would you file a followup bug for this? I'd like to focus on just getting this main feature landed, and we're really close to the deadline, so I'd rather Hyuna was not distracted with polish issues like this.
Updated•12 years ago
|
Flags: needinfo?(amlee)
Comment 73•12 years ago
|
||
(In reply to Wilson Page [:wilsonpage] from comment #69)
> Feedback:
>
> - `PreviewGalleryController` is doing some very low level file-system work.
> IMO I think code like this should only be seen inside `Storage` class.
Hyuna has either already fixed that, or I don't understand what you're talking about. Looks like all storage stuff is done via the storage object.
> - `PreviewGalleryController` is touching `camera` and `controls`. I think
> this work should be moved to there corresponding controllers.
Do you mean viewfinder and controls? I see that the constructor initializes properties to hold references to both of those views, but they seem to be unused. Hyuna should delete those unused properties.
> - Testing on the Nexus4 I noticed that that you can see images loading in
> the media frame (top to bottom, like images loading on a website). Looks a
> little unpolished. I suggest we should fade images in only once we know they
> are fully loaded.
This is because the Nexus 4 firmware cannot give us big enough thumbnails, so we're decoding the full-size image. There is a build-time config option (at least there was in 1.3) to change the definition of "big enough" to avoid this problem on hardware like nexus 4. In any case, this is out of scope for Hyuna's patch.
Wilson: do you think that any of your issues should prevent this patch from landing? At this late stage, I'd prefer to use followup bugs for anything that is not obvious breakage.
Flags: needinfo?(wilsonpage)
| Reporter | ||
Comment 74•12 years ago
|
||
(In reply to David Flanagan [:djf] from comment #72)
> (In reply to Amy from comment #67)
> > Hi Hyuna,
> >
> > Can you please add a fade out/in transition for when the image preview
> > button disappears and appears when you turn video recording on/off? Right
> > now it just disappears abruptly with no transition.
> >
> > Thanks!
>
> Amy: would you file a followup bug for this? I'd like to focus on just
> getting this main feature landed, and we're really close to the deadline, so
> I'd rather Hyuna was not distracted with polish issues like this.
Hi David, I've filed a new bug for this. See bug 987200. Thanks
Flags: needinfo?(amlee)
Comment 75•12 years ago
|
||
Justin,
This pull request has 4 commits that I'll squash before landing.
The first is Hyuna's latest commit.
The second is the merge commit where I resolved some merge conflicts
The fourth is a one line bug fix in storage.js that isn't really related to this patch, but I found it so I fixed it here.
The third commit is the main one I'd like you to review. It addresses the issue that Hyuna's patch was storing thumbnails forever which was a slow memory leak. This changes the architecture so thumbnails are now created by the preview gallery controller, not by the camera controller. A newthumbnail event is sent when the user takes a picture or video or when the user deletes the itme that currently has its thumbnail displayed and then closes the preview. Thumbnails re not generated until the preview closes.
Also, as part of this commit I removed the play arrow from video thumbnails. This is another patch that Hyuna had mostly done, but I'd sent it back for more chnages, so I went ahead and integrated it here. (There is a bug filed for that, so if we land this, we should close that bug, too.)
I have not verified yet that this does not break any tests. I'd appreciate it if you would check that for me as part of your review. If you think this is close, please tell me what you want changed and give a conditional r+, so I can address the points you raise and get it ready for Diego to land in the morning.
Attachment #8396051 -
Flags: review?(jdarcangelo)
Comment 76•12 years ago
|
||
Comment on attachment 8396051 [details] [review]
pull request with the thumbnail memory leak fixed
Looks good! Tested on Nexus 4 with no visible problems. However, the unit tests were very broken. I created a branch on my fork and added an additional commit to fix the unit tests here:
https://github.com/justindarc/gaia/tree/bug971090-davidflanagan
The specific commit that fixes the unit tests can be found here:
https://github.com/justindarc/gaia/commit/9ae9b275beca6f17d2f31bf638b9e384d8260376
There were a few additional "nits" that I put in the comments on the pull request. Its nothing that would hold us back landing this on camera-new-features though. If you can, apply my unit test fixes to your branch and go ahead and land on camera-new-features. You can just get the diff patch by appending ".diff" to the end of the URL above and apply it to your branch:
https://github.com/justindarc/gaia/commit/9ae9b275beca6f17d2f31bf638b9e384d8260376.diff
Attachment #8396051 -
Flags: review?(jdarcangelo) → review+
| Assignee | ||
Comment 77•12 years ago
|
||
I checked and tested with new patch.
I want to update the patch some code,
1) change event for pick activities in confirm controller because the event name changed in camera controller
- Should update. Now can't display the taken image/video in the pick activity
2) remove unused codes
3) some codes move from previewItem() to openPreview() to handle the secure mode in opening time.
https://github.com/hyunacho/gaia/commit/06bd371196c81125aa9974684a93ac9cc8d69016
Comment 78•12 years ago
|
||
Justin: thanks for reviewing and fixing the test.
Hyuna: thank you for finding and fixing the issue with the pick activity and the event name.
Later tonight I will integrate both your latest commits and get this landed to camera-new-features. Hopefully that will mean that Diego will be able to land to master in the morning.
Updated•12 years ago
|
Flags: needinfo?(dflanagan)
Comment 79•12 years ago
|
||
Landed on camera-new-features: https://github.com/mozilla-b2g/gaia/commit/a98694087619de6a9b2613fd4724d9a963091049
Updated•12 years ago
|
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Comment 81•12 years ago
|
||
Bulk edit for camera bugs.
If earlier comments do not show how this bug landed to master, it probably landed as part of https://github.com/mozilla-b2g/gaia/pull/17599 which merged the camera-new-features branch into master.
This bug was uplifted from master to v1.4 as part of https://github.com/mozilla-b2g/gaia/commit/a8190d08e61316a86bba572ba8d894d081a20530
status-b2g-v1.4:
--- → fixed
status-b2g-v2.0:
--- → fixed
Target Milestone: 1.4 S2 (28feb) → 1.4 S5 (11apr)
Updated•12 years ago
|
blocking-b2g: --- → 1.4+
Comment 82•11 years ago
|
||
The bug is no longer reproduces,visual design - Thumbnail/Preview Gallery is changed in 1.4 and master builds
1.4 Environmental Variables:
Device: Buri 1.4 MOZ
BuildID: 20140410000201
Gaia: 9b2da43dfee3792cd311ae55f0b06272313208f0
Gecko: 9d9ead7d6afa
Version: 30.0a2
Firmware Version: v1.2-device.cfg
1.5 Environmental Variables:
Device: Buri 1.5 MOZ
BuildID: 20140410040201
Gaia: 9d0b1bdf746823a94b13e6574c1d8304dc584763
Gecko: 690c810c8e3e
Version: 31.0a1
Firmware Version: v1.2-device.cfg
You need to log in
before you can comment on or make changes to this bug.
Description
•