Tamed is designed with privacy as a baseline, not an add-on. All listening data stays on your device in a local SQLite database; nothing is sent to Tamed’s servers. This page documents every preference key that controls what data is recorded, how long it is kept, and how to export or erase it.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/calmerism/Tamed/llms.txt
Use this file to discover all available pages before exploring further.
Listening History
Pause Listen History
Set
PauseListenHistoryKey to true to stop recording new listen events without deleting existing history. Resume at any time by toggling back.Clear Listen History
Available from Settings → Privacy → Clear listen history. Triggers a database query that irreversibly removes all
ListenEvent rows.| Preference Key | DataStore Key | Type | Default | Description |
|---|---|---|---|---|
PauseListenHistoryKey | pauseListenHistory | Boolean | false | Pauses recording of new listen events. Existing history is preserved. |
HistoryDuration | historyDuration | Float (days) | 30 | How many days of listen history are retained before old entries are pruned. Configured via a slider in Player settings. |
Search History
| Preference Key | DataStore Key | Type | Default | Description |
|---|---|---|---|---|
PauseSearchHistoryKey | pauseSearchHistory | Boolean | false | Stops saving new search queries to the local search history database. |
Screenshot Protection
| Preference Key | DataStore Key | Type | Default | Description |
|---|---|---|---|---|
DisableScreenshotKey | disableScreenshot | Boolean | false | Sets the FLAG_SECURE window flag, which prevents screen capture tools, screen recorders, and the Android system screenshot shortcut from capturing any Tamed screen. Requires the app to restart to take effect. |
Statistics Period
The “My Top” statistics screen lets you filter your most-played tracks and artists by time period.| Preference Key | DataStore Key | Type | Description |
|---|---|---|---|
TopSize | topSize | String | Maximum number of items shown in top-plays lists (e.g. "50"). |
MyTopFilter enum (held in UI state, not a DataStore key):
MyTopFilter values
| Value | Time Window |
|---|---|
ALL_TIME | All recorded history |
DAY | Last 24 hours |
WEEK | Last 7 days |
MONTH | Last 30 days |
YEAR | Last 12 months |
Backup & Restore
Tamed’s Backup & Restore screen allows you to export and import the full app state — including your library, playlists, settings, and listen history — as a binary.backup file. Playlist data can also be imported from .m3u playlists and .csv files.
Create a Backup
Tap Backup. Tamed opens the Android file picker to choose a save location. The file is named
Tamed_YYYYMMDDHHMMSS.backup by default.Restore from Backup
Tap Restore and select a
.backup file. Tamed deserializes and imports the full state. A progress indicator is shown during the operation.Backup files are opaque binary blobs managed by
BackupRestoreViewModel. They are stored entirely on your device or in whichever cloud storage location you select in the file picker — no data is uploaded to Tamed’s servers.Update Notifications
| Preference Key | DataStore Key | Type | Default | Description |
|---|---|---|---|---|
EnableUpdateNotificationKey | enableUpdateNotification | Boolean | — | Shows an in-app banner when a new Tamed release is available on GitHub. |
UpdateChannelKey | updateChannel | String (UpdateChannel enum) | STABLE | Which release track to monitor for update notifications. |
UpdateChannel values
| Value | Description |
|---|---|
STABLE | Production releases only |
NIGHTLY | Pre-release and nightly builds |
Internal GitHub Cache Keys
These keys store ETags and cached JSON from GitHub’s Releases and Contributors APIs to avoid redundant network requests. They are managed automatically by the app and should not need manual intervention.| Preference Key | DataStore Key | Type |
|---|---|---|
GitHubReleasesEtagKey | github_releases_etag | String |
GitHubReleasesJsonKey | github_releases_json | String (JSON) |
GitHubReleasesLastCheckedAtKey | github_releases_last_checked_at | Long (epoch ms) |
GitHubReleasesFingerprintKey | github_releases_fingerprint | String |
GitHubContributorsEtagKey | github_contributors_etag | String |
GitHubContributorsJsonKey | github_contributors_json | String (JSON) |
GitHubContributorsLastCheckedAtKey | github_contributors_last_checked_at | Long (epoch ms) |
App Language
| Preference Key | DataStore Key | Type | Default | Description |
|---|---|---|---|---|
AppLanguageKey | appLanguage | String (BCP-47) | SYSTEM_DEFAULT | The UI language for the Tamed interface. On Android 13+ this delegates to the system per-app language selector; on earlier versions a list picker is shown in-app. |
Rating Prompt (On-Device Only)
These internal keys power the in-app star rating prompt. They track engagement state purely on-device — no rating data, analytics events, or identifiers are sent to any server.| Preference Key | DataStore Key | Type | Description |
|---|---|---|---|
LaunchCountKey | launch_count | Int | Number of times the app has been launched. Used to decide when to show the rating prompt. |
HasPressedStarKey | has_pressed_star | Boolean | Whether the user has already tapped the star in the rating prompt. Suppresses future prompts. |
RemindAfterKey | remind_after | Int | Launch count threshold at which the rating prompt will appear again after a “remind me later” action. |
All three rating keys exist solely to time and suppress the in-app prompt. No data leaves the device, and no third-party analytics SDK is involved.
