Status Update
Comments
gu...@gmail.com <gu...@gmail.com> #3
da...@gmail.com <da...@gmail.com> #4
Lists in Kotlin are not (yet) truly immutable. They're regular Java lists behind the scenes and can be mutated by casting to a Mutable list. Could that be the reason why?
an...@gmail.com <an...@gmail.com> #5
A List<T>
is not inferred as immutable because, for example, mutableListOf<T>()
is also a List<T>
. List<T>
restricts the receiver from modifying the list (e.g. it is read-only) but does not imply the list is immutable as it can change at any time through a MutableList<T>
typed reference.
Even though this is working as intended, I am keeping this issue open as we need to provide a solution here as using a List<T>
as meaning an immutable list is a common pattern.
j....@gmail.com <j....@gmail.com> #6
I tried to annotate a fun with @Stable
but apparently it had no effect on the list parameter. Is this expected?
For me it was unexpected, as I thought I could force the compiler to just accept that it's stable.
Description
A short description of the issue:
-->> When downloading an image using mediaitems.get, the image which is returned does NOT contain all of the original EXIF data that was uploaded with the image to begin with.
A small code sample that reliably reproduces the issue. The sample should run as-is or with minimal setup.
-->> GET
The calls to the API that lead to the error. Include the sequence of calls, including request headers and body.
Do not include any personal information, authentication secrets, media item or album IDs.
---Enable the API, obtain an appropriate token, such that you are then allowed to access the API.
--- use mediaitems.list to list the images in your Photos account and identify the image mediaitemid for the photo which contains EXIF data
GET
--- use mediaitems.get to retrieve the image
GET
What steps will reproduce the problem?
1. Upload an image which contains location data in the EXIF, for example by taking a photo with an Android phone while outdoors and allowing Photos to sync.
2. Use mediaitems.get to retrieve the image
3. Compare the EXIF data of your original image and the now downloaded image, note that not all of the original EXIF values are present.
What is the expected output? What do you see instead? If you see error messages, please provide them.
Expected result is that all of the EXIF fields in the downloaded image are the same EXIF fields as when the image was uploaded, except perhaps the "Device" since the photo quality may have been changed by Google Photos during the upload process.
Please provide any additional information below.
--> The fields relating to location are always missing in the downloaded image file, when they should be present, as they were present in the uploaded image.