Status Update
Comments
ni...@gmail.com <ni...@gmail.com> #2
Please include a sample project that reproduces your issue.
ra...@google.com <ra...@google.com>
an...@google.com <an...@google.com> #3
Steps to reproduce:
1. Press on "Search" icon;
2. Write something;
3. Search this text, keyboard will be dismissed;
4. Tap on "Dialog" button;
5. Dissmiss dialog;
With the new 1.5.0 fragment library version text will be cleared in the search box after dismissing dialog.
In the version 1.4.1 and lower text in the search is not clearing and this is correct behaviour.
Please suggest some workarounds or how to fix this issue?
co...@google.com <co...@google.com> #4
ni...@gmail.com <ni...@gmail.com> #5
co...@google.com <co...@google.com> #6
ni...@gmail.com <ni...@gmail.com> #7
Hello
I raised similar issue with this ticket
This makes the SearchView unusable/broken when fragments are changed (i.e base on searchView input query)
What can we do to fix this problem? What is the progress of work on solving this problem?
co...@google.com <co...@google.com>
ba...@gmail.com <ba...@gmail.com> #8
bu...@gmail.com <bu...@gmail.com> #9
Any idea on when it will be fixed?
ma...@gmail.com <ma...@gmail.com> #10
ma...@fastfieldforms.com <ma...@fastfieldforms.com> #11
Can you update regarding any progress on this issue.
lu...@gmail.com <lu...@gmail.com> #13 Restricted
hu...@gmail.com <hu...@gmail.com> #14
Please show what to write on gradle file.
nb...@a8c.com <nb...@a8c.com> #15
This has been fixed internally and will be available in the Fragment 1.6.0-alpha07
release.
ia...@googlemail.com <ia...@googlemail.com> #16
ia...@googlemail.com <ia...@googlemail.com> #17 Restricted
co...@gmail.com <co...@gmail.com> #18
au...@wonderment.com <au...@wonderment.com> #19
It says "Duplicate class found".
The IDE doesn't provide any useful explanation of what is the class that is duplicated and what to do about it.
Please help.
jo...@komoot.de <jo...@komoot.de> #20
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.fragment:fragment:1.5.6
br...@gmail.com <br...@gmail.com> #21
br...@gmail.com <br...@gmail.com> #22
@21 androidx.fragment:fragment:1.5.6 is a STABLE release. It has the fix we need. The androidx.fragment:fragment:1.6.0-alpha07 is an alpha as it says. 1.6 is "work in progress". 1.6.0 is still not a stable release. Use "alpha" only for testing
fr...@komoot.de <fr...@komoot.de> #23
bu...@gmail.com <bu...@gmail.com> #24
What we did in iNaturalist is force a file browser that then lets us retrieve EXIF metadata. But since it's just generic file browser, inside its side menu, users weren't able to choose "Google Photos" as the source of the images. So what we did was a hybrid approach -
- First, display an intent chooser - either built-in file browser or Google Photos (if installed).
- Then show the appropriate app.
Intent galleryIntent = new Intent();
galleryIntent.setType("image/*");
galleryIntent.setAction(Intent.ACTION_OPEN_DOCUMENT);
galleryIntent.addCategory(Intent.CATEGORY_OPENABLE);
Intent pickIntent = new Intent(Intent.ACTION_PICK);
pickIntent.setType("image/*");
Intent chooserIntent = Intent.createChooser(pickIntent, "Import photos from");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{galleryIntent});
startActivityForResult(chooserIntent, CHOOSE_IMAGES_REQUEST_CODE);
br...@gmail.com <br...@gmail.com> #25
ma...@fastfieldforms.com <ma...@fastfieldforms.com> #26
This whole issue and use case actually just got worse, or at least more convoluted, with the Oct. 2023 announcement of Google Play's new Photo and Video Permissions policy (
From their policy announcement:
-
October 2023: We announced the new Photos and Video Permissions policy.
-
Mid 2024: Apps with one-time or infrequent use of photos requested to use a system photo picker and remove READ_MEDIA_IMAGES and READ_MEDIA_VIDEO permissions from their app manifest.
-
Early 2025: Only apps with broad access core functionality can use READ_MEDIA_IMAGES and READ_MEDIA_VIDEO permissions.
And a couple of items from their FAQ:
What does it mean to have a one-time or infrequent use of photos or video files?
Examples of one-time or infrequent use of photos or video files include, but are not limited to, uploading a profile picture, uploading an image for a playlist, or uploading a photo of a check for banking purposes. Infrequent use infers that your app does not have a photo or video use case as its core functionality. If your app has a one-time or infrequent use case for photo or video files, you may not use the READ_MEDIA_IMAGES or READ_MEDIA_VIDEO permission, and we urge you to instead use a system picker to preserve user privacy.
What kinds of apps would need "broad access to photos?"
Apps whose core function includes editing, managing, and maintaining photo or video galleries would need broad access to photos and videos on a user’s device. These apps are commonly known as "gallery apps."
So, if an app does not meet their photo "gallery app" requirement, Google appears to want to force everyone to use this new "safe" photo picker, which intententionally redacts EXIF location detail in the spirit of user privacy and safety, even after the user has granted appropriate permissions for said data.
In our case, we migrated to the new photo picker until we realized it removes EXIF info and then switched back to our old photo picker implementation (detailed in one of the valid use case reports above). Our old implementation requires READ_MEDIA_IMAGES or READ_MEDIA_VIDEO permissions and will potentially be broken when this new policy goes into effect unless Google excepts our app as needing broad access to photos. And our app is not a photo gallery type of app, but for our users that add photos to the app (some with every single use, and sometimes several dozen or more photos) and require EXIF location data to be available with the photos, this would make our app (and likely any competing Android apps) unusable.
Hey Google, how about you let the user decide what they want to allow, and don't take the stance that users must be so dumb that you need to make the decision for them, thus breaking actual core functionality in all of these use cases. That's when you'll really have angry users, but the app developers/providers are the ones that will take the hit.
ro...@gmail.com <ro...@gmail.com> #27
Nutty approach by google IMO.
I arrive to the thread NOT as native app developer but as a prototyper looking to combine AI photo classification with EXIF/GPS parsing.
ie submit a photo -> AI and EXIF tell you what type photo ( dog or cat ) and where ( Lat/lng st. addr )
Since its generic and prototype I attempted to implement the chooser via HTML in using 2 options below :
<input type="file" accept="image/*" />
OR
<input type="file" />
opt-1 results in photo picker on Android 14/ Chrome
2nd option above results in intent dialog where you can select the camera to take photo
analyse on Android 14 re #1 or #2 above i found the following regarding Exif.gps implementation by the OS/browser:
-
-> photopicker buttons labels "Photos" or "Albums" and the 3-dot hamburger menu Photo button & Albums button result in the OS stripping GPS fields GPSLatitudeRef, GPSLongitudeRef While leaving intact numeric values for Longitude/latitude ( A BUG NOT A FEATURE ) BUT selecting the 3 dots brings up a more generic file list from which: a selected PHOTO WILL PASS ALONG ALL EXIF.GPS just fine
-
with just the type=file in the input tag, you get an intent chooser at the device level allowing you to select Camera taking a new photo. On submit of this foto all GPS data is preserved.
i filed a
ro...@gmail.com <ro...@gmail.com> #28
star the bug at the link if you care to
hy...@gmail.com <hy...@gmail.com> #29
jk...@gmail.com <jk...@gmail.com> #30
am...@googlemail.com <am...@googlemail.com> #31
ki...@gmail.com <ki...@gmail.com> #32
Do we really have to code and maintain our own photo picker library to get things like image location @Google? One would assume a modern mobile operating system would provide a streamlined way to pick photos - guess after almost 15 years this problem is still too hard to solve for the devs at google, eh? 😉
gp...@gmail.com <gp...@gmail.com> #33
ni...@gmail.com <ni...@gmail.com>
am...@googlemail.com <am...@googlemail.com> #34
st...@speakap.nl <st...@speakap.nl> #35
I believe the fix should provide an easy way to configure the picker to wipe the EXIF info OR to keep it, depending on the use case. This should be a decision that the user makes through the application.
(I don't mind if there's ALSO a per-app override either in the picker itself, or in the OS settings somewhere, so that a user can configure it for apps that are not mindful of their privacy. But then this config should be available read-only to the app, so it can inform the user and ask them to disable the override, if needed. Similar to push notifications)
ro...@gmail.com <ro...@gmail.com> #36
We believe in it!
ma...@gmail.com <ma...@gmail.com> #37
Same problem here. Our appp stores the pictures itself with location data to the gallery. But is not able to read them back later. It's annoying that there is no clear documentation and no solution to that.
to...@googlemail.com <to...@googlemail.com> #38
go...@memoriesmap.com <go...@memoriesmap.com> #39
ed...@gmail.com <ed...@gmail.com> #40
EXIF metadata from photos is critical to build this, please can this be addressed?
wi...@gmail.com <wi...@gmail.com> #41
ln...@getodk.org <ln...@getodk.org> #42
We also build a data collection app (ODK Collect) and our users expect unmodified files. I would also expect that letting the user choose whether they want to allow ACCESS_MEDIA_LOCATION
or not would allow them control over whether or not the app can read EXIF GPS info. Looking forward to a resolution here!
fe...@gmail.com <fe...@gmail.com> #43
ry...@gmail.com <ry...@gmail.com> #44
be...@gmail.com <be...@gmail.com> #45
If I simple pick the old way its working fine (ACTION_GET_CONTENT).
Btw, your fallback are also quite bad. Why?
2 out of the 3 fallbacks, ignore the EXTRA_ALLOW_MULTIPLE. And the worst problem is, that this 2 which ignore it, are the first one. So I cannot even use your fallback, because its not working like the users would expect. No, I have to check the Android version myself and then use the ACTION_GET_CONTENT way.
vi...@gmail.com <vi...@gmail.com> #46
gu...@journiapp.com <gu...@journiapp.com> #47
It is really urgent to fix this, otherwise this Google Play enforcement seems extremely anticompetitive and plain wrong. There is no privacy excuse here; you can always add the option to enable/disable location sharing in the system picker UI and let the users choose, but simply not supporting is not ok.
to...@googlemail.com <to...@googlemail.com> #48
ba...@werktools.com <ba...@werktools.com> #49
In view of the new permission policy this issue must be fixed before we can adhere to that policy.
go...@memoriesmap.com <go...@memoriesmap.com> #50
Everyone on this thread has an app that they're developing that requires location metadata, we ask users permission for this data, and Google's policy is blocking this, blocking the development of new products for our users. It is unfair and extremely Anti-competitive.
**I'd strongly recommend for everyone to read this from the EU Commissions Competition Policy:**
**And to send your own complaint to this email address:**
comp-market-information@ec.europa.eu
Perhaps they won't listen to a lone voice, but if all the app developers on this thread join together, Werktools, Memories Map, JourniApp, SpeakAp, FastFieldForms, KoMoot and Wonderment, we can get this resolved and continue to build excellent products for our users using their data that they consent to provide us with. Together we could even bring some kind of class act lawsuit against Google.
go...@memoriesmap.com <go...@memoriesmap.com> #51
br...@gmail.com <br...@gmail.com> #52
I think it would be good if somebody propose a text to send, and then we all send it the same day. Because if we send the complains 1 per month, it won’t create an impact. It should be a waterfall of inquiries in the same day.
Let’s define a text, and a day.
Is it possible to create an public “invite” file? If so, let’s create it and add it to our calendars.
Good catch, btw.
to...@googlemail.com <to...@googlemail.com> #53
go...@memoriesmap.com <go...@memoriesmap.com> #54
Send your emails on Friday 8th November to comp-market-information@ec.europa.eu
Subject: Anti-competitive behaviour from Alphabet/Google relating to photo data access
Text:
Hi there,
[INSERT THE APP / PRODUCT YOU'RE DEVELOPING AND WHY IT REQUIRES PHOTO LOCATION METADATA].
The problem is this; google has a policy which does not allow developers to get photo location data. When users take photos on their phone, it records locations usually so this data does exist, but when apps try to get this data, they strip out only the location metadata. This blocks other companies from building products with this data, and is harming my business because I require users who consent to provide me with their photo metadata.
In their own developers documentation:
Their policy states:
Do not use this API to create, train, or improve (directly or indirectly) similar or competing products or services.
There is an issue log here with Google:
My details are:
Name: YOUR_NAME
Address: YOUR_ADDRESS
Firm: Alphabet/Google
Products: Android image picker/Google Photos API/Google app developer policies
vi...@gmail.com <vi...@gmail.com> #55
ki...@gmail.com <ki...@gmail.com> #56
It's pretty crazy to think that one of the most basic features of a smartphone since 2008 (pick photos from the gallery) is still broken in 2024, 16 years later. Insane.
mm...@gmail.com <mm...@gmail.com> #57
Wouldn't it be the better and correct way to solve this by declaring the usage of the `READ_MEDIA_IMAGES' permission, as described in
Therefore, go to the Play Console -> Monitor and improve
-> Policy and programmes
-> App content
and declare the usage of the permission.
Be aware that there is deadline for doing so: 22 Jan 2025
ch...@siteplan.at <ch...@siteplan.at> #58
+1 to add capability to read EXIF data.
it's fine if it's not exposed per default, but the PhotoPicker should have the ability to prompt a permission(?) to read that data.
Description
Hello,
I'm writing an app targeting Android 13 (SDK 33) and have tested on Android 11, 12 and 13.
I'm trying to use the new photo pickerhttps://developer.android.com/training/data-storage/shared/photopicker in an app targeting SDK 33 (Android 13).
The
Uri
returned from that looks like this:content://media/picker/0/com.android.providers.media.photopicker/media/1000000082
.I am unable to retrieve GPS location data using
ExifInterface
usingAnd
MediaStore.setRequireOriginal(uri)
throws aSecurityException
with messageCalling uid does not have permission to access picker uri: content://media/picker/0/com.android.providers.media.photopicker/media/1000000082?requireOriginal=1
However when I use the
GetContent
contract instead of the new pickerThe
Uri
looks likecontent://com.android.providers.media.documents/document/image%3A1000000049
and the GPS position exists in the EXIF data.When using the photo picker API on devices where it is not yet available it switches to
Intent(Intent.ACTION_OPEN_DOCUMENT)
internally which has identical behaviour to theGetContent()
contract as well and I am able to pull GPS data.I've found that some documentation talks about the
ACCESS_MEDIA_LOCATION
permission and have tried granting any combination ofACCESS_MEDIA_LOCATION
,READ_MEDIA_IMAGE
andREAD_EXTERNAL_STORAGE
permission as well, but to no avail. It is worth noting that none of those permissions and neitherMediaStore.setRequireOriginal(Uri)
are needed when using theActivityResultContracts.GetMultipleContents()
contract.What is happening here? What is the correct way to retrieve images using the new photo picker without EXIF data being redacted? Hopefully without having to ask the user permission for "access to all images and videos" on the device, since I already have access to the image I need.