8e29072ca69229a25dc4a856e3635d131613f4ca |
|
22-Jan-2015 |
Alan Newberger <alann@google.com> |
Reduce view add/removes when loading photos Two fixes to reduce flicker when loading images. First, adjust ViewItem instances in-place instead of creating new ViewItems which included adding and removing views from the hierarchy. It turned out we were doing an update for every photo due to touching PanoramaMetadata and reporting back that metadata was adjusted, whether or not a photo was a panorama. Now that data is reported. New photo captures are essentially added and removed from the view hierarchy three times before this change, after an ImageView is added once, with its contents changed as the photo is loaded. More testing is needed but I cannot repro the elusive filmstrip flicker with these changes. Bug: 18977838 Bug: 17905863 Change-Id: I5a42c0baf87a8cef0ee4dbcf9f03d40715e6aa2d
/packages/apps/Camera2/src/com/android/camera/data/MetadataLoader.java
|
8ee16b8a323ffa20e6fb1270d498ec445f64defc |
|
18-Dec-2014 |
Paul Rohde <codelogic@google.com> |
Refactor the filmstrip backing data. - 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
/packages/apps/Camera2/src/com/android/camera/data/MetadataLoader.java
|
810b0b6c5e1539ddd94c3a268b3f03301c35998b |
|
30-Apr-2014 |
Angus Kong <shkong@google.com> |
Preload metadata for new videos. bug:14279339 Change-Id: I4733199fecc45b24abc41a241fdb5af3421f5652
/packages/apps/Camera2/src/com/android/camera/data/MetadataLoader.java
|
de3e9abaa241dc2aa66e5d02ba8b7bd35e0d8f00 |
|
17-Mar-2014 |
Sam Judd <judds@google.com> |
Best effort fix to prevent stretched videos. 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
/packages/apps/Camera2/src/com/android/camera/data/MetadataLoader.java
|
571a8c389798bd3f01429f6be34cd3e606ab34df |
|
13-Mar-2014 |
Angus Kong <shkong@google.com> |
Refactor data model. 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
/packages/apps/Camera2/src/com/android/camera/data/MetadataLoader.java
|
e2f4c03eaea059e15adf34d8782c433b1f7164dc |
|
19-Dec-2013 |
Angus Kong <shkong@google.com> |
Load metadata of LocalData on demand. 1. Metadata of LocalData is not always needed. It's more efficient to load it on demand. 2. MetadataLoader added to be responsible for loading all the metadata. 3. Metadata loading callback added in LocalDataListener. 4. The loading of the metadata and the bitmap are now all executed by the thread pool executor. bug:12216695 Change-Id: I5c75746630e9952b389f9b50416a0bb950301f33
/packages/apps/Camera2/src/com/android/camera/data/MetadataLoader.java
|