27a9dfb65f
Rename LIGHT GLOW to HDF EFFECT and gate it behind PRO: LITE renders the chip greyed out with a PRO tag and cannot open its slider; restoration of older settings that carry hdf > 0 still blocks export in LITE. Play/licence pass: - drop unused permissions (ACTIVITY_RECOGNITION, READ_MEDIA_AUDIO/VIDEO, SYSTEM_ALERT_WINDOW) and requestLegacyExternalStorage - rename the Leica sims to LC STREETLIFE CLASSIC/VIVID, drop the brand from comments; fix app name text, canvaskit copyright, LICENSE owner - remove expo-image-picker and expo-sensors (no JS import), delete dead exports (computeMatrixTint, cinemaSeasonName, base64 helpers, formatCoordinate) - versionCode 3 / versionName 1.2.1, drop the personal email from About - add docs/privacy-policy.html for the Play listing Size: R8 + shrinkResources + bundle compression + ABI trim, 161 MB -> 76 MB.
111 lines
5.3 KiB
HTML
111 lines
5.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>RecipesCam — Privacy Policy</title>
|
|
<style>
|
|
:root { color-scheme: light dark; }
|
|
body { max-width: 46rem; margin: 0 auto; padding: 2rem 1.25rem 4rem;
|
|
font: 16px/1.65 -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; }
|
|
h1 { font-size: 1.6rem; margin-bottom: .25rem; }
|
|
h2 { font-size: 1.1rem; margin-top: 2rem; }
|
|
.meta { color: #666; font-size: .9rem; }
|
|
code { background: rgba(127,127,127,.15); padding: .1em .3em; border-radius: 4px; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>RecipesCam — Privacy Policy</h1>
|
|
<p class="meta">Applies to the Android apps <strong>RecipesCam</strong> (com.locphamtran.recipescamera, free/LITE)
|
|
and <strong>RecipesCam Pro</strong> (com.locphamtran.recipescamera.pro, paid/PRO).<br>
|
|
Effective date: 14 September 2026 · Last updated: 14 September 2026</p>
|
|
|
|
<p>RecipesCam is a camera app: it applies film-style recipes to photos you take or pick, and saves the
|
|
result to your device. It is built and published by an individual developer ("we"). This policy explains
|
|
what the app accesses and what happens to that data.</p>
|
|
|
|
<h2>Summary</h2>
|
|
<ul>
|
|
<li>The app has <strong>no user accounts</strong> and <strong>no server of ours</strong>.</li>
|
|
<li><strong>No photo, location, or usage data is transmitted to us or to any third party.</strong> There is no
|
|
analytics, advertising, crash-reporting, or tracking SDK in the app.</li>
|
|
<li>Everything the app does — capture, processing, watermarking, saving — happens on your device.</li>
|
|
</ul>
|
|
|
|
<h2>Data the app accesses, and why</h2>
|
|
<table>
|
|
<tr><th align="left">Access</th><th align="left">Permission</th><th align="left">Purpose</th></tr>
|
|
<tr>
|
|
<td>Camera</td><td><code>CAMERA</code></td>
|
|
<td>To take photos and show the live preview. Photos stay on your device.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Photos and videos in your library</td>
|
|
<td><code>READ_MEDIA_IMAGES</code>, <code>READ_MEDIA_VISUAL_USER_SELECTED</code>,
|
|
<code>READ_EXTERNAL_STORAGE</code> (Android 12 and older)</td>
|
|
<td>To let you pick an existing photo to edit, and to show your library inside the app's picker.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Save processed photos</td>
|
|
<td><code>WRITE_EXTERNAL_STORAGE</code> (Android 9 and older) and the system media-library APIs</td>
|
|
<td>To write the processed photo and its metadata back to your gallery.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Photo location metadata (EXIF GPS)</td><td><code>ACCESS_MEDIA_LOCATION</code></td>
|
|
<td>To let a photo you imported keep its location when you export it again. Read on device only.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Your location</td>
|
|
<td><code>ACCESS_COARSE_LOCATION</code>, <code>ACCESS_FINE_LOCATION</code></td>
|
|
<td>Used only when you switch on the optional location watermark, to stamp the place name onto the
|
|
photo. Location is never collected in the background, never stored beyond the photo you asked to
|
|
geotag, and never sent to us.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Vibration</td><td><code>VIBRATE</code></td><td>Haptic feedback on shutter and controls.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Network</td><td><code>INTERNET</code></td>
|
|
<td>Present for the app's runtime, which is built on React Native. The app itself makes no network
|
|
requests and contacts no server we operate.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p>The app does not request access to your microphone, contacts, calendar, health data, SMS, call logs,
|
|
files outside your photo library, or your physical activity, and it does not use the
|
|
"display over other apps" permission.</p>
|
|
|
|
<h2>Storage on your device</h2>
|
|
<p>Your recipes, presets, favourites and app settings are stored locally in the app's private storage on
|
|
your device. Removing the app removes them. Photos you take or export live in your own gallery, under
|
|
your control; the app keeps no copy of its own.</p>
|
|
|
|
<h2>Sharing</h2>
|
|
<p>When you tap Share, the app hands the chosen photo to the app you pick through Android's standard share
|
|
sheet. What that app then does with the photo is governed by its own privacy policy. We receive nothing.</p>
|
|
|
|
<h2>Third-party software</h2>
|
|
<p>The app is built with open-source libraries (React Native, Expo, Skia, VisionCamera, and others). They
|
|
run locally inside the app and do not collect data on our behalf. Their licences and copyright notices are
|
|
listed in the app under <em>Settings → About → Open-source licences</em> and in the
|
|
<code>THIRD_PARTY_NOTICES.md</code> file shipped with the source.</p>
|
|
|
|
<h2>Children</h2>
|
|
<p>The app is not directed at children under 13 and does not knowingly collect personal information from
|
|
anyone, including children.</p>
|
|
|
|
<h2>Your rights and choices</h2>
|
|
<p>Because no personal data leaves your device, there is nothing for us to delete or export on your behalf.
|
|
You can revoke any permission at any time in Android's <em>Settings → Apps → RecipesCam → Permissions</em>;
|
|
the app will keep working minus the feature that needs it. Uninstalling the app deletes all data it stored
|
|
locally.</p>
|
|
|
|
<h2>Changes to this policy</h2>
|
|
<p>If this policy changes, the effective date above is updated and the new text is published at the same
|
|
URL before it takes effect.</p>
|
|
|
|
<h2>Contact</h2>
|
|
<p>Questions about this policy or the app: <a href="mailto:tranloclqd@gmail.com">tranloclqd@gmail.com</a>.</p>
|
|
</body>
|
|
</html>
|