Effective date: September 28, 2026 Last updated: 2026-10-04
JuggleScroll is an app for football players. In this policy, "we" and "our" mean the person who operates JuggleScroll, named under Contact at the end. Questions about this policy, or about your data, go to jugglescroll@gmail.com.
JuggleScroll keeps almost all of its data on your phone. There is no sign-up, no analytics and no advertising. The camera is used only to detect your football during a session, on the device, and no video or images are stored or sent anywhere. The apps you choose to block stay on your phone: on iPhone as Apple's anonymous tokens, on Android as the app's own package name. Neither is ever sent anywhere.
On Android, JuggleScroll uses an Accessibility Service to do the blocking. It is told only the name of the app that has just come to the front. It cannot read the contents of your screen — not your messages, not what you type, not anything inside another app — and that is enforced by Android itself, not by a promise. See "Blocking apps on Android" below.
One thing is backed up. JuggleScroll creates an anonymous identity — no email, no password, no name attached to it — and saves the date and length of each session you win, so your streak and totals survive clearing the app's data. That is the whole of what leaves your phone. Your name, your goals, your settings and your shielded apps do not. You can delete the backup and the identity at any time with Delete my data on the You screen.
Almost everything JuggleScroll stores, it stores on your device only. The last two rows are the exception, and they are the only data it transmits.
| Data | Why | Where |
|---|---|---|
| A name you choose to enter (optional) | To address you on your own screens | On device |
| The goals you pick during set-up | Shown back to you on the You tab | On device |
| Your daily screen-time target and the level and hours you choose | To price a session | On device |
| Your drop count, the level you played and which app build detected it | Shown on your own screens and used for support | On device |
| Cards you save on the Discover tab | So they stay saved | On device |
| The time your earned screen-time allowance ends | To show the countdown and re-apply the shield | On device (and, on iOS, in the app's private shared container so the Screen Time extensions can read it) |
| Your Screen Time selection (see below) | To shield the apps you chose | On device, in the app's private shared container |
| An anonymous identity — a random identifier, with no email, password or name | So your backup belongs to someone, without asking you to sign up | On device and on our server |
| The date and length of each session you win | So your streak, session count and total juggling time survive clearing the app's data | On device and on our server |
Your session count, total juggling time, days won, current streak and best streak are all worked out from those dates and lengths. None of them is stored as a separate number on our server, because a number that can drift from the sessions behind it is worse than no number at all.
JuggleScroll does not collect your date of birth, exact age, location, contacts, photos, microphone audio, advertising identifier, or any account credentials. It has no sign-up, no password and no way to identify you as a person.
Only the device holding your anonymous identity. The identity lives in this app's storage on your phone: there is no password to recover it with, so clearing the app's data, reinstalling, or moving to a new phone means a new identity and an empty record. That is the cost of not asking you to sign up, and it means the backup protects you against clearing this app's data — not against losing the phone.
JuggleScroll asks for camera access only when you start a juggling session. Camera frames are processed on your device to detect your football and whether you are actively juggling. Frames are analysed and discarded.
The detection models run entirely inside the app.
On iPhone, JuggleScroll uses Apple's Screen Time APIs (FamilyControls, ManagedSettings and DeviceActivity) to shield the apps, categories and websites you choose, and to lift that shield for the time you earn.
Screen Time authorisation is requested for the person using the device (Apple's "individual" authorisation). JuggleScroll does not manage other people's devices.
Android has no equivalent of Apple's Screen Time API for a third-party app, so JuggleScroll does the blocking itself, using an Accessibility Service. This section explains exactly what that service can and cannot do, because it is the most sensitive permission the app asks for and you are owed the detail.
You turn it on, and you can turn it off. The service does nothing until you enable JuggleScroll in Android Settings → Accessibility. JuggleScroll explains what it will do before sending you there. You can revoke it at any time in the same place; the moment you do, nothing is blocked.
What the service is told. It receives exactly one kind of event,
typeWindowStateChanged, which fires when an app comes to the foreground and
carries that app's package name. That single fact — "the app now in front is
com.example.social" — is all JuggleScroll needs to decide whether to block.
What the service cannot do. JuggleScroll declares
canRetrieveWindowContent="false". Without that capability Android refuses the
app every request for screen content: it cannot read text, messages, passwords,
form fields or anything else inside any app, and it cannot see what you type.
This is enforced by the operating system — the requests fail at the platform,
not at our discretion. JuggleScroll also does not request the "draw over other
apps" permission.
The list of your apps. To show you a picker, JuggleScroll reads the list of
apps on your phone that have a launcher icon. It does not request
QUERY_ALL_PACKAGES, so it cannot see apps without one. This list stays on
your device and is never sent anywhere. It is used only to draw the picker.
Your choices. The apps you choose to block are stored as package names in JuggleScroll's own private storage on your phone. They are not uploaded, not attached to your backed-up sessions, and not shared with anyone. The part of JuggleScroll that does the blocking makes no network connections at all.
Not an accessibility tool. JuggleScroll uses the Accessibility API to block apps you chose, not to provide assistive features, and it is declared to Google Play on that basis.
New installs get 72 hours of the full app, free. This is not a Google Play free trial: you authorise nothing, no payment details are taken, and nothing is charged when the 72 hours end. You either choose a plan afterwards or you do not.
For that free period to mean anything, we have to be able to tell that a device has already had one — otherwise reinstalling would hand out another three days indefinitely. So when you start your free days, JuggleScroll stores two values on our server:
That is the whole record. We are not claiming this code makes your device impossible to identify: it is stable for this app on this device, which is exactly what lets it recognise a reinstall. We are telling you what it is for, and it is for one thing — deciding whether this device has already had its free days.
It is not linked to your sessions, your streak, your name, your goals, the apps you chose to block, or the anonymous identity used for your backup. The record has no field that could connect it to any of them. It is never used for analytics, advertising, cross-app tracking or profiling.
JuggleScroll's backup is hosted on Supabase, which stores the anonymous identity and the session dates and lengths described above on our behalf. It receives nothing else. As with any internet request, Supabase's servers see the network information every request carries, such as your IP address; JuggleScroll does not store it.
Subscriptions are handled by Google Play and by RevenueCat, which records whether this installation has an active subscription so the app can unlock. RevenueCat receives an identifier for the installation and the purchase status Google Play reports. It does not receive your name, your goals, the apps you block, anything from the camera, or the free-trial device code described above. Google Play's own handling of your purchase is governed by Google's privacy policy, not this one.
Nothing else is sent to any third party. The app bundles its detection models, runtime and fonts inside itself, and apart from the backup, the free-days check and the subscription check it makes no network requests during normal use.
The app is distributed through the Apple App Store on iPhone and through Google Play on Android. Apple's and Google's handling of your download, payment and device information is governed by their own privacy policies, not this one.
You control all of it:
Screen time you have already earned is not taken back when you delete your data, and your app-blocking permission is left as it is — neither of those is data we hold.
One thing is deliberately kept when you delete your data: the free-trial record described above — the pseudonymous device code and the date your three free days started. If deleting your data also deleted that record, "delete my data" would become a button that grants another three free days, and the free period would stop meaning anything.
We have kept that record as small as it is possible to make it. It is a code and a date. It is not connected to your sessions, your streak, your name, your goals, your blocked apps or your backup identity, it is not used for anything except deciding whether this device has already had its free days, and everything else about you is deleted as described above.
JuggleScroll is a general-audience app for football players and is not directed at children under 13. It does not ask for a date of birth or exact age and does not knowingly collect personal information from children.
If this policy changes, the new version will be published at the same address with a new effective date, and material changes will be noted in the app.
Operated by Kambili Okwuosa.