Skip to main content

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.

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.

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 KeyDataStore KeyTypeDefaultDescription
PauseListenHistoryKeypauseListenHistoryBooleanfalsePauses recording of new listen events. Existing history is preserved.
HistoryDurationhistoryDurationFloat (days)30How many days of listen history are retained before old entries are pruned. Configured via a slider in Player settings.

Search History

Preference KeyDataStore KeyTypeDefaultDescription
PauseSearchHistoryKeypauseSearchHistoryBooleanfalseStops saving new search queries to the local search history database.
Clearing search history is available from Settings → Privacy → Clear search history and removes all saved query strings from the local database immediately.

Screenshot Protection

Preference KeyDataStore KeyTypeDefaultDescription
DisableScreenshotKeydisableScreenshotBooleanfalseSets 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.
When DisableScreenshotKey is enabled, the app will also not appear in the Recents screen preview. This is a side effect of FLAG_SECURE imposed by Android, not a separate setting.

Statistics Period

The “My Top” statistics screen lets you filter your most-played tracks and artists by time period.
Preference KeyDataStore KeyTypeDescription
TopSizetopSizeStringMaximum number of items shown in top-plays lists (e.g. "50").
The active time window is controlled by the MyTopFilter enum (held in UI state, not a DataStore key): MyTopFilter values
ValueTime Window
ALL_TIMEAll recorded history
DAYLast 24 hours
WEEKLast 7 days
MONTHLast 30 days
YEARLast 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.
1

Open Backup & Restore

Navigate to Settings → Backup & Restore.
2

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.
3

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.
4

Import Playlists

Use Import M3U (accepts audio/* files) or Import CSV to load playlists from files created by other apps. After import, you are prompted to choose a destination playlist.
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 KeyDataStore KeyTypeDefaultDescription
EnableUpdateNotificationKeyenableUpdateNotificationBooleanShows an in-app banner when a new Tamed release is available on GitHub.
UpdateChannelKeyupdateChannelString (UpdateChannel enum)STABLEWhich release track to monitor for update notifications.
UpdateChannel values
ValueDescription
STABLEProduction releases only
NIGHTLYPre-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 KeyDataStore KeyType
GitHubReleasesEtagKeygithub_releases_etagString
GitHubReleasesJsonKeygithub_releases_jsonString (JSON)
GitHubReleasesLastCheckedAtKeygithub_releases_last_checked_atLong (epoch ms)
GitHubReleasesFingerprintKeygithub_releases_fingerprintString
GitHubContributorsEtagKeygithub_contributors_etagString
GitHubContributorsJsonKeygithub_contributors_jsonString (JSON)
GitHubContributorsLastCheckedAtKeygithub_contributors_last_checked_atLong (epoch ms)

App Language

Preference KeyDataStore KeyTypeDefaultDescription
AppLanguageKeyappLanguageString (BCP-47)SYSTEM_DEFAULTThe 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.
Tamed supports 40+ locales including English, Japanese, Korean, Vietnamese, Chinese (Simplified & Traditional), French, German, Spanish, Portuguese, Russian, Italian, Dutch, Polish, Turkish, Arabic, Hindi, Thai, Indonesian, Malay, Ukrainian, Czech, Greek, Hebrew, Hungarian, Romanian, Finnish, Danish, Norwegian, Swedish, Slovak, Bulgarian, Croatian, Serbian, Lithuanian, Latvian, and Estonian.

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 KeyDataStore KeyTypeDescription
LaunchCountKeylaunch_countIntNumber of times the app has been launched. Used to decide when to show the rating prompt.
HasPressedStarKeyhas_pressed_starBooleanWhether the user has already tapped the star in the rating prompt. Suppresses future prompts.
RemindAfterKeyremind_afterIntLaunch 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.

Build docs developers (and LLMs) love