Privacy Policy for UnlockToLearn
Last Updated: March 3, 2026
Your privacy is important to us. UnlockToLearn is designed to be a privacy-first educational app. All your flashcards, study progress, and personal content stay on your device. We collect only anonymous usage analytics to improve the app — no names, emails, or personal data.
This policy explains:
- What data we collect (and what we don’t)
- How we use it
- Your rights and controls
- Why we request certain permissions
Our Privacy Promise: We will never sell your data, track you across apps, or use your information for advertising. You own your data, and you control it.
Table of Contents
- Information We Collect
- How We Use Your Information
- Data Storage and Security
- Third-Party Services
- Permissions and Access
- Your Rights (GDPR Compliance)
- Children’s Privacy
- Changes to This Policy
- Contact Information
1. Information We Collect
A. Data Stored Locally on Your Device
UnlockToLearn stores all your study content locally on your device. This includes:
- Flashcard decks and cards — your questions, answers, and any images or audio clips you add
- Folders and organization — how you organize your decks
- Study progress — your learning statistics, review history, and answer accuracy
- Settings and preferences — app configuration including:
- Selected study decks
- Trigger settings (unlock/app launch detection)
- PIN code (if enabled)
- Sleep mode schedules
- Monitored apps list (for app launch detection)
- Import data — imported ANKI decks with associated media files
This data never leaves your device unless you explicitly create a backup.
B. Anonymous Analytics Data
We collect anonymous usage analytics to improve the app. This data is completely anonymous and cannot be linked to you personally.
Analytics are enabled by default but can be disabled at any time in Settings → Terms and Privacy → Anonymous Analytics.
What events are tracked:
Challenge Usage:
- When unlock trigger challenges appear
- When app trigger challenges appear
- When you skip challenges
- When you answer challenge cards (correct/incorrect)
General App Usage:
- App opens
- Screen visits (Statistics, Study Mode, Streak, Achievement Gallery)
- One-week retention (to measure whether the app is helpful)
Study & Practice:
- Practice mode starts — unlimited (includes card count) or timed (includes card count and timer duration)
- Practice card answers (correct/incorrect)
- Practice session completions (cards reviewed, correct count, accuracy rate, duration in seconds)
- Learning mode used (ordered, shuffled, Leitner system)
Content Management:
- Deck creation
- Folder creation
- ANKI imports (card count, deck count, presence of media, import duration)
Feature Usage:
- Trigger activations (unlock/app launch)
- Permission grants (trigger type: unlock or app launch)
- Study schedule creation
- Exam date settings
- PIN code setup
- Challenge deck selection changes (number of selected decks)
Gamification:
- Streak screen visits
- Achievement gallery visits
- Daily goal completion (points earned)
- Daily goal configuration changes (old and new goal values)
- Achievement unlocks (achievement ID only — no name or description)
- Streak milestone reached (streak length in days: 3, 7, 14, 30, 90, 180, or 365)
- Streak freeze usage (when automatically applied to preserve a streak)
User Feedback (via Settings → Send Feedback):
The following data is sent to PostHog when you submit feedback:
- Feedback type (bug report, feature request, or general)
- Your feedback message, exactly as written
- Message length (character count)
- Star rating (1–5), if you chose to provide one
- Device model, OS version, app version, and timestamp (same as Technical Data above)
No email address or personal data is collected.
⚠️ Note on feedback messages: Your feedback message is sent as written. Avoid including personal information (e.g., your name, email, or other identifying details) in the message body.
⚠️ Feedback is not affected by the analytics opt-out: If you have disabled Anonymous Analytics in Settings, feedback you explicitly submit via Settings → Send Feedback is still sent to PostHog. Feedback is a deliberate user action, not passive background tracking. The analytics opt-out only applies to automatic usage events.
Technical data included with all events:
- Device model (e.g., “Samsung Galaxy S23”)
- Operating system version (e.g., “Android 14”)
- App version (e.g., “1.0.0”)
- Event timestamps
- Session duration
What is NOT collected:
- ❌ Your name, email address, or phone number
- ❌ Device identifiers (IMEI, advertising ID, etc.)
- ❌ IP addresses (anonymized by our analytics provider)
- ❌ Location data
- ❌ Flashcard content (questions, answers, deck names)
- ❌ Search queries or user input text
- ❌ Browsing history
- ❌ Contacts, photos, or audio files from your device
C. Crash Reports and Diagnostics
UnlockToLearn does not collect crash reports or diagnostic data. If the app crashes, no information is automatically sent to us. Crashes are only logged locally on your device.
2. How We Use Your Information
Local Data
Your flashcard content and study progress are used solely to:
- Display flashcards during study sessions
- Track your learning progress using spaced repetition
- Show statistics and learning insights
- Enable spaced repetition algorithms
- Trigger flashcard challenges when you unlock your device or open monitored apps (if enabled)
Anonymous Analytics
Anonymous analytics help us:
- Understand which features are most useful
- Identify bugs and performance issues
- Improve the overall user experience
- Measure app effectiveness (retention rate, feature engagement)
This data is aggregated and cannot identify individual users.
We Do NOT:
- Sell or rent your data to third parties
- Use your data for advertising purposes
- Track you across other apps or websites
- Share personal information with anyone
3. Data Storage and Security
Local Storage
All your flashcard content is stored securely on your device using:
- A SQLite database protected by Android’s app sandbox
- Android’s secure private app storage, which is inaccessible to other apps without root access
- File-Based Encryption: On Android 7.0 and later, all app data in private storage is automatically encrypted at rest using Android OS-level File-Based Encryption (no additional encryption is applied by SQLite itself)
Cloud Storage
UnlockToLearn does not currently sync your data to any cloud service. Your data stays entirely on your device. Future versions may offer optional cloud backup with your explicit consent.
Data Retention — Local Data
Your data remains on your device until you:
- Delete individual decks or cards manually within the app
- Clear the app’s data via Android Settings → Apps → UnlockToLearn → Storage → Clear Data
- Uninstall the app (this removes all local data, including your flashcards — create a backup first if needed)
Daily statistics (points earned, cards answered, challenges per day) are automatically deleted after 90 days to prevent unlimited storage growth. This happens in the background — no action is needed from you.
Data Retention — Analytics
Anonymous analytics events are retained by PostHog (our analytics provider) for up to 7 years for long-term trend analysis. Events contain no user identifiers — no distinct ID, cookie, or device ID is assigned. Individual events cannot be linked to any person.
4. Third-Party Services
PostHog Analytics
We use PostHog (https://posthog.com) for anonymous usage analytics.
| Property | Details |
|---|---|
| Data Processed | Anonymous usage events (see Section 1B) |
| Server Location | EU (https://eu.i.posthog.com) |
| GDPR Compliant | Yes |
| Privacy Policy | https://posthog.com/privacy |
| Data Processing Agreement | Available on request |
PostHog does not:
- Track you across other apps
- Use cookies or advertising identifiers
- Share your data with advertisers
- Sell your data
Crash Reporting
UnlockToLearn does not use any crash reporting service. When the app crashes, no data is sent to us automatically.
5. Permissions and Access
UnlockToLearn requests the following permissions to provide its core functionality. All permissions are requested only when you attempt to use the feature that requires them.
Standard Permissions
Display Over Other Apps (SYSTEM_ALERT_WINDOW)
Purpose: Display flashcard challenges when you unlock your device or open a monitored app.
Data accessed: None — only displays the app’s own content over the screen.
How to manage: Settings → Unlock Trigger or App Launch Trigger → tap the permission tile → opens Android system settings. Or manually via Android Settings → Apps → Special App Access → Display over other apps.
Notifications (POST_NOTIFICATIONS, Android 13+)
Purpose: Send study reminders and break timer end notifications.
Data accessed: None.
How to manage: Android Settings → Apps → UnlockToLearn → Notifications.
Run at Startup (RECEIVE_BOOT_COMPLETED)
Purpose: Restart the unlock detection service automatically after your device reboots (if the unlock trigger is enabled).
Data accessed: None.
How to manage: Disable the unlock trigger in Settings to prevent this service from starting.
Foreground Service (FOREGROUND_SERVICE, FOREGROUND_SERVICE_SPECIAL_USE)
Purpose: Keep unlock detection running reliably in the background.
Data accessed: None. A persistent notification is shown while the service is active.
How to manage: Disable the unlock trigger in Settings.
Prevent Phone from Sleeping (WAKE_LOCK)
Purpose: Required by the audio playback library to keep the CPU active while audio card recordings are playing.
Data accessed: None. Only active while audio is being played.
Schedule Exact Alarms (SCHEDULE_EXACT_ALARM, USE_EXACT_ALARM)
Purpose: Ensure the break timer end notification fires at precisely the right time. Data accessed: None. Which permission is active depends on the Android version:
SCHEDULE_EXACT_ALARM(Android 12): Must be granted manually. Can be revoked in Settings → Apps → Special app access → Alarms & Reminders.USE_EXACT_ALARM(Android 13+): Automatically granted by the system, does not appear in app settings, and cannot be revoked.
How to manage: The break timer is only active when you manually start one.
Camera (CAMERA)
Purpose: Take photos directly in the card editor to add images to flashcard fronts or backs. Data accessed: Camera is activated only while you are actively taking a photo. The resulting image is saved locally in the app’s database — never uploaded. How to manage: Permission is requested only when you tap “Take Photo” in the card editor. You can decline and use gallery import instead.
Read Photos (READ_MEDIA_IMAGES on Android 13+ / READ_EXTERNAL_STORAGE on Android ≤12)
Purpose: Pick images from your photo gallery to add to flashcards. Data accessed: Only the specific image you select is read and stored locally. No bulk access to your photo library. How to manage: Permission is requested only when you tap “Choose from Gallery” in the card editor. You can decline and use the camera instead.
Read Audio Files (READ_MEDIA_AUDIO on Android 13+)
Purpose: Pick audio files stored on your device to add as audio clips to flashcards. Data accessed: Only the specific audio file you select is read and stored locally. No bulk access to your audio library. How to manage: Permission is requested only when you attempt to attach an audio file in the card editor.
Record Audio (RECORD_AUDIO)
Purpose: Record audio clips directly in the card editor to add spoken content to flashcards. Data accessed: Recordings are saved locally to the flashcard only — never uploaded or analyzed. How to manage: Permission is requested only when you tap on the microphone symbol (“Record Audio”) in the card editor. You can decline and use file import instead.
Sensitive Permissions
Accessibility Service (BIND_ACCESSIBILITY_SERVICE) ⚠️
Purpose: Detect when you open specific apps you have chosen to monitor (e.g., Instagram, TikTok, YouTube), so UnlockToLearn can show flashcards first — helping combat procrastination and reinforce learning.
What we access:
- ✅ App package names only (e.g.,
com.instagram.android) — to detect launches - ❌ No access to app content, passwords, or personal data
- ❌ No screen reading or text capture
- ❌ No keystroke logging
Privacy commitment: The accessibility service is only used to detect app launches by package name. We do not read screen content, capture text, log keystrokes, or access any data from other apps.
This feature is completely optional.
How to manage: Settings → App Launch Trigger → tap “Accessibility Service” → opens Android Settings → Accessibility → UnlockToLearn. Or manually via Android Settings → Accessibility.
Query All Packages (QUERY_ALL_PACKAGES) ⚠️
Purpose: Required on Android 11 and later to retrieve the list of installed apps, so you can choose which apps to monitor with the App Launch Trigger feature.
What we access: A list of installed app package names (e.g., com.spotify.music).
What we do NOT access: App data, app content, or app usage details.
This feature is completely optional. Users who do not use the App Launch Trigger are not affected.
Ignore Battery Optimizations (REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)
Purpose: Prevent Android from killing the Unlock Trigger and App Launch Trigger services in the background, ensuring challenges appear reliably.
Impact: May slightly increase battery usage when either trigger is active. Typical impact is less than 2% per day.
How to manage: Settings → Unlock Trigger or App Launch Trigger → tap “Battery optimization” tile. Or via Android Settings → Apps → Special Access → Battery optimization → UnlockToLearn. Disabling both triggers removes any battery impact.
Permission Request Timing
We request permissions only when you try to use the feature that requires them, not at app startup. For example:
- Accessibility permission: when you enable App Launch Trigger
- Display over other apps: when you enable Unlock Trigger or App Launch Trigger
- Battery optimization: when you activate reliable background detection (Unlock Trigger or App Launch Trigger)
- Camera: when you tap “Take Photo” in the card editor
- Read Photos: when you tap “Choose from Gallery”
- Record Audio: when you tap the microphone symbol (“Record Audio”) in the card editor
6. Your Rights (GDPR Compliance)
If you are located in the European Union, the United Kingdom, or another jurisdiction with similar data protection laws, you have the following rights.
Right to Access
You can view all your data at any time:
- Flashcards: Browse in the app’s home screen
- Statistics: View in the Statistics screen
- Settings: Check in the Settings screen
- Analytics: Anonymous data cannot be linked to you and therefore cannot be individually accessed
Right to Deletion
You can delete your data at any time:
- Individual cards or decks: Delete directly in the app
- All local data: Uninstall the app, or clear app data via Android Settings → Apps → UnlockToLearn → Storage → Clear Data
- Analytics: Go to Settings → Terms and Privacy → disable Anonymous Analytics to stop future collection. Past anonymous events cannot be deleted because they contain no user identifier — they cannot be linked to any individual
Right to Rectification
You can edit any flashcard content directly within the app at any time.
Right to Data Portability
Your data can be exported at any time:
- Backup: Settings → System → Backup & Restore — creates a
.utlbackup.zipfile containing all your flashcards, folders, and study progress - You can restore this backup on the same device or a different device
- You own your data entirely
Right to Object
You can object to specific data processing:
- Analytics: Settings → Terms and Privacy → Anonymous Analytics → disable
Right to Withdraw Consent
You can withdraw previously granted permissions at any time:
| Permission | How to Withdraw |
|---|---|
| Accessibility Service | Settings → App Launch Trigger → tap “Accessibility Service” → disable UnlockToLearn |
| Display over other apps | Settings → Unlock Trigger → tap “Display over other apps” → disable UnlockToLearn |
| Battery optimization exemption | Settings → Unlock Trigger → tap “Battery optimization” → enable optimization for UnlockToLearn |
| Camera | Android Settings → Apps → UnlockToLearn → Permissions → Camera → Deny |
| Read Photos | Android Settings → Apps → UnlockToLearn → Permissions → Photos and Videos → Deny |
| Read Audio Files | Android Settings → Apps → UnlockToLearn → Permissions → Music and audio → Deny |
| Record Audio | Android Settings → Apps → UnlockToLearn → Permissions → Microphone → Deny |
| All data | Uninstall the app (create a backup first if you don’t want to lose your flashcards) |
Lawful Basis for Processing (GDPR Art. 6)
| Data Type | Lawful Basis |
|---|---|
| Local flashcard data | Contract / App functionality — necessary to provide the service |
| Anonymous analytics | Legitimate interest (Art. 6(1)(f)) — PostHog is configured without a distinct_id, meaning no user identifier is assigned or transmitted. Events are fully anonymous and cannot be linked to any individual. Full opt-out is available in Settings. |
Data Protection Contact
For privacy-related concerns or GDPR requests:
Email: apps@vincentschill.ing
Subject line: GDPR Request
Response time: Within 30 days, as required by GDPR
7. Children’s Privacy
UnlockToLearn is designed for students aged 13 and older. We do not knowingly collect personal information from children under 13.
- No personal data is collected under any circumstances
- Anonymous usage analytics are collected by default but contain no personal information and can be disabled in Settings → Terms and Privacy → Anonymous Analytics
- No account creation is required to use the app
- There are no social features or in-app communication with other users
- All flashcard content stays on the child’s device and is never transmitted
Parents: If your child uses this app, please note that all study content stays on their device. Anonymous, non-identifiable usage analytics may be sent to our analytics provider unless you disable this feature in the app settings.
If you believe a child under 13 has provided personal data through the feedback form, please contact us at apps@vincentschill.ing and we will take immediate steps to address it.
8. Changes to This Policy
We may update this privacy policy occasionally to reflect:
- New features or functionality added to the app
- Legal or regulatory changes
- Improvements to our privacy practices
How you’ll be notified:
- An in-app notification when the policy changes significantly
- An updated “Last Updated” date at the top of this document
- Continued use of the app after a policy update constitutes acceptance of the revised policy
For major changes that meaningfully affect your rights, we will request your explicit acknowledgement within the app before you continue using it.
Previous versions of this policy are available upon request by emailing apps@vincentschill.ing.
9. Contact Information
For questions about this privacy policy, your data, or to exercise your rights:
Email: apps@vincentschill.ing
Website: https://apps.vincentschill.ing/unlock-to-learn/
Developer: Vincent Schilling
General inquiries: We aim to respond within 3 business days.
GDPR / data protection requests: Please use the subject line GDPR Request. We will respond within 30 days as required by law.
Applicable Law and Jurisdiction
This privacy policy is governed by and construed in accordance with the laws of the Federal Republic of Germany and applicable European Union regulations, including the General Data Protection Regulation (GDPR).
Privacy Policy for UnlockToLearn — de.froblix.unlocktolearn
Last Updated: March 3, 2026
Version: 1.1