Last updated: 2026-08-25
Type Launcher is an Android home screen launcher. This policy describes what the app does and does not do with your data.
Type Launcher persists the following entirely on your device, in Android
SharedPreferences and the app’s private files directory:
None of this data is uploaded by the app. You can clear it at any time from Android’s Settings → Apps → Type Launcher → Storage & cache → Clear storage.
Type Launcher requests Android permissions only for features it implements locally on your device. Data accessed under these permissions is not transmitted off your device by the app.
QUERY_ALL_PACKAGES / launcher app queries): read
the list of apps installed on your device so they can be shown and
launched.READ_CALENDAR): read calendar events from your device
to render the Agenda screen and, if you turn on “Search calendar events” in
Settings, to match upcoming events in home screen search. Event data is
read on demand from CalendarContract and is never stored beyond the
in-memory state of the current session.READ_CONTACTS): requested only if you turn on “Search
contacts” in Settings, and used to show matching contacts — their names and
photo thumbnails — in home screen search. Contact data is read from
ContactsContract and is never stored beyond the in-memory state of the
current session; turning the setting off releases it immediately.WRITE_CONTACTS): requested only the first time you use
a contact’s long-press menu to favorite or unfavorite it, and used solely to
set that contact’s starred flag (ContactsContract.Contacts.STARRED) in your
contacts app. No other contact fields are read or changed by it, nothing is
sent off the device, and a denial simply leaves the contact unchanged.CALL_PHONE): requested the first time you tap Call on a
contact’s quick actions, and used solely to dial the number you chose —
either by handing it to Android’s telephony service or, if you set Settings →
“Call using” to “Ask which app”, by asking Android which of your apps should
place it. Either way the call is routed by Android’s phone subsystem and your
phone app, exactly as if you had dialed it there. If you deny the permission,
tapping Call opens your default phone app with the number pre-filled instead,
so nothing is ever dialed without the permission. The app places no calls on
its own and dials nothing you didn’t tap.EXPAND_STATUS_BAR): expand the system notification
shade when you pull down on the home screen.With your permission, Type Launcher collects anonymous crash reports and performance analytics, typically through a third-party service such as Google Firebase (for example, Firebase Crashlytics and Firebase Performance Monitoring). The specific service or services used may change over time.
These services may collect:
A short rolling buffer of non-PII diagnostic breadcrumbs describing launcher lifecycle events (for example, “cold start began”, “agenda load completed”, “app icon cache miss”). These breadcrumbs do not include your search queries or the keys you press, the names or package names of your installed apps, contact names, photos or identifiers, calendar contents or identifiers, or notification contents.
Each breadcrumb is a fixed sentence written into the app’s source, plus
values filled into it. A value is only included if its type cannot name
anything of yours — a count, a duration, a time, a setting, a yes or no.
Times are the app’s own: when a previous run of the launcher ended, and
when this build was installed or last updated, which together say whether
it disappeared because the installer was replacing it. Anything
that could identify you or something of yours is replaced with
<redacted> before the breadcrumb leaves your device, and that is the
default for every value the app does not explicitly mark otherwise. The
full breadcrumb, with the values intact, stays on your device, where you
can read it and choose whether to share it with the Report bug action.
This information is used solely to diagnose crashes and performance regressions and to improve the app. When Firebase is the provider, data is processed by Google as a sub-processor; see Google’s Firebase privacy and security documentation for details on its handling.
Type Launcher asks. Settings shows an Anonymous analytics card with Don’t allow and Allow, and the Settings gear carries a dot until you answer it one way or the other. Both services are switched off until you allow them, so nothing in this section is uploaded while the question is unanswered. Ignoring the card is therefore a complete answer on its own; you never have to act to keep it off.
To be exact about the guarantee: what is switched off is sending. Crashlytics can still write a crash record to your own device’s storage, but an unanswered question is treated as a no, so that record is discarded on the next launch rather than held for you to consent to later. A crash that happened before you answered is not sent even if you later allow — only crashes after that are.
The stored default is off, so this holds from the first launch of a fresh install onward — there is no window in which anything is sent because nobody has told the app not to yet.
Settings → Analytics turns crash reporting and performance analytics on or off at any time, and answers the question if the card is still showing. The choice persists across restarts and updates.
Turning it off — or tapping Don’t allow — also discards any crash report that has been recorded but not yet sent, so a crash that happened while it was off is not uploaded later if you turn it back on.
Turning it off does not affect the on-device debug log or the Report bug action — that report is assembled on your device, and nothing is sent until you choose an app to send it to and can review what it contains first.
Type Launcher is a general-purpose launcher utility and is not directed at children under 13. The app does not knowingly collect personal information from anyone, including children.
If this policy changes materially, the updated version will be published in this repository and the “Last updated” date at the top of this document will be revised.
For questions about this policy, please open an issue at https://github.com/mikelward/typelauncher/issues.