DXF Viewer Privacy Policy
Last updated: 7 September 2026
DXF Viewer is a DXF (CAD drawing) viewer for Android that works fully offline. This policy describes, plainly and specifically, what the app stores, what it sends, where, for how long, and how to remove it. Nothing here is boilerplate - every claim below was checked directly against the app's source code and manifest.
The short version: Your drawings never leave your device - they are never uploaded, transmitted, or shared with anyone. The app does send a small number of anonymous usage events (like "a DXF file was opened," along with its DXF version, units, entity count, layer count, how many entities the app could not draw, and whether you picked it, reopened it from Recents, or opened it from another app) to a privacy-first analytics service called Aptabase, so that development effort can be aimed at the file dialects and features people actually use. These events never include your file names, file paths, layer names, or any drawing content.
What the app never does
Drawing content never leaves your device. The app's manifest declares a single functional permission, INTERNET, used solely to send the anonymous usage events described below to Aptabase. (The merged manifest also carries one signature-level self-permission that AndroidX adds automatically for its own internal broadcast receivers; it grants no access to anything of yours and is not a data-collection route.) No event ever carries a file name, a file path, a layer name, drawing geometry, or any other file content. There is no crash reporter, no ad SDK, and no other third-party SDK in the app.
No accounts. There is no sign-in, no user identifier, no device identifier collected, nothing to link your activity to you.
No browsing of your storage. The app never scans, indexes, or reads your files in the background. It only ever sees a file you explicitly choose.
How you open a file
When you tap "Open DXF," the app hands off to Android's own system file picker (the Storage Access Framework, via ACTION_OPEN_DOCUMENT). You pick a file in that system UI - a UI the app does not control and cannot see the contents of until you make a selection. Once you pick a file, Android grants the app permission to read that one file, and the app copies it into a private cache folder for its own use while viewing it.
What is stored on your device, and where
Cached drawing copies. Each file you open is copied to a per-session folder under the app's private cache directory, at a path shaped like cacheDir/dxf_viewer/drawing_<timestamp>/<filename>. This cache directory belongs exclusively to DXF Viewer - no other app can read it - and Android itself may clear it under storage pressure. The app also actively sweeps it: any session folder older than 24 hours is deleted automatically the next time the app runs.
Recent files list. To let you reopen a file without picking it again, the app remembers up to 10 recently opened files in local SharedPreferences storage (private to the app, never leaves the device). For each entry this includes: the file's display name, the content:// URI Android gave the app permission to re-read, the path to its cached copy (if still present), and the timestamp it was last opened.
App settings. Your chosen language and light/dark theme preference are also stored locally in SharedPreferences.
None of the above is ever transmitted anywhere. It exists only in the app's private storage on your device.
How to delete this data
Remove a single recent entry: in the Recent list, use the "Remove from recents" action on that file. This deletes its entry from the recent files list immediately.
Clear everything the app has stored: uninstall the app, or use Android's own Settings > Apps > DXF Viewer > Storage > Clear storage. Either removes all cached drawing copies, the recent files list, and all app preferences at once, since it is all stored under the app's private storage and nowhere else.
Third-party services
The app uses Aptabase (https://aptabase.com), a privacy-first analytics service, to record a small number of anonymous usage events. At a high level, these events cover things like the app opening, a DXF file being opened or failing to open (with basic technical stats such as DXF version and entity count), and use of a few in-app controls such as layer visibility, zoom, and theme. None of these events ever include a file name, a file path, a layer name, drawing geometry, or any other file content.
Alongside every event above, the Aptabase SDK automatically attaches a handful of coarse technical attributes: the operating system name and version (e.g. "Android 14"), the device's locale (e.g. "en_US"), the app's own version and build number, a debug-mode flag, the SDK's version string, and a randomly generated session ID that Aptabase itself rotates after an hour of inactivity. None of this is a device identifier: there is no device model, no ANDROID_ID, no IMEI, no advertising ID, and no identifier that persists across sessions or that could be used to recognize you across app installs.
Events are sent over an encrypted (HTTPS) connection to Aptabase's US region (https://us.aptabase.com) and are not linked to your identity - Aptabase does not use cookies and does not maintain a persistent user identifier. See Aptabase's privacy policy (https://aptabase.com/privacy) for details on how they handle this data.
No other third-party service is used - no crash reporter, no ad SDK, no attribution SDK.
Children's privacy
The app is not directed at children. The only data it sends anywhere is the anonymous, aggregate usage data described above, which identifies no one and is the same regardless of who is using the app.
Changes to this policy
If this app's data practices ever change, this document will be updated and the "Last updated" date above will reflect that change.
Contact
For questions about this policy, contact: Amantwd@gmail.com (mailto:Amantwd@gmail.com)