🔎 Overview
Alone Wolf Trainer is an indoor cycling trainer app. We believe your personal data belongs to you. We do not collect, store, sell, or share any personal information on our own servers. All ride data and preferences are stored locally on your device only.
📋 Data We Collect & Where It Lives
All data the app uses is stored locally on your device and is never transmitted to us:
- Rider profile — name, age, weight, sex. Used for calorie estimation only.
- Saved routes — GPX files you import. Stored in an on-device SQLite database.
- Ride history — duration, distance, elevation, power, heart rate, and GPX track of each completed ride. Stored locally in SQLite.
- BLE device addresses — MAC addresses of your paired trainer, heart-rate monitor, power meter, and cadence sensor. Stored in device SharedPreferences so the app can reconnect automatically.
- App preferences — unit system, display settings. Stored in device SharedPreferences.
🏃 Strava Integration (Optional)
Strava sharing is entirely opt-in. Nothing is uploaded unless you actively tap "Upload to Strava" for a specific ride.
- You must log in to your own Strava account through the official Strava OAuth flow.
- When you upload a ride, only the GPX track of that individual activity (timestamp, GPS coordinates, heart rate, power, cadence) is sent to Strava.
- Your Strava OAuth token is stored securely on your device using Android EncryptedSharedPreferences.
- We do not see, log, or retain your Strava credentials or any data about your Strava account.
- You can disconnect Strava at any time via Settings → Strava → Log out.
📷 Bluetooth & Sensor Data
The app communicates with nearby Bluetooth Low Energy (BLE) devices — your smart trainer, heart-rate monitor, power meter, and cadence sensor. This communication happens entirely on-device; sensor readings are never transmitted over the internet.
🔒 App Permissions
Below is every permission the app requests and why it is needed:
| Permission | Why it’s needed | Required? |
|---|---|---|
BLUETOOTH_SCAN |
Discover nearby BLE training devices (trainer, heart-rate monitor, power meter, cadence sensor). Configured with neverForLocation — scanning is never used to derive your location. | Required |
BLUETOOTH_CONNECT |
Connect to and communicate with your BLE training devices during a ride. | Required |
BLUETOOTH_ADVERTISE |
Required on Android 12+ as part of BLE functionality. | Required |
BLUETOOTH & BLUETOOTH_ADMIN |
Legacy BLE access on Android 11 and below (SDK ≤ 30). | Required |
ACCESS_FINE_LOCATION & ACCESS_COARSE_LOCATION |
Required by Android 11 and below for BLE device scanning. Not used on Android 12+. Your location is never recorded or transmitted. | Required (Android ≤ 11) |
FOREGROUND_SERVICE |
Keeps the BLE connection alive while the screen is off during a ride so data is not lost mid-session. | Required |
INTERNET |
Used only when you explicitly upload a ride to Strava. No background data is sent. | Optional (Strava) |
🔗 Third-Party Services
The app does not include analytics SDKs, advertising networks, crash-reporting services, or any tracking libraries.
The only optional third-party interaction is Strava, documented above.
👤 Children’s Privacy
This app is not directed at children under the age of 13. We do not knowingly collect any personal information from children.
📄 Changes to This Policy
If we update this policy, the new version will be published at this URL and the “Last updated” date at the top will change. Continued use of the app after an update constitutes acceptance of the revised policy.
✉️ Contact
If you have any questions about this privacy policy or how your data is handled, please contact the developer at awf@richardlipka.com.