summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/filmstrip
Commit message (Collapse)AuthorAgeFilesLines
* Limit setting photo item placeholders when session is done.Alan Newberger2015-03-091-10/+18
| | | | | | | | | | | | | | | Only add placeholders for an item visible in the filmstrip. If a session is done for an item not visible, it is less janky for the user to see the standard gray placeholder while loading the image from disk. Pruned older methods of determining filmstrip visibility, none of which worked and relied on older code assuming the camera preview was an item in the filmstrip, including 'sticky' filmstrip item bits. Added a method to CameraAppUI that proxies the FilmstripLayout visibility, which is actually what app uses to show/hide the filmstrip. Bug: 19517380 Change-Id: I5e2a61b55aa2045bfd09f495dd02cdcb9c65dc68
* Remove CanSwipeInFullScreen attribute.Paul Rohde2015-02-191-9/+0
| | | | | | | | | | This fixes the swipe guesture problem by removing the mostly unused canSwipeInFullScreen attribute on filmstrip items and checking existing usages to ensure they still work. Bug: 18948437 Change-Id: I7d8c9fba4b0cf3db6fc3d60afe37d527c0732318
* Fix filmstrip jank on N4.Paul Rohde2015-02-041-11/+0
| | | | | | | | Bug: 19164291 Bug: 19220382 Bug: 19020507 Change-Id: Id1c2011b29b1cee206593fb395d9b4a4c89e71ab
* Refactor the filmstrip backing data.Paul Rohde2015-01-073-184/+62
| | | | | | | | | | | | | | - Remove unused fields and code. - Rename classes and methods to be consistent with usage - Make data more immutable - Add Location and Metadata classes for typed data access. - Use Date instead of long for DateTime representations. - Filmstrip prefix for filmstrip specific code. - Cleaner Glide implementations. - Initialize Glide bitmap pool. - Eagerly load large image sizes when scroll stops. Change-Id: I3b51d42416ca076c80bf7db441d257659174b47d
* Introduce ActionCallback for LocalData items.Sascha Haeberling2014-10-231-1/+3
| | | | | | | | Bug: 18105354 Fixes the bug where we try to cast a context to an activity. Change-Id: I3e82a2cda5fe004768276a4d48c07d75738b2a5e
* Add maximum zoom level and time to view events.Andy Huibers2014-06-231-1/+10
| | | | | Bug: 15646701 Change-Id: I7c1de761fc10486b417a25ebc8469cebaf840a1c
* am dd9739a9: Merge "add filmstrip DPAD capabilities" into gb-ub-photos-denaliAlan Newberger2014-03-241-0/+7
|\ | | | | | | | | * commit 'dd9739a98402b8d325ec34a1a2ce743b871aa325': add filmstrip DPAD capabilities
| * add filmstrip DPAD capabilitiesAlan Newberger2014-03-241-0/+7
| | | | | | | | | | | | | | | | this CL adds left/right DPAD handling to filmstrip. If you reach the first item, the filmstrip is hidden and user is back in capture. Bug: 13589550 Change-Id: Id2b2d52da31ef65cb568ce4ef3f5cdc9384caf1f
* | Decreases jank/speeds image loading in filmstrip.Sam Judd2014-03-211-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Adds Glide, an image loading library, to handle image caching and bitmap reuse. This is working, but there are still some significant todos: 1. We're loading larger images than we need. 2. We're not aggressively cancelling loads so if you scroll far it takes longer than necessary for the image to appear. 3. Video thumbnail loading is slow (will require changes to Glide to improve). Change-Id: I01387429068451b923509f78c6d5f8ce115e74ad
* | am 48d6492c: Merge "Best effort fix to prevent stretched videos." into ↵Sam Judd2014-03-211-0/+10
|\| | | | | | | | | | | | | gb-ub-photos-denali * commit '48d6492ccc56cb7d62a30ecc1f8576dc44e25718': Best effort fix to prevent stretched videos.
| * Best effort fix to prevent stretched videos.Sam Judd2014-03-211-0/+10
| | | | | | | | | | | | | | | | | | | | To avoid increasing load times, we now only parse video headers asynchronously while the user scrolls. We make a best effort attempt to prefetch video headers while we're scrolling to avoid the layout jumping around when we update dimensions for an item that's visible to the user. Bug: 13505062 Change-Id: Ib7d7835c39d50f22f45db5673ec4c49d84b81124
* | Allow views to be reused in filmstrip.Sam Judd2014-03-181-1/+9
|/ | | | Change-Id: Ic2b8bbc251c9b19e658412ac3885a0cb83680809
* Refactor data model.Angus Kong2014-03-171-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug:13176987 bug:13410244 This refactor is to make the relationship between Controller, Model and View clearer. Now controller (CameraActivity in our case) takes the full responsibility to add/remove data. The model (CameraDataAdapter, LocalData and its subclasses) is only responsible to store the data with correct types and data structures. The view (Filmstrip) is a totally passive component who takes care of how the data is presented and define how the user can interactive with it. The session API should not be exposed to the filmstrip MVC architecture and instead we should make them as independent as possible. The controller should maintain the logics of how to interact between these components. Major changes in this CL: 1. ImageData.getContentUri() -> getUri(). The Uri is no longer a content Uri. 2. LocalDataAdapter: addNewSession() and finishSession() removed. We don't assume the session concept in data adapters anymore. 3. LocalDataAdapter: addPhotoData() removed. 4. LocalDataAdapter: addData() added (original private in CameraDataAdapter) 5. LocalDataAdapter.Listener: onNewDataAdded() removed (since it's actually triggered by the caller who is adding the data.) Session API change: CaptureSession.onPreviewUpdated() is changed to onPreviewAvailable. The module now should decide the timing to notify the availability of the preview through it. CaptureSession.updatePreview(String path) is added. Not all the module can have a preview when the session is created. Panorama/PhotoSphere creates the preview after a background processing. The preview is stored as a file and should be update to the internal preview storage through CaptureSession.updatePreview(). Change-Id: Id73c8f289bd4b3c13149da1b72c99fc6bab5849e
* Hide action bar upon filmstrip is off position.Angus Kong2014-02-261-0/+5
| | | | | bug:13184003 Change-Id: I6ad2bf2c4d0da45764907d819a5d4651a9887209
* Tweak the peek animation image size.Angus Kong2014-02-201-3/+3
| | | | | bug:12451161 Change-Id: Ie5a8a2911ed4b5ce831331ca7e7600d6d13659b7
* A test for media details.Angus Kong2014-02-201-2/+9
| | | | Change-Id: If2615de75ed555c34316686de536d3289c834e75
* Log swipes out of filmstrip.Erin Dahlgren2014-01-301-0/+5
| | | | | Bug: 12589465 Change-Id: I13b20b3e56b1ae4285ecc00ca4c2fb5a42fa75ed
* Add more filmstrip fullscreen states.Angus Kong2014-01-141-4/+18
| | | | | | | And callbacks for new state events also. bug:12468756 Change-Id: I0ebdd99f251394a871c1e050e565fc5cd1706324
* Continue the animation after the data is updated.Angus Kong2014-01-091-0/+7
| | | | | | | | | | | | | | | When the data is updated, the animation is interrupted because of the original view is replaced by the new one from the new data. We should copy the original animation and continue. Handles the condition when the last photo is deleted. Also some refinement of the codes. bug:12196441 bug:12476802 Change-Id: I2139b09bf5f958af6fa21b91e3d0c14908e1ba79
* Increase bitmap resolution when zooming in filmstripAndy Huibers2013-12-201-2/+14
| | | | | Bug:11137777 Change-Id: I6f947e2981d012c1693ef0475a2776a7e6275de5
* Refactor the photosphere/refocus metadata loading.Angus Kong2013-12-183-8/+10
| | | | | | | | | | | 1. Metadata added to allow for different attributes to describe LocalData. 2. Move the metadata loading process to image data loading. 3. LocalData.view() removed. The invocation of external viewer is moved back to the activity. bug:12197251 Change-Id: I496b018186f7a4b4818b976201703b966103a636
* A small refactor of ImageData and LocalData.Angus Kong2013-12-111-29/+1
| | | | | | | | | 1. isPhoto() removed since it's for checking if we can edit it. Use isDataActionSupported() instead since is designed for this purpose. 2. AuxInfoSupportCallback is moved to LocalData since filmstrip doesn't care about this and it's only available on the local data. Change-Id: I4eed477d6cdbe729904577b77a7ba97eed90074f
* Refactor filmstrip BottomControls out of filmstripAngus Kong2013-12-113-85/+5
| | | | | | | | | | | 1. The control logic should stay in the controller instead of the view. 2. Fix various issues. 3. Remove some unnecessary hacky checks. bug:12089863 bug:12095905 Change-Id: I6fceb5bf1a3121c45bc509f2fa96d01db2cedb5d
* Move/refactor filmstrip related files around.Angus Kong2013-12-106-115/+227
| | | | | | | | | | | | | | 1. Rename filmstrip.FilmstripDataAdapter to filmstrip.DataAdapter. 2. Rename filmstrip.FilmstripImageData to filmstrip.ImageData. 3. Move filmstrip.FilmstripListener to filmstrip.FilmstripController.Listener. 4. Add FilmstripContentPanel interface. 5. Move ui.FilmstripView to widget.FilmstripView 6. Move ui.FilmstrpLayout to widget.Filmstripview 7. Move ui.FilmstripBottomControls to widget.FilmstripBottomLayout 8. Extracted interface from widget.FilmstripBottomLayout as filmstrip.BottomControls Change-Id: I83bdd89e2a48a98002a4fed7dab011b28036d1a0
* Re-design callbacks from filmstrip.Angus Kong2013-12-092-37/+69
| | | | | | | Enumerated the possible states of filmstrip and have proper callbacks when entering/leaving each of the states. Change-Id: I5a6e931095bb0792e0832fda11d1f1b5ba850263
* Introduce common services and integrate Refocus end-to-end.Sascha Haeberling2013-11-211-6/+8
| | | | | | | | | | | | | Bug: 11120164 Bug: 10073814 This adds a new common CameraServices interface and a method to every module to get it. Through this we can expose common services and due to the interface, we can easily mock them for tests. Also makes the MediaSaveService not a service anymore. Change-Id: Ifa093efd4ba53c2955ccc2a990b4f18610c29944
* Update CL http://ag/387747Angus Kong2013-11-133-11/+10
| | | | | | Accidentally submitted the patch set 1 before uploading this one. Change-Id: Iee3c751473b67140ea07c84bdde7811b06060bb4
* Refine comments and small change of interfaces.Angus Kong2013-11-124-35/+120
| | | | | | | | 1. Use Context as possible as we can instead of the concrete implementaion Activity. 2. Update/add some comments. Change-Id: If80b2a8ab9ddeb297b8ec821568a74db4f52104f
* Further refactorAngus Kong2013-11-094-0/+412
1. Create filmstrip package. 2. Move ImageTaskManager to under package app/. 3. Adde app UI abstract layer AppUi. Change-Id: I9d640de65c59196c5d3e5c3a8901bb3220b29f62