dimagi / commcare-android

Offline First Android software client for CommCare, the world's largest platform for designing, managing, and deploying robust mobile applications to frontline workers worldwide
https://www.dimagi.com/open-source/
Apache License 2.0
37 stars 25 forks source link

Passthrough Allow-Listed EXIF properties (GPS specifically) with resized images #2689

Open ctsims opened 1 year ago

ctsims commented 1 year ago

Bug Description

The image capture process creates a new copy of the source image without passing through any existing captured EXIF properties. This results in the loss of GPS/Geolocation data and potentially other useful EXIF properties.

Current Behavior

The captured image is saved without retaining any EXIF properties from the original image. While some EXIF properties (e.g., camera details, resolution) may no longer be relevant, important data like GPS/Geolocation is also stripped.

Expected Behavior

Captured images should retain relevant EXIF properties, particularly GPS/Geolocation data. Other common and useful EXIF properties should also be considered for retention.

Reproduction Steps

_Note: These steps assume you have basic knowledge of navigating and using the CommCare platform. If you are unfamiliar with how to perform basic setup steps, a getting started guide is available here._

  1. Create a CCHQ app that captures images.
  2. Install the app on an Android device and capture a photo
  3. Inspect the EXIF data of the saved image to verify that the GPS/Geolocation properties have not been retained.

Possible Solution

  1. Retain GPS/Geolocation Data: Modify the image capture process to retain GPS/Geolocation data from the original image.
  2. Review and Retain Other EXIF Properties: Conduct a review to identify other common and useful EXIF properties that should be retained. These may include, but are not limited to, date/time, orientation, and possibly other metadata that users may find useful.

Additional Information/Context

Keep in mind that it may not be possible to replicate the issue on all devices.

Environment details (OS name and version, etc.)

No response

kiran-tripathy commented 2 days ago

/bounty $150

algora-pbc[bot] commented 2 days ago

💎 $150 bounty • Dimagi, Inc

This issue is eligible for rewards from CommCare's Open Source Bounty Program.

Contribution Prerequisites

Before you proceed, please read through the details of the CommCare Bounty Program

  1. Make sure that you meet the eligibility criteria and have fulfilled all the requirements
  2. We recommend creating appropriate accounts and signing the CLA ahead of time if you are planning on pursuing a bounty for your open source contribution

Steps to solve

  1. Start working: Comment /attempt #2689 with your implementation plan
  2. Submit work: Create a pull request including /claim #2689 in the PR body to claim the bounty
  3. Receive payment: 100% of the bounty is received 2-5 days post-reward. Make sure you are eligible for payouts

Thank you for contributing to dimagi/commcare-android!

Add a bountyShare on socials