Status Update
Comments
ji...@google.com <ji...@google.com> #2
Thank you for reporting this issue. For us to further investigate this issue, please provide the following additional information:
Please mention the steps to be followed for reproducing the issue with the given sample apk.
Android full bug report capturing
After reproducing the issue, press the volume up, volume down, and power button simultaneously. This will capture a bug report on your device in the “bug reports” directory.
Alternate method
Navigate to “Developer options”, ensure “USB debugging” is enabled, then enable “Bug report shortcut”. Capture bug report by holding the power button and selecting the “Take bug report” option.
Screen record of the issue, for clarity
Please capture screen record or video of the issue using the following steps:
adb shell screenrecord /sdcard/video.mp4
Subsequently use following command to pull the recorded file:
adb pull /sdcard/video.mp4\
Note: Please upload the files to google drive and share the folder to
kl...@google.com <kl...@google.com> #3
Error: The intent action com.example.action (used to send a broadcast) matches the intent filter of a non-exported receiver, registered via a call to Context.registerReceiver, or similar. If you are trying to invoke this specific receiver via the action then you should use Intent.setPackage(<APPLICATION_ID>). [UnsafeImplicitIntentLaunch]
Button(onClick = { context.sendBroadcast(Intent("com.example.action")) }) {}
I wasn't aware that the explicit intent requirements from API 34 applied to broadcasts as well. I do think it would be beneficial to display this error when building the app for development, not just during the build task to produce an APK. Either way, the issue isn't an issue after all.
ji...@google.com <ji...@google.com>
ib...@google.com <ib...@google.com> #4
Thanks.
Description
Version used: 1.3
Currently there is no way to copy all the Exif information between two image files. A typical use case would be for image editors, where instead of modifying the original photo, a copy of the image is made as the output result, which is a new bitmap encoded into a jpeg.
For such scenario it is needed to copy the original Exif information into the new created image file, and perform the pertinent Exif updates only in the attributes that must reflect a change.
The current solution is as next:
for (final ExifInterface.ExifTag[] tagList : ExifInterface.EXIF_TAGS) {
for (final ExifInterface.ExifTag entry : tagList) {
try {
final String value = sourceExif.getAttribute(
if (TextHelper.isEmpty(value) == false)
targetExif.setAttribute(
}
catch (Exception ex) {
// Log ....
}
}
}
This solution avoids having to create and maintain a gigantic copy-function with all the existing Exif tags.
Unfortunately, for this solution to work the ExifIntergace.ExifTag class and ExifInterface.EXIF_TAGS need to be public, which are currently not.
So, to go around this restriction and have access to them, the ExifIntergace source code has to be included directly as part of the project, instead of using it as an AndroidX library.
The request:
Please provide a way to copy all the ExifInformation tags, maybe something like:
targetExifInterface.copy(sourceExifInterface)
or alternatively please make public both, the ExifIntergace.ExifTag class and the ExifInterface.EXIF_TAGS
Thanks