2 Information We Collect
2.1 Information You Provide Directly
All data you create within Habit Horizon is stored locally on your device inside a private SQLite
database (Room v2.8.4). We do not have access to this data. It includes:
- Habit records: name, icon, color, category notes, tracking type (Task /
Amount / Time), target value, frequency schedule, and reminder time.
- Completion logs: timestamps for each habit action recorded.
- User profile: a locally generated display name, experience points (XP), and
progression level — used solely for gamification features within the app.
- Achievement records: unlocked achievement identifiers and states.
- Dashboard configuration: tab preferences and display layout choices.
- App preferences: language selection, theme (light/dark/dynamic color), and
subscription status flag — stored in Android SharedPreferences on your device.
✅
None of the above data is uploaded to our servers or to any cloud service. It resides
entirely on your device.
2.2 Data Collected Automatically by Third-Party SDKs
Habit Horizon integrates several third-party SDKs whose own data collection practices are
described below. We do not independently control what these SDKs collect; their use is governed
by their respective privacy policies, which are linked in Section 5.
2.2.1 Google Firebase Analytics
Firebase Analytics (SDK: firebase-analytics via Firebase BOM 34.13.0) is active in the
Application. Firebase collects the following data to help us understand general usage patterns
and app performance:
- Pseudonymous device identifiers (Firebase Installation ID).
- App interaction events (screens viewed, features used — no habit content is included).
- Crash diagnostics and ANR (Application Not Responding) data.
- Approximate device locale and time zone.
- App version and Android OS version.
ℹ️
Firebase Crashlytics is not integrated. Crash data is collected only via
Firebase Analytics' built-in diagnostics.
2.2.2 Google AdMob (Advertising)
AdMob (SDK: play-services-ads v25.3.0) is integrated to display advertisements to users who have
not purchased the premium upgrade. AdMob may collect:
- Advertising ID (Google Advertising ID / GAID) to serve personalized or contextually relevant
ads.
- Approximate geographic location (derived from IP address, not GPS) for ad targeting.
- Device hardware and software information (device model, OS version, screen resolution).
- Ad interaction data (impressions, clicks, ad completion rates).
The following ad formats are implemented and active: App Open Ads,
Interstitial Ads, Native Ads, and Banner Ads.
All ads are suppressed for premium subscribers.
2.2.3 Google Play Billing
Google Play Billing (SDK: billing-ktx v9.0.0) is used to process the one-time in-app purchase
that unlocks the premium tier. When you make a purchase, payment processing is handled entirely
by Google Play. We do not collect, process, or store your payment card details, bank
information, or billing address. The Application only receives a pseudonymous purchase token to
verify premium status locally.
2.3 Data Collected via AppFunctions (AI Integration)
Habit Horizon implements Android AppFunctions (androidx.appfunctions v1.0.0-alpha09), which is an
Android 16+ platform feature that allows the Google AI system (Gemini) to interact with the
Application on your behalf. This feature is available exclusively to premium subscribers.
When AppFunctions are invoked, the following data may be shared with the Android AI system:
- Habit names.
- Habit completion timestamps and counts.
- Habit parameters (tracking type, frequency, schedule, notes) when creating a habit via AI.
⚠️
AppFunctions operate via the Android platform's on-device AI infrastructure. How Google's
Gemini processes data passed through AppFunctions is governed by Google's Privacy Policy and
Android's AI features terms. You can disable this integration by revoking Gemini's access to
Habit Horizon in your device's AI settings.
2.4 Data We Do NOT Collect
The following categories of data are not collected by Habit Horizon. Absence is confirmed through
full codebase inspection: