Privacy Policy Informativa sulla privacy

Shake Flashlight & Torch (formerly / già “Shake to Enable Torch”) — Android (com.luxebyte.shaketoenabletorch)

Publisher / Editore: Luxebyte Labs · luxebytecomp@gmail.com

Effective / In vigore dal: / 25 agosto 2026 · Last updated / Ultimo aggiornamento: / 12 ottobre 2026 · Version / Versione 2.33 · App 1.7.0

What changed in this version (2.33)

  • Where we switch this on, the settings card and the startup prompt can open a nine-turn demo of our other app (no ads, no score kept); a small record stays on the device (Sections 3(a), 3(c) and 10).
  • Three new items in the statistics: the demo’s start, its end and how its turns went. The prompt’s outcome and the store link gain fixed words for the demo (Section 3(d)).
  • Where we switch this on, the card and the prompt can show our other app’s character, named in the store link and switched off on this phone after an unexpected stop (Sections 3(a), 3(c) and 3(d)).
  • Describes App 1.7.0; no new recipient or network request. Earlier changes: “Previous versions”.

1. Who is responsible for your data (Data Controller)

The app “Shake Flashlight & Torch” (formerly “Shake to Enable Torch”; Android package com.luxebyte.shaketoenabletorch, the “App”) is published by Luxebyte Labs (the “Developer”, “we”, “us”). For the limited processing described in this policy, the data controller is:

“Luxebyte Labs” is a trading name of Matteo Lamarque, an independent sole developer based in Italy. The email address above is the contact point for all privacy matters and is read by the controller personally. If you need a postal address in order to exercise a right, request it at luxebytecomp@gmail.com and it will be provided.

The Developer operates no servers and runs no backend of its own, and does not receive, store, or have access to the advertising data described in Section 3(b). That data is collected and processed by Google, our advertising provider, and by Google’s partners. The Developer’s role as controller in respect of advertising is limited to the decision to integrate advertising into the App and to determining where and how an ad may appear. Google determines the means and purposes of its own processing of advertising data and acts as an independent (and, where applicable, joint) controller for that processing.

2. Scope of this policy

This policy applies only to the “Shake Flashlight & Torch” Android App distributed through the Google Play Store. It does not cover any other product, website, or third-party service except as expressly described here (in particular Google’s advertising services).

This policy describes version 1.7.0 of the App (the “current version”). Earlier versions do not have every feature described here. Where an earlier version that is still in use collects or keeps information that version 1.7.0 does not, or collects it in a different form, this policy says so and names that version by number, for example “versions earlier than 1.4.0”.

The App is distributed globally and its interface is localized into 17 languages. This English text is the primary version; a faithful Italian translation of equal completeness is provided on this same page (“Informativa sulla privacy”).

Updates to this policy

We may update this policy, for example if the App changes or if legal requirements change. When we make a material change, we will update the “Last updated” date above and publish the new version at the same web address where you found this policy, before or at the time the change takes effect. Where a change concerns advertising consent, you may be asked again through the in-app consent mechanism (see Section 7). Continued use of the App after an update takes effect means the updated policy applies to you; if you do not agree, you can stop using the App and uninstall it. The box at the top of this policy summarises what this version of the policy changed, and the appendix at the end keeps the record of earlier changes.

3. What data is processed

The App processes four separate categories of data: data that remains on your device, apart from Android’s own backup into your Google Drive (Section 3(a)); advertising data, collected by Google and never received by the Developer (Section 3(b)); a single request for a static file, which carries no information about you but necessarily discloses the IP address it is sent from (Section 3(c)); and a limited set of counts and category values describing how reliably the App is working, which in the EEA, the UK and Switzerland is collected only if you consent, and which can be switched off at any time everywhere else (Section 3(d)).

3(a) — Data kept on your device, never transmitted to us

To provide its features, the App stores a small amount of information locally on your device only, using Android’s standard SharedPreferences storage. This includes:

  • your shake counts (how many times the App has detected a shake);
  • your daily streak (consecutive-day usage counter);
  • your achievements (in-app milestones you have unlocked);
  • your block mini-game progress, if you used the block mini-game that versions of the App earlier than 1.4.0 contain: your best score, and how many rounds you finished. Version 1.4.0 and later do not contain the block mini-game and do not write to this record; a record already on your device stays there until you clear the App’s data or uninstall the App;
  • your settings and preferences, such as shake sensitivity, the theme (light/dark) you have chosen, and whether the phone vibrates on a shake or a tile tap (the “Vibrate on shake” option);
  • how many times the tutorial has raised your sensitivity setting to make shaking easier on this installation — a number from 0 to 2, kept so that reopening the tutorial can never raise it further. It is never sent. The tutorial raises the sensitivity setting by one step, which a fixed rule works out from the current setting, so that a lighter shake is enough, when a shake falls just short of your threshold more than once while it is open, or when you tap its “Make it easier” button; it takes at most two such steps on an installation, never goes past a fixed limit, and says so on screen;
  • a short record that lets the App make shaking easier by itself. If you have never moved the sensitivity slider and your shakes keep falling just short of the threshold on several occasions over at least two different days, the App raises the sensitivity setting by one small step (on the slider, from 100 to 110), so that a slightly lighter shake is enough, and at most by one more step a day or more later (from 110 to 120): never more than two steps per installation and never past 120. The App never undoes its own steps, and if you move the slider afterwards, your choice stays and the App makes no more of these steps. It says so once, under the slider. To decide, it keeps: for up to the last five times within the last 14 days that the App saw the phone being shaken (whether or not the flashlight lit), when each started (the time and the date on your phone) and whether your shakes fell short; for the time in progress, how many shakes fell short and how many of those came close, how many worked, whether the light was turned on soon after a shake fell short, and when they happened; the sensitivity value all of this was collected at; how many times it has raised your sensitivity by itself (a number from 0 to 2) and when it last did; and whether the note under the slider is still to be shown. The record therefore holds times of use. Entries older than 14 days stop counting and are deleted the next time the App records a shake, and all the entries, with their counts and the sensitivity value they were collected at, are deleted whenever the sensitivity value changes. How many steps the App has taken, when it took the last one (itself a time of use) and whether the note under the slider is still to be shown are deleted by neither rule: they are kept until you clear the App’s data or uninstall the App, so that the App never takes more than two steps, never takes the second less than a day after the first, and shows its note until you have seen it. The record is never sent. Android’s Auto Backup, described below, copies it with the other settings, these three items included;
  • whether you have ever moved the sensitivity slider on this installation — a single yes or no, set the first time you yourself set a different value, with a slider, the “Harder shake” or “Lighter shake” button, or “Reset”, and never unset. Versions earlier than 1.4.1 do not record this. On an installation that already existed before version 1.4.1, a move made with one of those versions counts only if it left the slider on a value other than 100, and it stops counting if the tutorial raises the setting before you move the slider again; where it does not count, the App’s own steps described above can apply. It records no history beyond that: not when you moved it, not how often, and not what it was before;
  • one letter for the video offer, drawn at random on the device once, and never derived from anything about you. In version 1.5.0 it decides which of the two versions of the video offer this installation gets; in version 1.6.0 and later it decides nothing: those versions draw it once for every installation that does not have one yet, and send it as it is, so that the statistics can tell installations apart by the letter they were given, including those that took part in the comparison of version 1.5.0. Android’s Auto Backup, described below, copies it with the other settings;
  • in version 1.5.0 and later, one letter that says whether this installation gets the flashlight button in the top bar, a button that switches the flashlight on or off with one tap, requires no additional permission and involves no advertisement. The letter is decided once, at the first opening on version 1.5.0 or later: an installation whose first ever opening is on version 1.5.0 or later gets one letter and, if the phone runs Android 6 or later and has a flashlight, sees the button; an installation that already existed before gets another letter and never sees it. Whether the installation is new is decided on the device from Android’s own record of when this App was installed and last updated, and from whether the App had been opened before; those times are read on the device only and never sent. The letter is derived from nothing about you beyond whether this installation existed before version 1.5.0. Android’s Auto Backup, described below, copies it with the other settings;
  • in version 1.6.2 and later, one word that says whether this installation was first opened on version 1.6.2 or later, or existed before. The word is decided once, on the device, at the first opening on version 1.6.2 or later, from the same facts as the flashlight-button letter: whether the App had been opened before, whether it had already reported the capabilities of the device’s motion sensor (Section 3(d)), and Android’s own record of when this App was installed and last updated. It is one of the facts the App uses to decide whether to lower the shake threshold, as described in the next item. It is never sent. Android’s Auto Backup, described below, copies it with the other settings;
  • in version 1.6.2 and later, one yes or no that records whether the motion sensor has produced readings more than one tenth stronger than 4 g in two separate movements while the rule described here applied to this installation: it is set to yes when readings more than one tenth stronger than 4 g (above about 43 m/s²) arrive in at least two separate movements, and readings that the motion sensor delivers late from its own buffer do not count. Once set to yes, it stays set. It serves the following rule, whose purpose is to let a shake register on phones whose motion sensor may be unable to measure a shake of the default strength. Some phones report that the largest acceleration their motion sensor can measure lies just below the App’s default shake threshold, between 37 and about 39.4 m/s². On an installation first opened on version 1.6.2 or later, where the phone reports such a value, the App lowers the shake threshold to nine tenths of that largest value, at every sensitivity setting that would otherwise ask for a stronger shake than that; easier settings are unchanged. Where that lowering does not apply, the App reads the phone’s model name, as Android reports it, on the device and compares it with a fixed list of phone models built into the App. On an installation first opened on version 1.6.2 or later, a phone whose model is on that list gets the same lowering, with the threshold set at nine tenths of 4 g, in two cases: where the phone reports no usable value for the largest acceleration its motion sensor can measure; and, where we switch this on through the file described in Section 3(c), whatever value the phone reports. The App does not send the model name for this purpose. If, while this rule applies, the motion sensor produces readings more than one tenth stronger than 4 g in at least two separate movements, the App returns to the usual threshold for your sensitivity setting, stops lowering it on this installation, permanently, and records that fact in this yes or no. We can switch this rule off for every installation through the same file. The yes or no records nothing else and is itself never sent; the statistics in Section 3(d), where they are active, say whether the rule has stopped for good on this installation. Android’s Auto Backup, described below, copies it with the other settings;
  • in version 1.7.0 and later, where the App offers the short demo of our other app described in Section 3(d), a small record for that demo: the local day and how many demos were started on that day; how many demos have been started and how many finished in total; the time at which a demo in progress started, and its number; and one yes or no that turns the demo off on this phone after the demo has crashed or frozen. The App uses it to offer the demo only a limited number of times a day and in total, and to tell how a demo ended when the demo itself could not say. The record therefore holds times of use. It is never sent, and it is not deleted by date: the start time of a demo is cleared when that demo has ended, and the rest is kept until you clear the App’s data or uninstall the App. Android’s Auto Backup, described below, copies it with the other settings;
  • in version 1.7.0 and later, where we switch on the version of the promotion with our other app’s character described in Section 3(c), one yes or no that turns that version of the promotion off on this phone after the App has stopped unexpectedly while that version was on screen, for example because of a crash or a freeze. So that the App can tell, it keeps a marker while that version is on screen and deletes the marker when you leave the screen. The yes or no and the marker are empty files in the App’s own storage and hold nothing else. They are never sent, and the yes or no is kept until you clear the App’s data or uninstall the App. Android’s Auto Backup, described below, copies them as well.

The App never sends this data anywhere as the values you see, with two exceptions stated here and nowhere else: Android’s own backup, described in this Section, and the values described in the carve-out in Section 3(d) — which, alone in this list, are sent: the sensitivity setting, as a coarse band and, in version 1.4.1 and later, also as the value you see, together with whether you have ever moved the slider; the video-offer letter, as it is; in version 1.5.0 and later, the letter that says whether this installation gets the flashlight button in the top bar, as it is; in version 1.5.0 and later, your shake count, only as a coarse band sent with three items about the promotion of our other app; and, in versions earlier than 1.4.0, roughly how many mini-game rounds you have finished, as a coarse band. The data is never transmitted to the Developer, who has no servers to receive it, and is never sold or shared with anyone. It remains under your control: uninstalling the App, or clearing the App’s storage/data in Settings → Apps → Shake Flashlight & Torch → Storage (on a phone set to another language, the App’s name in that language), deletes it.

First exception: Android’s own backup. The App leaves Android’s standard Auto Backup enabled, which is the platform default. If device backup is turned on in your Android settings, Android — not the App — copies the App’s stored preferences to your own Google Drive, and includes them when you transfer to a new phone. That copy is not limited to the list above: it includes every preference the App holds on the device, which also covers the cached copy of the file described in Section 3(c) and the preferences written by Google’s advertising and consent components — among them the record of the advertising-consent choice you made in the consent form described in Section 7. The copy leaves your device and is held by Google under your own Google account, and it is the one way the data in this Section 3(a) is transmitted at all. The Developer cannot see it, reach it, or ask for it: app backups are not accessible to app developers, we operate no servers, and we receive nothing from it. The backup is controlled by you alone — you can turn backup off, or delete this App’s backup, in Settings → Google → Backup.

Second exception: the carve-out for the statistics. Where the usage and reliability statistics described in Section 3(d) are active — in the EEA, the UK and Switzerland only if you consent, and elsewhere only until you turn the in-app switch off — three of the values above are also sent: the sensitivity setting, the video-offer letter, and, in version 1.5.0 and later, the letter that says whether this installation gets the flashlight button in the top bar. The sensitivity setting is sent as a coarse band — which quarter of the slider you are on — and, in version 1.4.1 and later, also as the exact position of the slider, a whole number from 5 to 150, together with whether you have ever moved that slider on this installation, as a simple yes or no. That number is the setting itself — the one you chose, or one the tutorial raised for you, in steps set by a fixed rule, after a shake fell short, or one the App raised by itself, in at most two small steps, after your shakes fell short on several days — and nothing more: it is not a measurement of you and, beyond that a shake fell short, or that shakes fell short on several days (which the counts in Section 3(d) already say), it says nothing about how, when or how hard you shake. Google’s SDK may also record, and upload with it, the time at which the App last set it, which is always a moment you were using the App, such as a shake after which the tutorial or the App raised the setting. It is sent so that we can choose a better starting sensitivity for each model of phone. The video-offer letter is sent as it is, as one of two values drawn at random on the device, and says nothing about you. In version 1.5.0 it is sent so that we can compare the two versions of the offer; in version 1.6.0 and later it does not decide which version an installation gets, it is drawn for every installation that does not have one yet, and it is sent so that the statistics can tell installations apart by the letter they were given, including those that took part in that comparison. The flashlight-button letter is sent as it is too, as one of two values: one for an installation first opened on version 1.5.0 or later, which gets the button, and one for an installation that existed before, which does not. It is sent so that we can check that the button reaches only new installations, and see how it is used. It says which of the two the installation is, not whether the button is on your screen, and nothing about you beyond whether this installation existed before version 1.5.0. Versions of the App earlier than 1.4.0 also send, as a band in the same way, roughly how many mini-game rounds you have finished; version 1.4.0 and later do not send it. Your best score, your streak and your achievements are not sent in any form. Your shake count is not sent as it is: in version 1.5.0 and later it is sent only as one of seven coarse bands, with three items about the promotion of our other app (Section 3(d)). Apart from Android’s backup and that carve-out, nothing in this Section 3(a) leaves your device, except that, in version 1.6.2 and later, the statistics in Section 3(d), where they are active, also say whether the rule that lowers the shake threshold, described above, is in force on this installation or has stopped for good on it.

The App also reads your device’s accelerometer (motion sensor) through a foreground service in order to detect shaking. Where the device provides them, it additionally registers the proximity, tilt, wake-gesture and pick-up-gesture sensors (or a manufacturer’s equivalent of them). These sensors are used only as a signal that the device has been picked up or moved, so that shake detection can be restarted after Android has suspended it; they are not used to observe you. The App does not use the proximity sensor to determine where the device is or what is near it.

All of these readings are processed transiently on the device to decide whether to toggle the flashlight; they are not recorded, stored, profiled, or transmitted. No sample, trace or magnitude of any of them leaves your device in any form. Some values derived from them can: the shake counts and streak, the short record the App uses to make shaking easier by itself, how many times the tutorial has raised your sensitivity setting, and the sensitivity setting itself, which can be a value that the tutorial or the App raised after shakes fell short, and, in version 1.6.2 and later, the yes or no that records whether the motion sensor has produced readings more than one tenth stronger than 4 g in two separate movements while that rule applied to the installation, all listed above, leave by the Android backup route described immediately above — into your own Google Drive, never to the Developer — and, where the statistics in Section 3(d) are enabled, what may be sent is a banded count of how many shakes were detected during a window and a three-way comparison of the strongest reading in that window against your shake threshold (below / near / above); banded counts of the movements that looked like a shake but stayed under that threshold, and of how many of those a working shake followed, with one of two bands for how close the strongest of them came; a sensitivity value that the tutorial or the App raised after shakes fell short; and, in version 1.6.2 and later, whether the rule that lowers the shake threshold, described above, was in force on this installation or had stopped for good on it when the statistics were sent, and a five-way comparison of the strongest reading in a window with the limits of the motion sensor — never a sample, never a trace, never a magnitude. Nothing that leaves your device could reconstruct your movement, and neither could the coarse band of how many shakes the App has counted in total on this installation that, in version 1.5.0 and later, is sent with three items about the promotion of our other app.

If you enable the option to stop the torch during phone calls, the App requests the Android phone-state permission (android.permission.READ_PHONE_STATE) and then observes whether a call is ringing, in progress, or finished, and nothing more. It does not read your phone number, your call history, your contacts, or who is calling. The state is read transiently on the device, for the sole purpose of not leaving a torch on during a call, and is never profiled and never transmitted to us.

In version 1.4.1 and later, the App does not store when a call paused it: it does not write that value, and it clears a value left by an earlier version the next time the App starts. Versions of the App earlier than 1.4.1 keep on the device the time at which a call-related pause began. Apart from that value, all the App keeps is whether a call is in progress while the App is running — held in memory only, never written to the device, never included in the Android backup described above, and never sent to the Developer. It records nothing about the call itself — no number, no direction, no duration, no identity.

The permission is requested at the moment you enable that option, not at install time, and the feature is optional: if you refuse the permission, or leave the option off, the rest of the App is unaffected. You can withdraw the permission at any time in Settings → Apps → Shake Flashlight & Torch → Permissions.

So that shake detection keeps working on devices whose manufacturer shuts background apps down, the App registers a device-local account named “Shake to Torch (keep-alive)”, visible in Settings → Accounts. It holds no credentials and no data, it is not linked to any online account, and nothing is ever synchronised through it: Android’s sync scheduler is used solely as a periodic prompt for the App to check whether its own flashlight service is still running. Uninstalling the App removes it.

3(b) — Advertising data, collected and shared by Google (AdMob)

The App shows advertising supplied by the Google Mobile Ads SDK (Google AdMob). The App uses a single advertising format: a rewarded video that you choose to watch. No advertising is shown that you did not request.

Rewarded video ads — opt-in, shown only at your request

A rewarded ad is never played on its own: the App states that an ad is involved, and the ad plays only if you confirm. Depending on which of the App’s optional features are enabled for your device (see Section 3(c)), there are up to five such placements:

  • the achievements gallery — tapping to view your achievements may first offer you a short video;
  • the dark theme — switching the dark theme on, from the button in the top bar or from the “Dark theme” switch in the settings list, may first offer you a short video (switching it off is always free). The two are one setting: a video watched for either unlocks both for the same five minutes;
  • repairing a broken daily streak — where your daily streak has recently been broken, the App may offer you a short video to restore it;
  • “Ignore shakes while you’re on a call” — switching that option on may first offer you a short video (switching it off is always free, and an option you already have switched on is unaffected);
  • “Vibrate on shake” — switching that option off may first offer you a short video (switching it back on is always free). With the option off, the App does not vibrate the phone for a shake, a tile tap or a new achievement, and posts the achievement notice without sound or vibration; your Android notification settings are not changed.

Versions of the App earlier than 1.4.0 have one further such place, the block mini-game’s “continue”: when a round ends, you may be offered one short video in exchange for one extra life.

These ads are never auto-played and can always be declined; declining leaves the App fully usable. Declining means only that you do not open that screen, change that setting or restore that streak at that moment; if you accept but the ad cannot in fact be shown, the App grants what you asked for without it.

No other advertising format

The rewarded video described above is the only advertising format the App contains. The App shows no banner ad, no full-screen interstitial, no app-open ad and no native ad, on any screen.

Every advert in the App is therefore one you initiated: nothing plays by itself, nothing occupies part of the screen while you use the App, and declining every offer leaves the App fully usable.

Ad requests made in advance. So that an ad is ready at the moment you ask for one, the App asks Google’s SDK to fetch one in advance, in the background, while a screen that can offer one is open. That fetch is an ad request, and it is what sends the advertising data listed below. It therefore takes place whether or not you go on to accept the offer, and even if no ad is ever shown to you. Your choice controls whether an advert is displayed to you and whether you receive the reward — not whether an advert was requested for you.

No ad is requested, and no advertising identifier is read, until the consent step described in Section 7 has been resolved and the remote advertising switch described in Section 3(c) has been read. If the switch cannot be reached, the App follows its last copy of it, and with no copy at all treats advertising as switched on.

To serve these ads we use the Google Mobile Ads SDK (Google AdMob). When an ad is requested and shown, Google and its advertising partners collect and process the following categories of data for the purposes of serving ads, measuring ad performance, and preventing fraud and abuse:

  • the Android Advertising ID (AAID) — a resettable advertising identifier;
  • the app-set ID — an identifier scoped to apps from the same developer;
  • your IP address;
  • device and diagnostic information (e.g. device model, OS version, language/region, and similar technical data);
  • your interactions with ads (e.g. whether an ad was shown, viewed, or clicked).

This advertising data is collected by and shared with Google and Google’s advertising partners. The Developer does not receive it. Because Google’s advertising infrastructure is global, this data may be processed on servers located outside the EU/EEA, including in the United States (see Section 6).

If you do not consent (where consent is required — see Section 7) or you opt out, the App still works fully; you will not be served personalized ads, and in regions where consent is required no ad identifiers are used without your consent.

So that Google can read the advertising identifier listed above, the App declares the Android Advertising ID permission (com.google.android.gms.permission.AD_ID). The permission is declared expressly in the App’s manifest rather than inherited from the SDK, and it grants access to that identifier and to nothing else.

3(c) — One request to a static file, so ads can be switched off without an update

The App fetches a single small text file from a fixed address:

https://matteomark.github.io/ads-flag.txt

It does so at most once a day. The App keeps its own copy of the file and re-uses that copy for a day before requesting a fresh one, so opening the App repeatedly does not repeat the request.

The lines in that file state whether advertising is enabled at all, and which of the App’s optional features are enabled individually: the dark-theme rewarded ad and the promotion of our other app; in version 1.5.0 and later, also the version of the video offer that does not wait (Section 3(d)); in version 1.6.0 and later, also the App’s own raising of the sensitivity setting to make shaking easier (Section 3(a)), the rule that stops a single shake from switching the flashlight twice, and the rule that the promotion of our other app waits until the flashlight is off; in version 1.6.2 and later, also the lowering of the shake threshold described in Section 3(a), and its use on the phone models listed in the App; in version 1.6.3 and later, also whether the promotion’s link to our other app asks Google Play for the version of that app’s store page made for users of this App (Section 3(d)); in version 1.7.0 and later, also the short demo of our other app described in Section 3(d) and a version of the promotion in which our other app’s character greets you; and, in versions earlier than 1.4.0, the block mini-game. The file exists so that any of them can be switched off without publishing a new version of the App. If the file cannot be reached, the App keeps using its last copy of it; with no copy at all, it treats advertising as switched on. The version of our other app’s store page made for users of this App, the short demo of our other app, and the version of the promotion with our other app’s character are on only while the file switches them on: each is off where the App has no copy of the file, where its line is missing or carries any other value, and where the App’s copy of the file was fetched more than 7 days earlier. It does not govern the usage and reliability statistics described in Section 3(d); those are governed only by the controls listed there.

The App sends nothing with this request: no identifier, no advertising ID, and no information about you or about how you use the App. As with any request to any web server, the server that answers it necessarily sees the IP address the request came from, together with ordinary connection information such as the time, the file requested and the type of client. That server is GitHub Pages, operated by GitHub, Inc., which hosts the file as a plain static document. The Developer runs no server and never sees a log of these requests.

3(d) — Usage and reliability statistics (Google Analytics for Firebase)

A large share of the negative reviews the App receives report the same fault: the shake stops working. The App cannot otherwise determine why on any device except the Developer’s own — whether the background service was terminated by the phone’s manufacturer, whether the hardware has no usable motion sensor, or whether the shake was detected but the flashlight failed to come on. Those are three different faults with three different remedies, and these statistics exist so that the cause can be identified across many devices rather than one.

We describe this data as pseudonymous, and deliberately not as “anonymous”: each installation is identified by a random identifier generated by Google’s SDK, and Google sees the IP address the data arrives from. That is sufficient for the data to constitute personal data, and it is treated as personal data throughout this policy.

Where this is active, and what governs it

The territorial position is set out first.

In the EEA, the UK and Switzerland, these statistics are collected only if you consent. The consent message Google shows you on first launch, described in Section 7, asks for the “analytics storage” purpose — TCF purpose 1, which the App reads as consent to analytics — alongside the advertising purposes. If you agree, the statistics described in this Section are collected, exactly as they are elsewhere. If you do not agree, nothing is collected and the random app-instance identifier described further down is never created. You can withdraw your consent at any time by reopening that message from the App’s “Ad & privacy settings” row, and the collection stops. The legal basis here is your consent (Art. 6(1)(a) GDPR, and ePrivacy Art. 5(3) for the identifier on your device); Section 4 sets it out. Whether a consent message is shown to you at all is decided by Google’s consent system, on the basis of the message we publish for those regions — the same mechanism that already decides whether the advertising described in Section 3(b) is personalised there. The App does not determine your location itself, and does not attempt to.

Everywhere else, these statistics are active. The App carries the Google Analytics for Firebase SDK and is built with the Google project credentials it needs, so what is described below is a collection and not merely a capability. Collection is on unless you turn it off: the in-app “share usage statistics” switch starts in the on position, and turning it off stops the collection immediately and completely and also discards the identifier described further down, so that switching it back on later starts a new one rather than resuming the old. Section 4 sets out the legal basis, which outside those regions is our legitimate interest in diagnosing a fault we otherwise cannot see, with that opt-out always available.

What is collected, where it is active — every field

Reliability of the background service

  • why the App’s background service last stopped — one value from a fixed list of reasons Android itself supplies (for example “out of memory”, “stopped by the system”, “crash”);
  • roughly how long ago that happened, as a band (“less than an hour”, “1–6 hours”, “6–24 hours”, “1–2 days”, “more than 2 days”);
  • whether the App holds the battery-optimisation exemption on that device, which the App also records as a property of the installation each time you open it, and again as soon as you return to the App having allowed background use;
  • whether you had the shake service switched on, which the App also records as a property of the installation each time you open it.

Recovery

  • which of the App’s internal recovery paths restarted the service, what the outcome was, and roughly how long the service had been stopped (the same bands as above);
  • when Android refused to let the App restart its own service, and which of three kinds of refusal it was;
  • whether the service was still stopped when you opened the App (none of the recovery paths above had brought it back on its own), together with roughly how long it had been stopped (the same bands), why it stopped (the same fixed words as above), whether the App holds the battery-optimisation exemption, and whether a recovery path had tried to restart it in the meantime, as one of three fixed words (no, tried, refused by Android). Sent at most once per such stop, and never when you had switched the service off yourself.

The device’s motion-sensor capabilities — sent once per installation and once per App update, and not again

  • whether an accelerometer exists at all;
  • how deep its buffer is, as a band (0 / 1–99 / 100–999 / 1000 or more);
  • whether a wake-capable accelerometer exists;
  • which kind of “pick-up”-type sensor is the best one available — a category such as “pick up”, “tilt” or “proximity”, never the manufacturer’s own name for the part — and how many such sensors exist;
  • in version 1.6.2 and later, the largest acceleration the motion sensor reports it can measure, as one of seven bands and never as the exact value: no motion sensor, unknown (the reported value is not usable), below 20 m/s², 20 to 37 m/s², 37 to 39.4 m/s², 39.4 to 80 m/s², or 80 m/s² or more. It describes the hardware, not anything you do.

A periodic summary — at most a few times a day, covering a window of at least 30 minutes whose length is included

  • how many shakes were detected, how many flashlight commands were attempted, how many failed, and how many were refused by the camera — each as a band (“0”, “1–5”, “6–20”, “more than 20”);
  • whether the strongest motion reading in that window was below, near, or above your sensitivity threshold;
  • in version 1.6.2 and later, how the strongest motion reading in that window compares with the limits of the motion sensor, as one of five fixed words: unknown; below the largest value the sensor reports it can measure; at that value (within 2 %); above it; or at the limit of a 4 g sensor (within 1 % of 39.2 m/s²). Never the reading itself;
  • in version 1.6.2 and later, whether the rule that lowers the shake threshold was in force on this installation described in Section 3(a), as one of three values, read when the summary is sent and not over the window: the rule is in force; it is not in force; or it has stopped for good on this installation after the stronger readings described there;
  • how many times movement looked like a shake but stayed under your sensitivity threshold, counted and banded (“0”, “1–5”, “6–20”, “more than 20”); how close the strongest of those came, as one of two bands (70–85 % or 85–100 % of your threshold); and how many of those were followed by a shake that did work within ten seconds — counts only, never the readings;
  • and, when a flashlight command could not be carried out, a single fixed word saying why: that another app was using the camera, that the camera was switched off by a device policy, that the flashlight was taken back by the system, that no rear camera could be found, or “other”. It is the last such failure in that window and nothing more — never the message the system gave, never the name of any other app;
  • which quarter of the sensitivity slider you are on — and, in version 1.4.1 and later, the exact position of that slider, a whole number from 5 to 150, and whether you have ever moved it on this installation, as a simple yes or no. Those last two are recorded as a property of the installation rather than of this summary: the App sets them each time you open it, again whenever you change the setting yourself (by releasing a slider, or with the “Harder shake”, “Lighter shake” or “Reset” button, on any of the App’s sensitivity controls), whenever the tutorial raises it, and whenever the App raises it by itself, and Google’s SDK then attaches the current value of each to every item it uploads from that installation, this summary included. They are the setting you chose, or one the tutorial raised for you, in steps set by a fixed rule, after a shake fell short, or one the App raised by itself, in at most two small steps, after your shakes fell short on several days, and nothing else: the values themselves never say how, when or how hard you shake. Google’s SDK may also record, and upload with them, the time at which the App last set each of them, which is always a moment you were using the App, such as a shake after which the tutorial or the App raised the setting. A step taken by the tutorial, or by the App itself, never counts as you moving the slider;
  • the video-offer letter described in Section 3(a) — one letter, drawn at random on the device and stored there, never derived from anything about you. In version 1.5.0 it says which of the two versions of the video offer this installation gets; in version 1.6.0 and later it does not decide this, it is drawn for every installation that does not have one yet, and it is sent so that the statistics can tell installations apart by the letter they were given, including those that took part in the comparison of version 1.5.0. Like the last two values above, it is recorded as a property of the installation rather than of this summary: the App sets it each time you open it, and Google’s SDK then attaches its current value to every item it uploads from that installation, this summary included;
  • in version 1.5.0 and later, whether this installation gets the flashlight button in the top bar: the letter described in Section 3(a). It has two fixed values: one for an installation first opened on version 1.5.0 or later, which gets the button, and one for an installation that existed before, which does not. It records which of the two the installation is, not whether the button is on your screen at the moment, and it is derived from nothing about you beyond whether this installation existed before version 1.5.0. Like the letter above, it is recorded as a property of the installation rather than of this summary: the App sets it each time you open it, and Google’s SDK then attaches its current value to every item it uploads from that installation, this summary included;
  • which screen-off strategy was in force;
  • the same summary once more, sent a single time, for the first time you leave the App after installing it — so that an installation which never got the torch to work is counted even if it is removed the same day. It contains nothing the summary above does not, with two additions: in version 1.5.0 and later it also says whether you had the shake service switched on when it was sent, as a simple yes or no, the same value the reliability items above carry; and, in version 1.6.2 and later, it also carries the band of the largest acceleration the motion sensor reports it can measure, described under the motion-sensor capabilities above. It is sent once per installation and never again, and in place of the window’s length it carries how long it has been since you first opened the App.

Product usage

  • when the occasional startup prompt is shown — the offer of our other app, which is the only such prompt the App shows. It is counted once when it appears and not counted again until you answer it, so a screen that Android rebuilds is not counted twice. In version 1.5.0 and later it also carries roughly how long ago the App was installed, as one of eight fixed words (under 1 day, 1 to 2 days, 3 to 6 days, 7 to 13 days, 14 to 29 days, 30 to 89 days, 90 days or more, or unknown), read from Android on the device and sent only as that band, never as a date or a time; roughly how many shakes the App has counted in total on this installation, as one of seven fixed words (none, 1 to 9, 10 to 29, 30 to 99, 100 to 499, 500 or more, or unknown); and whether the prompt appeared when you arrived in the App or during a shake, as one of two fixed words. In version 1.5.0 and later the prompt can appear only when you arrive in the App, never on a pass triggered by a shake made while the App is open, so the second of those two words is not expected;
  • how that prompt ended, as one of three fixed words: you accepted it and went to the store listing; in version 1.7.0 and later, where the prompt shows the button that opens the short demo described below, you opened the demo from it (if the demo cannot start at that moment, nothing opens and this answer is not sent); or you declined it — and “declined” covers all three ways of saying no, whether you chose “not now”, closed it with the “X”, or dismissed it with the back gesture. Which of the three you used is not recorded. If you never answer it, nothing is sent;
  • when the Google Play listing for our other app is opened, and which of three places you opened it from: the game card in the settings list, the startup prompt itself, or, in version 1.7.0 and later, the end card of the short demo described below. In version 1.5.0 and later it also carries the same two bands as the startup prompt above (how long ago the App was installed, and how many shakes it has counted) and, when you opened it from the startup prompt, whether that prompt appeared when you arrived or during a shake. The link the App opens carries fixed words naming this App, the campaign and the place you tapped, and in version 1.5.0 and later also the App’s version number and a short fixed word naming which version of the promotion you saw. In version 1.7.0 and later, that short word also says whether the card or the prompt you tapped showed the button that opens the short demo, or whether you tapped the end card of the demo. In version 1.7.0 and later, that short word also says whether the card or the prompt you tapped showed our other app’s character. In version 1.6.3 and later, where we switch this on through the file described in Section 3(c) and the phone’s system language is English or Hindi, the link also asks Google Play to show a version of our other app’s store page made for users of this App, and that short word says that the link asked for it. The App reads the system language on the device for this choice and does not send it; the page requested and that word reveal only whether the language is English or Hindi. All of these are words chosen in advance, with no other information about you, which Google Play may pass to our other app if you install it;
  • when the game card in the settings list is actually on your screen — counted once per visit to that screen, never again for scrolling past it or for a screen Android rebuilds — so that the openings above have an honest count of how many people saw the card. In version 1.5.0 and later it also carries the same two bands as the startup prompt above;
  • when the “Vibrate on shake” switch in the settings list is actually on your screen, counted the same way: once per visit, never again for scrolling past it or for a screen Android rebuilds, so that the taps on it below have an honest count of how many people saw it. Only one fixed word naming the option is sent with it;
  • in version 1.7.0 and later, where we switch this on through the file described in Section 3(c), when the short demo of our other app is started, which of two places you started it from, the game card in the settings list or the startup prompt’s “Play here” button, and, on the game card, whether you tapped its “Play here” button or elsewhere on the card. The demo is nine turns of our other app’s puzzle game, played on a second screen of the App, which runs in a separate process. It shows no advertisement, gives no reward and saves no progress. It shows a score while you play but does not keep or send it, and the demo sends nothing to anyone itself: the main part of the App records this item when the demo starts, and records the next two items from a short summary the demo hands it when it closes; where no summary arrives, it records only how the demo ended, as the next item describes. Besides the fixed values described in those two items, that summary carries only the number of that demo and how long it had been open when you left it, which the App uses on the device, to match the summary to the demo and to decide whether to open the store page after a tap on “See it on Google Play” on the demo’s end card, and never sends. The App offers the demo only on Android 11 or later, on phones with at least 3 GB of memory as Android reports it that do not report themselves as low-memory devices, when at the moment you tap the phone is not short of memory and the App is not in split screen, while TalkBack’s touch exploration is off, on an installation at least 24 hours old, and only a limited number of times a day and in total (Section 3(a)). It reads these facts on the device and never sends them; a started demo shows only that these conditions held at that moment;
  • in version 1.7.0 and later, how that demo ended, as one of seven fixed words: that you played all nine turns, or the board ran out of moves, and then left the demo; that you closed it before the end, with its close button or the back gesture; that it stopped before the end because you left it another way, such as going to the home screen or switching the screen off; that you tapped “See it on Google Play” on its end card; that Android recorded a crash or a freeze (“not responding”) of the demo’s own process; that Android ended that process for another reason, such as to free memory; or unknown, when the demo did not report and Android left no record. The last three are diagnostics of the same kind as the reasons the background service stopped, described above: when the App’s main screen is next shown, the App uses, only for the demo’s own process, Android’s own record of how that process ended and whether it is still running, read on the device, and sends only the one word. After a crash or a freeze the App does not offer the demo again on this phone (Section 3(a)). With that word goes roughly how many of the nine turns you played, as one of six fixed words: none (no turn), early (1 to 3), mid (4 to 6), late (7 or 8), all (all nine), or unknown (the demo did not report to the App). No memory figure, no accessibility setting and nothing else about what you did in the demo is sent, other than what the next item describes;
  • in version 1.7.0 and later, how the turns of that demo went. For each turn you finished: its number; how long it took, from the moment the turn could be played to the swipe that ended it, as one of four bands (under 2 seconds, 2 to 10, 10 to 60, over 60); whether the demo showed you the move again, because the screen had been left untouched for ten seconds, or because a block was dropped where it does not fit, a swipe moved nothing or you made a gesture other than the one the turn needed, and whether it dealt you new blocks because none fitted; and how many times, counted as none, one, or two or more, a block was dropped where it does not fit, a swipe moved nothing, you made a gesture other than the one the turn needed, or a tap on the demo’s screen started nothing. With the word for how the demo ended go, where the demo was able to report them: the turn and the step you were on (placing, swiping, or the end card); how you left (its close button, the back gesture, one of the two buttons on its end card, or another way, and whether the screen had by then been left untouched for two minutes); for a turn you did not finish, whether the move was shown again and the same counts; and, on the end card, how many times, counted as none, one, or two or more, you tapped outside its buttons or tapped a button before it was ready. No item carries where on the screen you touched, the time of a touch, your moves or your score;
  • when you come back to the App after opening that Play listing, and roughly how long that took, as one of five fixed words: under 2 seconds, 2 to 10 seconds, 10 to 60 seconds, over a minute, or unknown. The stretch is measured on a clock that counts steadily from the device’s last restart, including while the device sleeps, is held only in the App’s memory for the length of the trip, and only the single word is sent — never a time of day, never an exact number. In version 1.5.0 and later, when the listing was shown as Google Play’s half-sheet over the App, it also carries the result code Google Play hands back when that sheet closes, as one of twelve fixed words (ok, cancelled, codes 1 to 9, or other). It says nothing about you; what Google Play means by each code is not documented, and it is used only to tell whether closing the sheet differs from installing;
  • when a feature that normally sits behind a rewarded video is shown to you as locked instead — no connection at the moment you tapped, advertising being switched off remotely, or Google’s advertising consent check not having completed while you were online, rather than anything you chose — which feature it was and which of those three reasons applied (for the dark theme, also whether you tapped it in the top bar or in the settings list). For the first of those reasons the App checks only whether the device is online at that tap, and nothing about your network is sent;
  • when one of the five features that sit behind an optional rewarded video is unlocked — the dark theme, the achievements page, the repair of a broken daily streak, switching on “Ignore shakes while you’re on a call”, or switching off “Vibrate on shake” — which of the five it was (for the dark theme, also whether it was switched on from the top bar or from the settings list), and why it was granted, as one of three fixed words: you watched the video; it was granted free because you had already watched one for that same feature within the last five minutes (switching vibration off and switching on “Ignore shakes while you’re on a call” count as one feature for this purpose: a video watched for either leaves the other free for those five minutes), the App not asking twice in quick succession; or it was granted free because the video tried to load or to show and failed, or, on the installations that do not wait, only when the video failed to play after you tapped. In that last case the App grants the feature rather than withholding it, and this item records how often that occurs — and, in version 1.4.1 and later, roughly how long you waited for the video after tapping to watch it: the stretch from that tap to the moment the App handed over to the video, or to the moment it decided it could not show you one, as one of six fixed words: under 1 second, 1 to 3 seconds, 3 to 6 seconds, 6 to 10 seconds, 10 seconds and over (the App never waits longer than ten), or unknown. In version 1.6.0 and later, on all installations, unless we switch this behaviour off, the App does not wait at all: the button to watch stays greyed until the video has loaded and nothing is granted while it loads. A line in the file described in Section 3(c) switches this behaviour on: until the App has read that file after it starts, and when it has no copy of that file at all, the App waits as described above. In version 1.5.0 the same applies to about half of installations, those whose video-offer letter (Section 3(a)) assigns them to that version of the offer, and likewise only while we leave it switched on. On the installations that do not wait, if you watch, the stretch recorded is under one second; if you close the offer while the button is still greyed, the stretch recorded is from the moment the offer opened to the moment you closed it. It never includes the video itself. An unlock that involved no wait at all — one granted inside the five-minute window, for example — carries a seventh fixed word meaning “no wait” instead. The stretch is measured on the same steadily counting clock as the return from the store listing above, exists only in the App’s memory until the wait ends, and only the word outlives it: never a number, never a time of day;
  • each time the App asks Google for a rewarded video — normally ahead of any tap, while the main screen is open, so that a video is ready when you ask for one, but also at the tap itself, when one of those screens is opened, after a video has ended, and when the five-minute window closes — whether a video arrived, or which of three kinds of failure Google reported (a temporary error, no video available, or a fault in the App’s own configuration), as one fixed word; and roughly how long the request took, as the same six words. Nothing about the video itself is sent: not which advertisement, not who served it, and no error text;
  • each step of a video offer, with which of the five features it was for (for the dark theme, also whether from the top bar or from the settings list), as one of five fixed words: the offer was put on your screen; you tapped to watch; you declined it while no wait was running (a decline that ends a wait is recorded under the named-taps item below instead, never both); the video was closed before its end, which unlocks nothing (a video that does unlock something is recorded under the unlock item above instead, never both); or, in version 1.5.0 and later, you tapped the video while it was on your screen (only the first such tap per video, with roughly how long the wait for that video had lasted, recorded as for the rewarded-video unlocks above, one letter saying which of the two versions of the video offer the App used for it, and roughly how soon after the video appeared the tap came, as one of five fixed words: under 1 second, 1 to 3 seconds, 3 to 10 seconds, 10 seconds or more, or unknown);
  • what a rewarded video earned — each time one is shown, the amount Google’s advertising SDK reports for that showing, its currency, how exact Google says the amount is (estimated, provided by the publisher, precise, or unknown), and which of the five features it was for (the same way). The amount is sent exactly, not as a band: it is the price of showing an advertisement, not a measurement of you or of your device. Nothing about the advertisement itself is sent: not which advertisement, and not who served it;
  • taps on a fixed, short list of named controls: the theme toggle (recorded as one of two fixed words: the button in the top bar, or the “Dark theme” switch in the settings list), the flashlight button in the top bar (in version 1.5.0 and later, on the installations that show it; every tap is recorded), the rate button, the tutorial, the tutorial’s “Skip”, its “Make it easier” button and the “Got it” that closes it when no easier step is left, the on/off switch, the sensitivity control (releasing a slider, and the “Harder shake”, “Lighter shake” and “Reset” buttons, all recorded as one and the same word), the “Vibrate on shake” switch (recorded as one of two fixed words: vibration switched off, or switched back on), the battery-exemption prompt (recorded as one of two fixed words: the “Allow background use” button on the alert at the top of the home screen, or the row in the list of device checks), the achievements page, the achievements page when its “new” badge is showing (recorded in addition to the tap on the page itself, never instead of it), the daily-streak figure on the home screen’s progress card, which is a second way into that same achievements page and sits behind the same optional video (recorded instead of a tap on the achievements page, never in addition to it, so the two doorways are counted separately and one tap is never counted twice), the button that leaves the short wait for a video, or, on the installations that do not wait, closing the offer while its button is still greyed (for that one control alone, the tap also carries which feature the offer was for and roughly how long the wait had lasted, as the same six words described under the rewarded-video unlocks above — leaving the wait and the wait ending on its own are the two ways a wait finishes, and the two are read together), and three notifications the App itself places in your notification shade — the “Achievement unlocked” notice, that same notice when what it announces is a daily-streak milestone, and the permanent “Service is running” notice that stays there while shake detection is on. For a notification, all that is recorded is which of those three was tapped: not what it said, not when it was posted, and nothing about any other notification on your device. These named controls are not the only interactions recorded: the startup prompt and your answer to it, opening the store listing, the game card being on your screen, the “Vibrate on shake” switch being on your screen, coming back from the store listing, a feature behind a rewarded video being unlocked or shown as locked, the steps of a video offer, what a video earned, the start of the short demo and how it ended, and how its turns went are each recorded exactly as the corresponding point above describes, and no further. Taken together, the points in this list are the complete record of what you touch, and a control that none of them describes is deliberately not recorded at all. There are no coordinates and no session recording.
  • in versions of the App earlier than 1.4.0, three items about the block mini-game those versions contain: that the mini-game is opened and which entry point you come in through, roughly how long a game session lasts, and roughly how many rounds you have finished, the last two as bands and never a score. Version 1.4.0 and later do not contain the block mini-game and record none of the three. What was recorded is kept for the period described in Section 8;
  • in versions of the App earlier than 1.4.0, further values in three of the items above: how the startup prompt ended is one of four fixed words (you accepted it, you opened the mini-game instead, you chose “not now”, or you dismissed it with the back gesture); the Google Play listing for our other app can also be opened from the standing bar inside the mini-game and from its end-of-run card, so the place is one of four; and a feature unlocked behind a rewarded video can also be the mini-game’s “continue”, and can be granted free for a fourth reason, that advertising was switched off remotely or could not be used because of your consent choice.

The fourteen items above concerning the startup prompt, its outcome, the store listing, the game card being on screen, the “Vibrate on shake” switch being on screen, the start of the short demo and how it ended, how its turns went, the return from the store, the locked notice, the rewarded-video unlocks, the requests for those videos, the steps of a video offer and what a video earned carry only the fixed values listed with them, the bands of install age and of shakes counted on the promotion items included (and, for what a video earned, its one amount and currency code): no free text, no reading from any sensor, no information about where you are, and no identifier of their own. They travel with the same random installation identifier as every other item in this Section, and with nothing more.

Collected automatically by Google

These are the SDK’s own events, not ours. We do not choose their contents, and the fixed lists described above do not govern them. Each is listed and described individually below.

  • the first time the App is opened after you install it;
  • each time the App is opened, the start of a session, and roughly how long that session lasted while the App was in front of you;
  • when the App is updated, and when the operating system is updated;
  • when the App is uninstalled, and when the App’s data is cleared. Each records only that it happened: nothing about why, and nothing else;
  • a screen view each time one of the App’s screens is opened. In version 1.4.0 and later the App’s main screen is the flashlight screen; in version 1.7.0 and later the App can also open a second screen, the short demo described above, which runs in a separate process in which Google’s statistics SDK does not run, so no screen view is expected from it. Versions earlier than 1.4.0 have a second screen, the block mini-game. What is recorded is the name of the screen and of its Android class. That is all: no coordinates, no recording of the screen, nothing read from what is on it, and nothing about what you type or touch inside it;
  • where the installation came from, if Google Play tells the SDK: the campaign name, source and medium recorded against your install, when you arrived through a campaign link rather than by searching for the App. It is not your location, it carries no identifier of its own, and if there is no campaign there is nothing to record;
  • that an advert was shown, where Google’s advertising SDK reports one;
  • which device this is and what it is running — the manufacturer and the model name of the device, the version of Android on it, and the version of the App. Google’s SDK records these against every item above by itself; they are not something the App sends and not something it can switch off. They are the same facts a store listing already knows about a device, they name a model and never a particular phone, and they carry no identifier of their own. This is also what makes the sensitivity setting in Section 3(a)’s carve-out useful for the purpose stated there: choosing a better starting sensitivity for each model of phone is only possible because the model is recorded beside it;
  • an approximate location (country/region level), which Google derives from the IP address the data is received from. The App never asks your device where it is.

No advertising identifier is collected for this purpose: the App switches its collection off. This keeps these statistics separate from the advertising described in Section 3(b).

What is deliberately not collected

By design, none of the following is collected:

  • No raw accelerometer readings, traces or magnitudes ever leave your device; only the coarse band comparisons described above do.
  • No advertising ID is used for this purpose; the App instructs the SDK not to collect it. The only identifier here is the random, app-scoped, resettable identifier that Google’s SDK generates for the installation. It is reset when you turn the “share usage statistics” switch off, so a switch turned off and later turned back on starts a new identifier rather than resuming the old one.
  • No free text of any kind — nothing you type, no strings composed by your device, no error messages, and no manufacturer-supplied text. Android’s own written description of why a process died is mapped to a fixed short list of values before anything is sent, and so is the manufacturer’s own name for a motion sensor. Every value listed above comes from a fixed list the App defines in advance.
  • No mini-game scores; they stay on your device (Section 3(a)).
  • No information from the phone-state / call-state check; that feature stays entirely on your device (Section 3(a)).
  • No record of when or where the torch was switched on — only the banded aggregate counts described above.
  • No per-shake events.
  • No memory figures, and no precise timestamps as event fields.

How to switch these statistics off

Either one of the following is sufficient to stop the collection:

  1. In the EEA, the UK and Switzerland, the Google consent message. Decline the analytics purpose and nothing is collected at all. If you have already agreed, reopen that message at any time from the App’s “Ad & privacy settings” row and withdraw: withdrawal is as easy as giving consent, it stops the collection, and it does not affect what was lawfully collected before.
  2. The in-app “share usage statistics” switch, everywhere else. It starts in the on position; turning it off stops collection immediately and completely. You can turn it back on at any time, and nothing else in the App changes either way.

No third control, and no remote one. Nothing in the file described in Section 3(c) governs these statistics: the Developer cannot switch them off, or on, for every installation at once. The two controls above are the only controls.

To collect these statistics we use Google Analytics for Firebase (GA4), supplied by Google. Google is the recipient (Section 5), the data may be processed outside the EEA under the safeguards in Section 6, and Google’s event-level retention for it is set to the shortest period Google offers (Section 8).

The App does not collect or use contacts, photos, microphone, camera content (the torch uses the flash hardware, not camera imagery), account information, or any special-category (sensitive) personal data. It uses no location API and no GPS: the only location involved anywhere is the approximate, country/region-level location that Google derives from an IP address — for advertising (Section 3(b)) and, where they are enabled, for the statistics in Section 3(d).

4. Why we process data, and the legal basis for each purpose (GDPR)

Under the EU GDPR, the UK GDPR, and the Italian Codice Privacy (D.lgs. 196/2003 as amended by D.lgs. 101/2018), every processing purpose requires a legal basis. Each purpose is set out below with its basis.

PurposeData involvedLegal basis
Provide the core flashlight function (detect a shake and toggle the torch) Transient accelerometer readings (on-device only) Performance of the service you requested and our legitimate interest (Art. 6(1)(b)/(f) GDPR) in making the App work. The readings themselves never leave your device and are never stored. Some things derived from them can leave it: the shake counts, the streak, the App’s record for making shaking easier by itself, how many times the tutorial has raised the sensitivity setting and the setting itself, which can be a value that the tutorial or the App raised, and, in version 1.6.2 and later, the yes or no that records whether the motion sensor has produced readings more than one tenth stronger than 4 g in two separate movements while that rule applied to the installation, through the Android backup described in Section 3(a); and, only where the statistics in Section 3(d) are active and you have not switched them off, the coarse counts and band comparisons described there, a sensitivity value that the tutorial or the App raised after shakes fell short, and, in version 1.5.0 and later, the coarse band of the total shake count and, in version 1.6.2 and later, whether the rule that lowers the shake threshold, described in Section 3(a), was in force on this installation or had stopped for good on it. None of them can reconstruct any movement.
Remember your settings, counts, streak, achievements, and mini-game progress On-device SharedPreferences data (3(a)) Legitimate interest (Art. 6(1)(f) GDPR) in providing the features you use; processing occurs only on your device and is not accessible to us.
Serve and measure the advertising described in Section 3(b) — the opt-in rewarded ads, including the requests made in advance so that an ad is ready when you ask for one (incl. fraud/abuse prevention) Advertising data via Google (3(b)) In the EEA, UK, and Switzerland: your consent (Art. 6(1)(a) GDPR; and ePrivacy consent to storing/reading identifiers on your device), collected via the Google UMP consent form before any ad is requested. Outside those regions, Google processes this data under the legal bases set out in Google’s own policies.
Ignore shakes while you’re on a call, where you have switched that option on Whether a call is ringing, in progress or finished, read transiently on the device (Section 3(a)) Your consent to the Android runtime permission (Art. 6(1)(a) GDPR), given when you enable the option and withdrawable in Android’s own permission settings. Nothing about the call is transmitted, and in version 1.4.1 and later nothing about it is stored: the call state is read transiently on the device only, kept in the App’s memory for as long as the App is running, and never written to the device, never included in the Android backup, and never sent to us. Versions earlier than 1.4.1 also keep on the device the time at which a call-related pause began (Section 3(a)).
Check whether advertising, and the App’s other optional parts, are switched on The IP address the request comes from, seen by the file host (Section 3(c)) Legitimate interest (Art. 6(1)(f) GDPR) in being able to switch advertising off without shipping a release. No identifier is sent, and we receive nothing.
Understand why the shake stops working on some devices, and which parts of the App are used — the usage and reliability statistics in Section 3(d) Banded counts, fixed-list reasons and category values, plus the random app-instance identifier and the IP-derived approximate location described in Section 3(d) In the EEA, the UK, and Switzerland: your consent (Art. 6(1)(a) GDPR, and ePrivacy consent for the identifier on your device), given through the “analytics storage” purpose of the same Google UMP consent message used for advertising, and withdrawable at any time from “Ad & privacy settings” — if you do not consent, these statistics are not collected at all (Section 3(d)). Outside those regions: our legitimate interest (Art. 6(1)(f) GDPR) in diagnosing a fault we otherwise cannot see, with an opt-out available at any time — the in-app “share usage statistics” switch, which is on by default and takes effect the moment you turn it off.

We rely on legitimate interest for the first two purposes, which are confined to your device and involve no transmission, sharing, sale, or profiling, and for the advertising and feature kill-switch check, which transmits nothing about you; you can object (see Section 9) and exercise full control through Android’s app-storage controls and by uninstalling. For advertising in the EEA/UK/Switzerland we rely on consent, not legitimate interest, because it involves advertising identifiers and data shared with third parties and transferred internationally: no ad identifiers are accessed and no ad is requested until you have made your choice, and you can withdraw consent at any time (Section 7), as easily as you gave it and without affecting the lawfulness of processing already carried out. The Developer receives none of the advertising data and operates no servers; the role of controller for that data is shared with, or exercised by, Google as described in Section 1.

Every advert in the App is initiated by the user. This supplements the basis above and does not replace it: consent under Art. 6(1)(a) GDPR and ePrivacy Art. 5(3) is what makes the processing lawful in the EEA/UK/Switzerland, and it is taken before any ad request, because the App fetches ads in advance of your tap (Section 3(b)). No advert is displayed to anyone who did not ask for one, and the App relies on no imposed advertising format anywhere in this analysis.

For the statistics in Section 3(d) we rely, in the EEA, the UK and Switzerland, on your consent, given in the Google UMP consent message and withdrawable at any time (Section 7); nothing is collected there unless you give it. Outside those regions we rely on our legitimate interest in being able to diagnose a fault that is otherwise invisible to us, balanced by the facts that the data is banded rather than exact, carries no advertising identifier, and can be switched off in the App at any time. You do not have to give a reason to opt out, and the App is fully usable either way. For that purpose the Developer does decide what is collected and why, and is the controller for it; Google acts as our analytics provider and processes the data additionally for its own purposes as described in its policies.

5. Who receives data (third parties / recipients)

Because we run no servers, the parties that receive data through the App are our advertising provider and its ecosystem, our analytics provider, and the host of the single file described in Section 3(c):

  • Google — specifically Google Ireland Limited (for users in the EEA and Switzerland) and Google LLC (United States, and for users in the UK), operating Google Mobile Ads / AdMob; and
  • Google, in a separate role — the same two companies, operating Google Analytics for Firebase, which receives the usage and reliability statistics described in Section 3(d) where they are enabled. This purpose is distinct from advertising, but the two are connected in Google’s systems in one respect: our AdMob advertising account is linked to this analytics property, so that advertising revenue totals appear beside the usage statistics in the reports only we see — a total earned from a coarse group of users, never from any one of them. Separately, in version 1.5.0 and later, the App itself records what each rewarded video earned, with the feature it was for, among the statistics of Section 3(d); like every item there it travels with the random installation identifier and nothing more, and it says nothing about you. The link runs in one direction only. The usage statistics are not used to personalise advertising: personalisation from analytics data is switched off for every region, and Google signals, the feature that would associate this data with a signed-in Google account, is off. No advertising identifier is collected for this purpose, so the identifier described in Section 3(b) remains the advertising SDK’s alone; and the same controls apply — in the EEA, the UK and Switzerland nothing is collected for this purpose unless you consent, and everywhere else the “share usage statistics” switch stops it; and
  • Google’s advertising partners (third-party ad networks, demand partners, and measurement providers involved in serving and measuring the ads described in Section 3(b)); and
  • Google, in a third role — as the operator of Android Auto Backup / Google Drive, which holds the backup copy of the on-device data described in Section 3(a) if you have device backup switched on. That copy is held in your own Google account, not ours, and we have no access to it; and
  • GitHub, Inc. — only as the host of the one static text file described in Section 3(c). It receives the IP address that request is made from, and nothing else. GitHub privacy statement — https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement

References describing how Google processes this data and who its partners are:

We do not share the on-device data in Section 3(a) with anyone, and we never receive it. It leaves your device by two routes and no others: Android’s own backup into your Google Drive, described in Section 3(a) — a copy held under your account, which we cannot reach — and, where the statistics in Section 3(d) are enabled, the values named in the carve-out there: the sensitivity setting — the coarse band, the exact position of the slider, and whether you have ever moved it — and the video-offer letter, as well as, in version 1.5.0 and later, the letter that says whether this installation gets the flashlight button in the top bar, and a coarse band of your shake count, sent with three items about the promotion of our other app, and, in versions earlier than 1.4.0, a coarse band of the mini-game rounds you have finished. In version 1.6.2 and later, the statistics in Section 3(d) also say whether the rule that lowers the shake threshold, described in Section 3(a), is in force on this installation or has stopped for good on it.

6. International data transfers

The on-device data in Section 3(a) is not transferred anywhere by the App — it stays on your device. If you have Android’s device backup switched on, Android copies it to your own Google Drive (Section 3(a)), where it is stored on Google’s infrastructure and may therefore rest outside your country. That is a transfer made by the Android platform into your own Google account, on Google’s terms and under your control; the Developer is not a party to it and receives nothing from it.

The static file described in Section 3(c) is served by GitHub, Inc., a company based in the United States, so the IP address that request is made from is received there.

The advertising data in Section 3(b) is handled by Google’s global infrastructure and may be transferred to and processed in countries outside the EU/EEA, the UK, and Switzerland, including the United States.

The usage and reliability statistics in Section 3(d), where they are enabled, are handled by the same company on the same global infrastructure and may be transferred in the same way, under the same transfer mechanisms described below.

Where such transfers occur, they are protected by the safeguards Google relies upon, which include:

  • the European Commission’s adequacy decision for the United States and Google’s certification under the EU–U.S. Data Privacy Framework (and the UK Extension), and, for data from Switzerland, the Swiss-U.S. Data Privacy Framework, under which the Swiss Federal Council recognises the United States as adequate for certified companies (see “If you are in Switzerland” below), where applicable; and/or
  • the Standard Contractual Clauses (SCCs) approved by the European Commission (and the UK International Data Transfer Addendum) under Art. 46 GDPR, with supplementary measures where required.

Details of Google’s transfer mechanisms are in the Google Privacy Policy and its data-transfer / Data Processing Terms at https://policies.google.com/privacy and in Google’s business and advertising terms. As the Developer receives none of this data, the transfer safeguards for it are those operated by Google.

If you are in Switzerland. Swiss data protection law (the Federal Act on Data Protection, FADP) asks us to name the countries your data is sent to and the safeguard for each. From Switzerland, the data described in this policy may go to:

  • Ireland, and other countries of the EU and the EEA, where Google Ireland Limited is the Google company responsible for users in Switzerland. The Swiss Federal Council recognises these countries as providing an adequate level of data protection (Annex 1 of the Swiss Data Protection Ordinance).
  • The United States, where Google LLC and GitHub, Inc. are based. Both companies are certified under the Swiss-U.S. Data Privacy Framework, and since 15 September 2024 the Federal Council recognises the United States as providing an adequate level of protection for certified companies (Annex 1 of the Swiss Data Protection Ordinance).
  • Other countries where Google or its partners operate. Google lists its data centre locations at https://datacenters.google/locations/, and the advertising partners are listed in the consent message described in Section 7. Where no adequacy decision covers a transfer, we and Google rely on standard contractual clauses, which the Swiss Federal Data Protection and Information Commissioner (FDPIC) recognises under Art. 16(2)(d) FADP.

7. Consent and how to change or withdraw it

In the EEA, the UK, and Switzerland

Before the App requests any ad, we show you a consent form provided by Google’s User Messaging Platform (UMP) consent SDK. Through it you can agree to, or decline, the use of advertising identifiers and personalized advertising. No ad is requested and no advertising identifier is read until you have made your choice.

You can change or withdraw your choice at any time, from inside the App, via the “Ad & privacy settings” option — the App’s existing privacy settings row, which reopens exactly the same form. Reopening that option lets you grant or revoke consent whenever you wish. Withdrawing consent is as easy as giving it.

What that form also covers. The same form carries the “analytics storage” purpose — TCF purpose 1, which the App reads as consent to analytics — and that is what governs the usage and reliability statistics in Section 3(d) here. Agree to it and those statistics are collected, exactly as they are outside these regions; decline it and nothing is collected and no app-instance identifier is created. Reopening the form later and withdrawing stops the collection. The in-app “share usage statistics” switch is the control everywhere else.

Outside the EEA, the UK, and Switzerland

Where no consent form is shown, advertising is governed by Google’s own policies and by the Android Advertising ID controls below. In every region, the App displays no advert that you did not request.

The usage and reliability statistics in Section 3(d) are governed here by an in-app switch, “share usage statistics”, which you can turn off at any time and which takes effect immediately.

Everywhere — controlling your Advertising ID at the Android level

Independently of the in-app controls, you can manage the advertising identifier on your device via Settings → Privacy → Ads (the exact path varies by device/Android version), where you can Reset advertising ID or Delete advertising ID and turn off ad personalization. Deleting the advertising ID causes apps to receive a string of zeros instead of an identifier, which limits ad personalization.

Children

The consent, advertising and statistics features are intended for users of the general audience described in Section 10. The App’s declared target audience on Google Play is users aged 16 and over.

8. Data retention — how long data is kept

  • On-device data (3(a)): kept on your device until you delete it by clearing the App’s storage/data or uninstalling. We never receive it, hold no copy, and apply no server-side retention to it. Where Android’s backup has copied it to your Google Drive (Section 3(a)), that copy is retained by Google under your account and its retention rules, and you delete it in Settings → Google → Backup.
  • Advertising data (3(b)): retained by Google per Google’s own data-retention policies, not by us. We store none of it. See the Google Privacy Policy (https://policies.google.com/privacy) and Google’s documentation on data retention for details, and use the Android Advertising ID controls (Section 7) to reset or delete the identifier.
  • Usage and reliability statistics (3(d)): held by Google in Google Analytics for Firebase. Google offers a choice of event-level retention periods, and ours is 2 months — the shortest Google offers, and the value a new property carries by default. It is a setting in the Google Analytics console, applied to the whole property, so it applies to every event described in Section 3(d); if we ever lengthen it, this policy will say so before we do. After that period the event-level records are deleted by Google; aggregated reporting totals that cannot be traced back to an installation may persist longer under Google’s own policies. We store none of it ourselves, because we operate no servers.

9. Your privacy rights

EEA and UK (GDPR / UK GDPR / Italian Codice Privacy)

Subject to the conditions in the law, you have the right to:

  • access the personal data processed about you;
  • rectification of inaccurate data;
  • erasure (“right to be forgotten”);
  • restriction of processing;
  • object to processing based on legitimate interest;
  • data portability;
  • withdraw consent at any time (for advertising, and for the statistics in Section 3(d), which are collected here on that basis — see Section 7), without affecting processing already carried out;
  • lodge a complaint with a supervisory authority. In Italy this is the Garante per la protezione dei dati personali (www.garante.it); you may also complain to the authority in your country of residence or workplace. In the UK this is the Information Commissioner’s Office (ICO) (ico.org.uk).

Because the Developer holds no personal data on any server (the on-device data never reaches us, and we never receive the advertising data), in practice:

  • for the on-device data, you exercise these rights directly and immediately by viewing or changing it in the App and by clearing the App’s storage or uninstalling;
  • for the advertising data, the most effective route is to withdraw consent / change your choice (Section 7), use the Android Advertising ID controls (Section 7), and exercise your rights with Google as the party that holds the data, via the Google Privacy Policy (https://policies.google.com/privacy).

You may still contact us at luxebytecomp@gmail.com for any request and we will help and, where relevant, direct it appropriately. We respond to rights requests without undue delay and, in any event, within the timeframes required by applicable law (under the GDPR, normally within one month).

Switzerland (Swiss Federal Act on Data Protection, FADP)

You have the same choices described above, and the FADP gives you these rights:

  • to ask whether personal data about you is processed, and to receive the information the FADP lists, free of charge and in general within 30 days (Art. 25 FADP);
  • to receive data you gave us, in a common electronic format (Art. 28 FADP);
  • to have inaccurate data corrected, and to object to processing or ask for it to stop or for the data to be deleted (Art. 32 FADP);
  • to withdraw your consent at any time from “Ad & privacy settings” in the App.

We hold none of this data on any server, so for most requests we will tell you that, and help you take the request to Google, which holds it. Write to luxebytecomp@gmail.com.

You can also report a concern to the Swiss Federal Data Protection and Information Commissioner (FDPIC), Feldeggweg 1, 3003 Bern, Switzerland, www.edoeb.admin.ch.

The App makes no decision about you based solely on automated processing that has a legal consequence for you or a considerable adverse effect on you.

California (CCPA/CPRA) and other US state privacy laws

You have the right to:

  • know / access the categories and specific pieces of personal information collected about you;
  • delete personal information collected from you (subject to exceptions);
  • correct inaccurate personal information;
  • opt out of the “sale” or “sharing” of personal information, including “sharing” for cross-context behavioral (targeted) advertising;
  • limit certain uses (we do not use sensitive personal information for inferring characteristics); and
  • non-discrimination — we will not treat you differently for exercising your rights.

The categories of personal information involved are limited to the advertising identifiers, device/diagnostic information, IP address, and ad-interaction data described in Section 3(b), which are processed by Google and its partners for advertising, and — where they are enabled — the banded usage and reliability statistics, the random app-instance identifier, and the IP-derived approximate location described in Section 3(d), which are processed by Google as our analytics provider. The statistics in Section 3(d) are not sold or shared for cross-context behavioural advertising, and no advertising identifier is used for them; you can switch them off with the in-app “share usage statistics” control described in Section 3(d). Depending on your settings and region, the use of advertising identifiers for personalized advertising may be considered a “sale” or “sharing” under California law. You can exercise an opt-out by declining consent / changing your choice in the in-app “Ad & privacy settings”, and by using the Android Advertising ID controls (Section 7). You may also contact us at luxebytecomp@gmail.com. Because we operate no servers and receive none of this data, opt-out and deletion for the advertising data are fulfilled through these controls and directly with Google.

10. Children’s privacy

The App is a general-audience utility. On Google Play it is declared as not targeted to, and not primarily appealing to, children, and it is not part of the Google Play “Designed for Families” / Teacher Approved programme. Its declared target audience on Google Play is users aged 16 and over.

That figure reflects Art. 8 GDPR, under which each EU Member State sets its own age of digital consent, anywhere between 13 and 16 (Italy sets it at 14; some Member States set it at 16). 16 is the highest figure any Member State sets, so every user inside the App’s declared audience is at or above the age at which they can consent for themselves in their own country — including the advertising consent asked for in Section 7.

The declared audience describes who the App is intended for; it is not a claim that nobody younger ever installs it. We cannot verify anyone’s age and we do not attempt to. We do not knowingly collect personal data from children: the App asks for no age, name, email address, contacts or account, and collects nothing that identifies a person to us — we operate no servers and receive none of the data described in Sections 3(b) and 3(d).

The App contains no features directed at children, and no game or other content aimed at them: the block puzzle mini-game, an ordinary general-audience feature, exists only in versions of the App earlier than 1.4.0, and the short demo of our other app that version 1.7.0 and later can offer, where we switch it on (Section 3(d)), is nine turns of a general-audience puzzle game, with a score that is shown and not kept, no advertisement, no reward and no account. No advertising is imposed anywhere in the App: there is no banner, no full-screen interstitial and no app-open ad, and the only adverts are the rewarded videos described in Section 3(b), up to five, each of which plays only when you ask for it. Every ad the App requests is requested with a maximum content rating of “PG” (parental guidance), so creatives rated for teen or mature audiences are not requested.

If you believe a child has used the App and that advertising data, or the statistics described in Section 3(d), were collected without appropriate consent, contact us at luxebytecomp@gmail.com. Because such data is held by Google rather than by us, we will help direct a deletion request to Google and provide the Android Advertising ID controls (Section 7) that immediately limit and reset the identifier. This approach is intended to be consistent with COPPA and the Google Play Families Policy.

11. Security

We take a proportionate approach matching the App’s minimal data footprint. The App keeps its data on your device, protected by Android’s standard application sandbox and the device’s own protections (lock screen, encryption, OS permissions); we hold no central database to breach. We transmit no personal data to our own infrastructure, because we operate none. The advertising data is transmitted and protected in transit by Google’s security measures as part of the Google Mobile Ads SDK, and the statistics in Section 3(d) likewise, as part of the Google Analytics for Firebase SDK. No method of electronic processing is ever completely secure; however, by keeping data on-device and operating no servers, we structurally minimize the risk to your information.

12. Changes to this policy and how you are notified

We may revise this policy from time to time. When we do, we will update the “Last updated” date at the top, say what changed in the short box at the top and add the change to the “Previous versions” appendix at the end, publish the revised policy at the same web address where you found it, and — where the change affects advertising or your consent — ask you again through the in-app consent mechanism (UMP) where required. We encourage you to review this page periodically. Material changes take effect when the updated policy is published (or, where the law requires renewed consent, once that consent is collected).

13. How to contact us about privacy

For any question about this policy or to exercise any of your rights, contact Luxebyte Labs at luxebytecomp@gmail.com. This email address is the single point of contact for all privacy requests relating to the App.

Appendix. Previous versions

This appendix is the record of what each version of this policy changed, newest first. It describes changes and is kept so that nothing about them is lost. The policy in force is Sections 1 to 13 above; where an entry below says something different from those Sections, the Sections apply.

Show what each version changed (2.33 back to 2.6)

Version 2.33, dated 12 October 2026 (this version of the policy). This version:

  • describes version 1.7.0 of the App (Section 2);
  • says that the promotion can show our other app’s character. In version 1.7.0 and later, where we switch it on through the file described in Section 3(c), the game card in the settings list and the startup prompt can show our other app’s character greeting you, and the short fixed word naming the version of the promotion also says whether the card or the prompt showed it (Section 3(d)). Section 3(a) lists a yes or no, kept on the device and never sent, that switches this version of the promotion off on this phone after the App has stopped unexpectedly while it was on screen. No new item in the statistics;
  • says that the App can offer a short playable demo of our other app. In version 1.7.0 and later, where we switch it on through the file described in Section 3(c), the game card in the settings list and the startup prompt can show a “Play here” button that opens nine turns of our other app’s puzzle game on a second screen of the App, which runs in a separate process. The demo shows no advertisement, gives no reward, saves no progress and sends nothing itself; it shows a score while you play but does not keep or send it. It is not offered on Android 10 or earlier, on phones with less than 3 GB of memory as Android reports it or that report themselves as low-memory devices, while TalkBack’s touch exploration is on, or to an installation less than 24 hours old; these facts are read on the device and never sent. Section 3(a) lists a small record kept on the device for the demo, never sent and copied by Android’s Auto Backup. Section 3(c) lists the switch and says that the demo, and the version of our other app’s store page made for users of this App, are off where the line is missing or carries another value, or where the App’s copy of the file is more than 7 days old. Section 10 describes the demo next to the block mini-game of versions earlier than 1.4.0, and Sections 3(a) and 3(d) say that version 1.4.0 and later do not contain the block mini-game;
  • adds three items to the statistics in Section 3(d): the demo being started, with which of two places it was started from and, on the game card, whether from its “Play here” button or elsewhere on the card; how it ended, as one of seven fixed words, with roughly how many of the nine turns were played, as one of six, and with the turn and step it ended on and how you left it; and how its turns went, as a time band, whether the move was shown again or new blocks were dealt, and counts capped at “two or more”, with the same for an unfinished turn and two counts for the end card, never a screen position, a touch time, a move or a score. The summary the demo hands to the main part of the App also carries the number of the demo and how long it was open, used on the device and never sent. Three of the seven words come from Android’s own record of how the demo’s process ended (a crash or a freeze, another reason, or no record), read on the device. The startup prompt’s outcome gains a third word, that you opened the demo from it; the store listing can also be opened from the demo’s end card, so the place is one of three; and the short word naming the version of the promotion also says whether the demo’s button was shown or the demo’s end card was tapped;
  • says that the demo’s screen is not expected to produce Google’s automatic screen view, because Google’s statistics SDK does not run in the demo’s process;
  • no new recipient and no new purpose. The new items go to Google Analytics for Firebase under the same consent rules and for the same purpose as the other statistics, and the App makes no new network request.

Version 2.32, dated 8 October 2026. That version:

  • describes version 1.6.3 of the App (Section 2);
  • says that the link to our other app’s store page can ask for a version of that page made for users of this App. In version 1.6.3 and later, where we switch this on through the file described in Section 3(c) and the phone’s system language is English or Hindi, the link the App opens also asks Google Play for that version of the page, and the short fixed word naming the version of the promotion says that it did. The App reads the system language on the device for this choice and does not send it; the page requested and that word reveal only whether the language is English or Hindi. Section 3(c) lists the switch, and Section 3(d) states that the words in the link carry no other information about you;
  • no new recipient, no new purpose and no new item in the statistics. The App makes no new network request.

Version 2.31, dated 8 October 2026. That version:

  • describes the repair of a broken daily streak without a number of missed days. Where your daily streak has recently been broken, the App may offer you a short video to restore it: after one missed day, as before, and also after more than one missed day if the streak was long enough. One video restores the streak; the missed days are bridged, never counted as days you shook. Sections 3(b) and 3(d) say “a broken daily streak” instead of a streak broken by a single missed day;
  • describes version 1.6.2 of the App (Section 2);
  • says that the App can lower the shake threshold on phones whose motion sensor may be unable to measure a shake of the default strength. On an installation first opened on version 1.6.2 or later, where the phone reports that the largest acceleration its motion sensor can measure lies between 37 and about 39.4 m/s², just below the App’s default shake threshold, the App lowers the threshold to nine tenths of that value at every sensitivity setting that would otherwise ask for a stronger shake; easier settings are unchanged. Otherwise, phone models on a fixed list built into the App get the same lowering, on the same installations, to nine tenths of 4 g, where the phone reports no usable value for that largest acceleration and, where we switch it on through the file described in Section 3(c), whatever value it reports; the model name is read on the device and not sent for this purpose. The App stops lowering the threshold, permanently, on an installation whose motion sensor produces readings more than one tenth stronger than 4 g in at least two separate movements while the rule applies, and we can switch the rule off through the same file. Section 3(a) lists two values kept on the device for this, neither of which is itself sent: one word saying whether the installation was first opened on version 1.6.2 or later, and one yes or no recording such stronger readings;
  • adds three items to the statistics in Section 3(d): with the motion-sensor capabilities and with the one-time summary sent the first time you leave the App, the largest acceleration the motion sensor reports it can measure, as one of seven bands; with the periodic summary and with that one-time summary, whether the rule that lowers the threshold was in force when the summary was sent, as one of three values (in force, not in force, or stopped for good on this installation), and how the strongest reading compares with the limits of the motion sensor, as one of five values, never the reading itself. Sections 3(a), 4 and 5 name the new values that can leave the device;
  • no new recipient and no new purpose. The new items go to Google Analytics for Firebase under the same consent rules and for the same purpose as the other statistics, and the App makes no new network request. The information recorded when the streak repair is unlocked is unchanged.

Version 2.30, dated 30 September 2026. That version:

  • says that the App can make shaking easier by itself, by raising your sensitivity setting. If you have never moved the sensitivity slider and your shakes keep falling just short of your sensitivity threshold on several occasions over at least two different days, the App raises the sensitivity setting by one small step (on the slider, from 100 to 110), so that a slightly lighter shake is enough, and at most by one more step a day or more later (from 110 to 120): never more than two steps per installation, never past 120, and never on a value you chose. The App never undoes its own steps. If you move the slider afterwards, your choice stays and the App makes no more of these steps. After it raises the setting, it says so once, under the slider. The sensitivity value described in Sections 3(a) and 3(d) can therefore also be one the App raised by itself rather than one you chose, and such a value says that shakes fell short on several days, no more than the counts of near misses in Section 3(d) already say. “Whether you have ever moved the slider” keeps its meaning: it is set only by your own changes, never by the App’s own steps;
  • adds to Section 3(a) the short record the App keeps to decide this. It is never sent. It holds how many steps the App has taken and when it took the last one, whether its note under the slider is still to be shown, and, for up to the last five times within the last 14 days that the App saw the phone being shaken (whether or not the flashlight lit), when each started and whether your shakes fell short, with counts for the time in progress and whether the light was turned on soon after a shake fell short, and the sensitivity value all of this was collected at. It therefore holds times of use. Entries older than 14 days stop counting and are deleted the next time the App records a shake, and all the entries are deleted whenever the sensitivity value changes. How many steps the App has taken, when it took the last one and whether its note is still to be shown are kept until you clear the App’s data or uninstall the App. It is kept in a settings file of its own, which Android’s Auto Backup copies together with the App’s other settings;
  • says “your threshold” rather than “the threshold you chose” in Sections 3(a) and 3(d), since a threshold the tutorial or the App made easier is not one you chose;
  • corrects the direction of the tutorial’s wording. From version 2.22, this policy said the tutorial “lowers” your sensitivity setting, “never below a fixed floor”. It raises the setting, which makes a lighter shake enough, and never past a fixed limit. What the tutorial does is unchanged; Sections 3(a) and 3(d), and the description of version 2.22 below, now say it the right way round;
  • says that, in version 1.6.0, the video offer does not wait on any installation, unless we switch this behaviour off, and that in version 1.5.0 this applies to about half of installations (Section 3(d));
  • states what the video-offer letter is for in version 1.6.0: it decides nothing; it is drawn for every installation that does not have one yet and sent so that the statistics can tell installations apart by the letter they were given, including those that took part in the comparison of version 1.5.0 (Sections 3(a) and 3(d));
  • states more fully what can leave the device, and when: in Sections 3(a) and 4, every value derived from the motion readings that the backup or the statistics can carry; in Section 3(d), that whether the shake service is switched on is also recorded as a property of the installation, and that Google’s SDK may record, and upload with them, the time at which the App last set the sensitivity values; and, in Section 3(a), how an installation that existed before version 1.4.1 counts a slider moved with an earlier version;
  • describes the sensitivity control of version 1.6.0: a change made with the “Harder shake”, “Lighter shake” or “Reset” button counts as your own change, like releasing a slider. It sets “whether you have ever moved the slider”, updates the sensitivity values described in Section 3(d), and is recorded as the same named tap as the slider (Sections 3(a) and 3(d));
  • adds to Section 3(c) the rule that the promotion of our other app waits until the flashlight is off, which the file described there can switch off;
  • gives, in the Italian text, the name of the permanent service notice as the App shows it (“Il servizio è attivo”);
  • moves the record of changes to this appendix and states Sections 1 to 13 in the present tense, as a description of what the App does today. The title uses the App’s current name, “Shake Flashlight & Torch”. It describes version 1.6.0 of the App and names earlier versions by number, never by date, where they differ. It states in the Sections five facts that earlier versions of this policy gave only in their lists of changes (how the tutorial raises the sensitivity setting, what the App checks before reporting a feature as locked for lack of a connection, what the flashlight button is, when the battery-exemption property is refreshed, and what the App does with vibration off), and it adds what versions earlier than 1.4.0 record beyond version 1.6.0 (the mini-game’s “continue”, four prompt outcomes, four store places and a fourth reason for a free unlock) and what versions earlier than 1.4.1 keep about a call. Nothing else is added to or removed from what this policy discloses;
  • no new category of information, no new recipient and no new purpose. No new event, parameter or property is sent; the consent rules of Section 3(d) and the retention period in Section 8 are unchanged.

Version 2.29, dated 29 September 2026. That version:

  • ends the test of the flashlight button in the top bar. From version 1.4.2, every installation whose first ever opening is on version 1.4.2 or later gets the button, on a phone with Android 6 or later and a flashlight, and an installation that already existed before never does. Nothing is drawn at random any more, and the file described in Section 3(c) no longer switches the button on or off, so Section 3(c) no longer names it;
  • describes the letter that goes with the button with two values, not three. The letter kept on the device and, where the statistics of Section 3(d) are active, sent as a property of the installation now has one value for a new installation, which gets the button, and one for an installation that existed before, which does not. Sections 3(a), 3(d) and 5 now describe it that way;
  • no new category of information, no new recipient and no new purpose. The letter is the same one, with fewer values. What is collected, the consent rules of Section 3(d) and the retention period in Section 8 are unchanged.

Version 2.28, dated 28 September 2026. That version:

  • adds what Swiss law asks for on transfers abroad. Section 6 now names, for users in Switzerland, the countries the data may go to (Ireland and the rest of the EU and the EEA, the United States, and other countries where Google or its partners operate) and the Swiss safeguard for each: the Swiss Federal Council’s recognition of those countries, which covers the United States for companies certified under the Swiss-U.S. Data Privacy Framework, as Google LLC and GitHub, Inc. are, and otherwise standard data protection clauses recognised by the Swiss Federal Data Protection and Information Commissioner (FDPIC);
  • adds a Swiss part to your rights. Section 9 now has its own part for users in Switzerland, under the Swiss Federal Act on Data Protection (FADP). It names the FDPIC as the authority you can report a concern to, and states that the App makes no decision about you based solely on automated processing. The part that was headed for the EEA, the UK and Switzerland is now headed for the EEA and the UK;
  • corrects which Google company is responsible for users in the UK. Section 5 said Google Ireland Limited; for the UK it is Google LLC. Google Ireland Limited remains responsible for users in the EEA and Switzerland;
  • corrects the number of rewarded videos in Section 10. It said three; Section 3(b) describes up to five, and Section 10 now says so;
  • no change to the App, no new category of information, no new recipient and no new purpose. What is collected, the consent rules of Section 3(d) and the retention period in Section 8 are unchanged.

Version 2.27, dated 28 September 2026. That version:

  • tests a flashlight button in the top bar on some new installations. From version 1.4.2, the App can show a button in its top bar that switches the flashlight on or off with one tap. While the test is switched on, through the file described in Section 3(c), which now names it among the App’s optional parts, about half of the installations first opened on version 1.4.2 or later see the button and the other half do not. An installation that already existed before version 1.4.2 never sees it. No advertisement is involved, and the App asks for no new permission: Android lets an app switch the flashlight without one;
  • keeps one letter on the device that says which side of that test this installation is on. The App decides it once, at the first opening on version 1.4.2 or later: one of two letters, drawn at random on the device, for an installation whose first ever opening is on version 1.4.2 or later, or a third letter for an installation that already existed, which is not in the test. Whether the installation is new is decided on the device from Android’s own record of when this App was installed and last updated, and from whether the App had been opened before; those times are read on the device and never sent (Section 3(a)). Where the statistics of Section 3(d) are active, the letter is also recorded as a property of the installation, beside the letter of the video-offer test, and the two sentences of Section 3(a) that name the values sent under its carve-out, and the matching sentence in Section 5, now name it. It says nothing about you beyond whether this installation existed before version 1.4.2;
  • records taps on that button, and one more fact in the first-session summary. From version 1.4.2, where the statistics of Section 3(d) are active, the named-taps item gains the flashlight button in the top bar, recorded on every tap. The summary sent once, the first time you leave the App after installing it, now also says whether you had the shake service switched on when it was sent, as a yes or no that the reliability items of Section 3(d) already carry. Nothing here is a sensor reading, a location, a time of day or free text;
  • no new category of information, no new recipient and no new purpose. The consent rules of Section 3(d) apply unchanged, and the retention period in Section 8 is unchanged.

Version 2.26, dated 28 September 2026. That version:

  • records which of the two places you asked to allow background use from. The App asks for the battery-optimisation exemption in two places: the alert at the top of the home screen, and the row in the list of device checks further down. Until now only a tap on the row was recorded. From version 1.4.2, where the statistics of Section 3(d) are active, a tap on the alert’s “Allow background use” button is recorded too, as its own fixed word, so the named-taps item now records that prompt as one of two fixed words (Section 3(d)). The App also refreshes whether it holds the exemption, already recorded as a property of the installation, as soon as you come back to it having allowed background use, instead of at the next start of the App. Nothing here is a sensor reading, a location, a time of day or free text;
  • no new category of information, no new recipient and no new purpose. The consent rules of Section 3(d) apply unchanged, and the retention period in Section 8 is unchanged.

Version 2.25, dated 28 September 2026. That version:

  • shows the startup prompt only when you arrive in the App. From version 1.4.2 it no longer appears on a pass triggered by a shake made while the App is open;
  • adds context to three promotion items. From version 1.4.2, where the statistics of Section 3(d) are active, the startup prompt being put on your screen, the game card being on your screen and the Play listing for our other app being opened each also carry roughly how long ago the App was installed (one of eight fixed words) and roughly how many shakes the App has counted in total on this installation (one of seven fixed words). The startup prompt, and opening the listing from it, also carry whether the prompt appeared when you arrived in the App or during a shake (one of two fixed words). The install time is read from Android on the device, and only the band is sent, never a date or a time. Sections 3(a) and 5 now say that your shake count leaves the device only as that band. Nothing here is a sensor reading, a location, a time of day or free text;
  • records how Google Play’s half-sheet closed. From version 1.4.2, when the listing for our other app was shown as Google Play’s half-sheet over the App, the return from it also carries the result code Google Play hands back when that sheet closes, as one of twelve fixed words (Section 3(d)). It says nothing about you;
  • says what the link to our other app’s listing carries. It carries fixed words naming this App, the campaign and the place you tapped, and from version 1.4.2 also the App’s version number and a short fixed word naming which version of the promotion you saw. Google Play may pass them to our other app if you install it (Section 3(d));
  • no new category of information, no new recipient and no new purpose. The consent rules of Section 3(d) apply unchanged, and the retention period in Section 8 is unchanged.

Version 2.24, dated 27 September 2026. That version:

  • records when you open the App and find the shake service stopped. From version 1.4.2, where the statistics of Section 3(d) are active, opening the App while the shake service is switched on but not running is recorded once per such stop, with why it stopped, roughly how long it had been stopped, whether the App holds the battery-optimisation exemption, and whether a recovery path had tried to restart it in the meantime (Section 3(d), Recovery). Nothing here is a sensor reading, a location, a time of day or free text;
  • lets one video cover two neighbouring settings. A video watched to switch vibration off, or to switch on “Ignore shakes while you’re on a call”, now leaves the other of the two free for the same five minutes. The dark theme, the achievements page and the repair of a daily streak each still keep their own five minutes. Such an unlock is recorded with the same fixed word as any other unlock inside the five minutes, naming the setting actually unlocked (Section 3(d)); no new word is added;
  • adds a second place to switch the dark theme, and records which of the two you used. From version 1.4.2, the settings list has a “Dark theme” switch beside the existing button in the top bar. It is the same setting under the same rules: switching it on may first offer you the same short video, one video unlocks it from either place for the same five minutes, and switching it off is always free (Section 3(b)). Where the statistics of Section 3(d) are active, a tap on it, the dark theme being unlocked, and the dark theme being shown as locked are each recorded as they already are for the top-bar button, with one fixed word saying it came from the settings list rather than the top bar. Nothing here is a sensor reading, a location, a time of day or free text;
  • records, for each video offer, which feature it was for and what you did with it. From version 1.4.2, where the statistics of Section 3(d) are active, the App records when a video offer is put on your screen, when you tap to watch, when you decline it while no wait is running, and when a video is closed before its end, each with one fixed word naming the feature the offer was for; and the button that leaves the short wait for a video now also records that feature (Section 3(d)). From version 1.4.2 it also records the first tap on a video while that video is on your screen, with how long the wait for it had lasted, which version of the offer was used and roughly how soon after the video appeared the tap came (Section 3(d)). Nothing here is a sensor reading, a location, a time of day or free text;
  • records what each video earned, per feature. From version 1.4.2, where the statistics of Section 3(d) are active, each time a rewarded video is shown the App records the amount Google’s advertising SDK reports that showing earned, its currency, how exact Google says that amount is (one of four fixed words), and which feature the video was for (Section 3(d)). It is the same kind of revenue figure described in Section 5, now per video and per feature rather than only as totals; it says nothing about you, about the advertisement or about who served it;
  • no new category of information, no new recipient and no new purpose. The consent rules of Section 3(d) apply unchanged, and the retention period in Section 8 is unchanged.

Version 2.23, dated 27 September 2026. That version:

  • says that switching vibration off may now ask for one short video. From the October 2026 update, the settings list has a “Vibrate on shake” option. It is switched on when you install the App, and with it on nothing changes: the phone buzzes briefly when a shake, or the Quick Settings tile, switches the torch. Switching it off may first offer you a rewarded video, exactly as switching the dark theme on already does. It is a fifth such place and it works under the same rules as the other four: the video is never auto-played, it is always declinable, switching vibration back on is always free and immediate, and if the video cannot in fact be shown the App gives you the setting anyway rather than leaving you stuck. With it off, the App does not buzz the phone for a shake, a tile tap or a new achievement, and posts that achievement’s notice without sound or vibration. Your Android notification settings are not changed. The choice is kept on your device with your other settings (Section 3(a));
  • records when that option is on your screen, and which way you switched it. Where the statistics of Section 3(d) are active, the App records when the “Vibrate on shake” switch is actually on your screen, counted once per visit exactly as the game card already is, and the named-taps list gains that switch, recorded as one of two fixed words: vibration switched off, or switched back on. The rewarded-video unlocks item now names five features instead of four. Nothing here is a sensor reading, a location, a time of day or free text;
  • no new category of information, no new recipient and no new purpose. The consent rules of Section 3(d) apply to both changes unchanged, and the retention period in Section 8 is unchanged.

Version 2.22, dated 26 September 2026. That version:

  • says that the tutorial can make shaking easier by raising your sensitivity setting. From the October 2026 update, the “How to use” walkthrough is a short practice screen. If a shake falls just short of your sensitivity threshold more than once while it is open, or you tap its “Make it easier” button, it raises the sensitivity setting by one fixed step, so that a lighter shake is enough (at most two steps per installation, never past a fixed limit), and says so on screen. The sensitivity value described in Sections 3(a) and 3(d) can therefore be one the tutorial raised for you rather than one you chose, and a raised value does say that a shake fell short — no more than the counts of near misses in Section 3(d) already say. “Whether you have ever moved the slider” keeps its meaning: it is set by the slider alone, never by the tutorial. The App also keeps on your device, and never sends, how many steps the tutorial has used (Section 3(a));
  • adds three controls to the named-taps list: the tutorial’s “Skip”, its “Make it easier” button, and the “Got it” that closes it when no easier step is left;
  • no new category of information, no new recipient and no new purpose. No new event or parameter is sent; the consent rules of Section 3(d) and the retention period in Section 8 are unchanged.

Version 2.21, dated 25 September 2026. That version:

  • adds one letter that says which of two versions of the video offer this installation is assigned to. From the October 2026 update, the App draws that letter at random on the device, once, and keeps it with its other settings (Section 3(a)); where the statistics of Section 3(d) are active, it is also recorded as a property of the installation, beside the sensitivity setting. It is never derived from anything about you. The two sentences of Section 3(a) that name the values sent under its carve-out, and the matching sentence in Section 5, now name that letter beside the sensitivity setting;
  • says that about half of installations do not wait for the video while the comparison runs. On those installations the button to watch stays greyed until the video has loaded, and nothing is granted while it loads. The Section 3(d) item on the rewarded-video unlocks now says so, says which stretch is recorded there, and says that there a feature is granted free only when the video failed to play after you tapped; the named-taps item says that on those installations the counted “leave the wait” is closing the offer while its button is still greyed. No new category of information, no new recipient and no new purpose, and the consent rules of Section 3(d) apply to both changes unchanged.

Version 2.20, published on 25 September 2026. That version:

  • adds a third reason a locked feature can be reported with. The Section 3(d) item on a feature shown to you as locked named two reasons; it now names three, and the new one comes first: no connection at the moment you tapped. The App checks whether the device is online at that tap and sends only which of the three reasons applied — never anything about your network. No new category of information, no new recipient and no new purpose, and the consent rules of Section 3(d) apply to it unchanged;
  • stops describing the consent reason as a new installation that has not yet been online. A tap made without a connection is now reported as “no connection”, so the consent reason is recorded only while you are online, and Section 3(d) now says so;
  • says what happens when the advertising switch of Section 3(c) cannot be reached. The App keeps using its last copy of that file, and if it has never had one it treats advertising as switched on; Section 3(b) no longer says an ad is requested only once that switch has been read. No new category of information, no new recipient and no new purpose.

Version 2.19, published on 15 September 2026. That version:

  • corrects a false statement. Versions 2.7 to 2.18 said the App never collected usage statistics in the EEA, the UK or Switzerland. That was wrong from the day the analytics shipped (24 August 2026): where you gave consent in Google’s consent message, the statistics described in Section 3(d) were collected, exactly as elsewhere. Nothing was collected from anyone who did not consent. This version says what the App actually does. In the EEA, the UK and Switzerland those statistics are collected only if you consent in the consent message Google shows on first launch; the legal basis is your consent (Art. 6(1)(a) GDPR), you can withdraw it at any time in “Ad & privacy settings” inside the App, and if you do not consent nothing is collected and no app-instance identifier is created. Outside those regions the in-app “share usage statistics” switch governs, exactly as before. No new category of information, no new recipient and no new purpose — only a corrected description of where the existing collection happens and on what basis;

Version 2.18, published on 15 September 2026. That version:

  • says that the periodic summary in Section 3(d) now also counts the shakes that did not work. Alongside the shakes it already counted, the App now counts how many times your movement looked like a shake but stayed under the sensitivity threshold you chose, how close the strongest of those came as one of two bands, and how many of them you followed with a shake that did work within ten seconds. These are counts and bands, never the readings themselves, in exactly the way the existing items are, and they exist to answer one question we cannot otherwise answer: on which models of phone is the App simply too hard to trigger. The same summary also gains, when a flashlight command failed, a single fixed word saying why — the App has counted those failures since these statistics began and has never recorded their cause, so a flashlight held by another app and a flashlight broken by the App looked identical to us;
  • adds one further summary, sent once per installation, the first time you leave the App after installing it. It carries nothing the periodic summary above does not. It exists because that summary is only sent for windows of at least half an hour, so an installation that never got the torch to work and was removed the same day told us nothing at all;
  • no new category of information, no new recipient and no new purpose. Nothing here is a sensor reading, a location, a time of day or free text, the consent rules of Section 3(d) apply to it unchanged — in the EEA, the UK and Switzerland only if you consent, and elsewhere only until you turn the in-app switch off — and the retention period in Section 8 is unchanged;

Version 2.17, published on 15 September 2026. That version:

  • says that turning on “Ignore shakes while you’re on a call” now asks for one short video. That option is switched off when you install the App, and switching it on may now first offer you a rewarded video, exactly as switching the dark theme on already did. It is a fourth such place and it works under the same rules as the other three: the video is never auto-played, it is always declinable, switching the option off is always free and immediate, and if the video cannot in fact be shown the App gives you the setting anyway rather than leaving you stuck. Nothing new is collected. The unlock is recorded by the same item of Section 3(d) that already covers the other three, with the same reasons and the same waiting band; the only change there is that the item now names four features instead of three. Nothing about the call itself is read, stored or transmitted because of this: the permission the option needs, and what the App does with it, are exactly as Section 3(a) already describes. If you already have the option switched on nothing changes for you, because only switching it on from off is affected;
  • nothing else changed. Nobody new receives anything, nothing is used for a new purpose, and no new category of information is collected: one existing list gains a fourth entry.

Version 2.16, published on 15 September 2026. That version:

  • says that the App now also reports the exact position of the sensitivity slider, and whether you have ever moved it. Until now the usage and reliability statistics described in Section 3(d) carried only which quarter of that slider you were on. They now also carry the position itself — a whole number from 5 to 150, the number shown on the slider — and a simple yes or no for whether the slider has ever been moved on this installation. This is the same collection, in the same Section, under the same consent rules, to the same recipient, for the same purpose: in the EEA, the UK and Switzerland it is collected only if you consent, and elsewhere it stops the moment you turn the in-app “share usage statistics” switch off. It is a setting you chose, not a measurement of you: it says nothing about how, when or how hard you shake, it is recorded against the same random installation identifier as everything else in Section 3(d), and it exists so that we can choose a better starting sensitivity for each model of phone — which is only possible if the installations that never touched the control can be told apart from the ones that did, which is what the yes-or-no is for. The quarter is still sent alongside it;
  • corrects a leftover sentence in the legal-basis table. Row 4 of the table in Section 4 still ended by saying that the time a call-related pause began is stored on the device. Version 2.15 removed that disclosure from Section 3(a), because the App stopped storing it, and this row should have been corrected at the same time. It now says what is true: nothing about the call is stored or transmitted, and the call state is read transiently on the device only. The row is also renamed to the name the option actually has in the App — “Ignore shakes while you’re on a call” — which is what it does now that a call no longer stops anything. No new kind of information is involved: this correction only removes a claim that something is kept;
  • names four things Google’s SDK has always recorded and this policy did not list. The “Collected automatically by Google” list in Section 3(d) is written as a complete list, and it was missing the manufacturer and model name of the device, the version of Android on it, and the version of the App. Google’s SDK attaches those to every item in that Section by itself, and has done so for as long as those statistics have been active. That was an omission in this policy, not a change in the App: nothing new is being collected, and this version says so where it should always have said so. They name a model of phone and never a particular phone, and they carry no identifier of their own. They are named now because the sensitivity item above says it exists to choose a better starting sensitivity for each model of phone, and a reader is entitled to see where the model comes from;
  • nothing else changed. Nobody new receives anything, nothing is used for a new purpose, and no new category of information is collected: what is added is a number you set yourself and a yes-or-no about whether you set it.

Version 2.15, published on 15 September 2026. That version:

  • says that the App no longer stores when a call paused it. Versions up to 2.13 disclosed one detail of the optional “stop the torch during phone calls” feature: that the App kept on the device the time at which a call-related pause began. It does not keep it any more. The App is no longer stopped for a call at all — it stays running and simply ignores a shake while you are talking — so there is no pause left to time. Nothing writes that value, and a value left behind by an earlier version is cleared the next time the App starts. What the App keeps instead is whether a call is in progress while the App is running, and it keeps it in the App’s memory only — never written to the device, never included in the Android backup, never sent to us. Nothing about the call itself was ever recorded, and nothing is now: no number, no direction, no duration, no identity;
  • nothing else changed. This version removes a disclosure, because the App stopped storing the thing that disclosure described. No new kind of information is collected, nobody new receives it, and nothing is used for a new purpose.

Version 2.14, published on 14 September 2026. That version:

  • corrects what is recorded about how the startup prompt ended. That prompt was rebuilt, and it now has a close “X” alongside “not now” and the back gesture. All three of those are the same answer, so the App records two fixed words where it used to record three: that you accepted the prompt and went to the store listing, or that you declined it. Dismissing the prompt with the back gesture is no longer recorded as its own separate word. Nothing new is collected; one word has left a closed list, and this policy said three where the App now says two;
  • nothing else changed. No new kind of information is collected, nobody new receives it, and it is used for nothing new.

Version 2.13, published on 10 September 2026. That version:

  • says that the rewarded-video unlock now also records roughly how long you waited. The App has always waited a short while for the video after you tap to watch it — up to ten seconds, with the button to leave the wait live the whole time — and has never recorded anything about that wait. It now records how long it lasted, as one of six fixed words, or a seventh meaning “no wait” where there was no wait at all. The video itself is never in it, the stretch exists only in the App’s memory until the wait ends, and only the word outlives it;
  • discloses a new item: the requests the App makes for those videos. The App asks Google for a rewarded video before you tap, so that one is ready when you ask for it. It has always done this and has never recorded anything about it. It now records whether a video arrived or which of three kinds of failure Google reported, and roughly how long the request took, as the same six words. Nothing about the video itself is sent: not which advertisement, not who served it, and no error text;
  • says that the button that leaves the short wait now carries the same words, for that one control alone;
  • corrects the count in the sentence after that list, from seven live items to eight;
  • nothing else changed. No new kind of information is collected, nobody new receives it, and it is used for nothing new: what is added is a band of a stretch of time measured inside the App, and one fixed word for how a request ended.

Version 2.12, published on 9 September 2026. That version:

  • discloses two events that were not disclosed before. Google’s SDK sends when the App is uninstalled and when the App’s data is cleared, and it has done so for as long as these statistics have been active. Neither appeared in the “Collected automatically by Google” list in Section 3(d) in versions 2.8 to 2.11. That was an omission in this policy, not a change in the App: nothing new is being collected, and this version says so where it should always have said so. Each records only that the thing happened, against the same random installation identifier as everything else in that Section — nothing about you, and nothing about why;
  • corrects the second reason a feature can be shown as locked in the same Section. It said the reason was that consent had been refused. It is not: Google’s consent system leaves advertising requestable after a refusal, so what that value actually records is a consent check that never completed — in practice a new installation that has not yet been online. The recorded value is unchanged; only the description of it, which told you that a choice of yours had locked a feature when it had not;
  • corrects a count in Section 3(a) and Section 5. Both still spoke of “the two coarse bands” sent under the carve-out in Section 3(d). That carve-out has named one band since version 2.10, when the mini-game rounds stopped being sent;
  • corrects the effective date in the header of this Markdown text, which read 24 August 2026. The published page has said 25 August 2026 since version 2.9; this file had never picked it up;
  • restates the “no third control” note in the present tense and adds the half it was missing: the Developer cannot switch these statistics on for every installation at once either. Nothing about the controls themselves changed.

Version 2.11, published on 9 September 2026. That version:

  • adds one control to the named-taps list: the daily-streak figure on the home screen’s progress card. It is a second way into the achievements page, behind the same optional video, the same five-minute per-feature pause and the same locked notice as the achievements page itself. It is recorded instead of a tap on the achievements page, never in addition to it — the opposite of the badged-achievements item, which is a subset of that page’s own taps — so the two doorways are counted separately and one tap is never counted twice. It is not a new kind of data: it is one more fixed word in a list the App chose in advance.

Version 2.10, published on 8 September 2026 — published as the HTML page first; these Markdown sources were not updated at the time and lagged behind it until 9 September 2026, when the body below was brought back into line with the published page at https://matteomark.github.io/, which remains the authoritative text. That version:

  • retires the three block mini-game items from the “Product usage” list and marks them as no longer recorded, the mini-game having been removed from the App, and narrows the prompt-outcome and store-place items from four values to three and two;
  • replaces the mini-game’s “extra life” with the repair of a daily streak broken by a single missed day as the third feature behind an optional rewarded video, and narrows the grant reasons from four fixed values to three;
  • adds two entries to the named-taps list: the achievements page while its “new” badge is showing (recorded in addition to the tap on the page itself, never instead of it), and the three notifications the App places in the notification shade.

Version 2.9, published on 7 September 2026:

  • adds three items to the “Product usage” list: that the game card in the settings list was actually on your screen, counted once per visit; that you came back to the App after opening our other app’s Play listing, and roughly how long that took, as one of five fixed ranges and never a number; and that a feature normally behind a rewarded video was shown as locked, with which of two reasons. None of the three is a new kind of data — each is a fixed word the App chose in advance;
  • adds one control to the named-taps list: the button that leaves the short wait for a video;
  • narrows one sentence to stay true: the list’s closing paragraph said the items carry “no timing figure”; the return item above carries one, as a fixed range, so the paragraph now says exactly that instead.

Version 2.8, published on 24 August 2026:

  • discloses screen views. Version 2.7 said, of the events Google’s own SDK records by itself, that “no screen-view tracking is enabled”. From this update it is. Each time one of the App’s two screens is opened — the main flashlight screen, or the block mini-game — Google’s SDK records the fact and the screen’s name. That is the whole of it: no coordinates, no recording of the screen, and nothing about what you typed or touched inside it. The bullet in Section 3(d) now says so, and the sentence that said the opposite is gone;
  • names the SDK’s own events instead of summarising them. The same bullet now lists them individually — the first opening after installation, each opening, the start of a session and roughly how long it lasted, an App update, an operating-system update — because “app opens and a rough measure of session length” did not name all of them;
  • adds the install campaign to that same list. Where Google Play tells the SDK that your installation came from a campaign link, the SDK records the campaign’s name, source and medium. This is not new behaviour — it is part of the same SDK the earlier versions already described, and it was simply not named. It is named now. It is not your location and carries no identifier of its own;
  • corrects what Section 3(d) said the App you have today was doing. Version 2.7 said the published App “sends nothing at all, in any region, because it is not built with the credentials described below”. The first half was true. The reason given was not: the credentials were there, and a separate, unrelated piece of the same configuration was missing, so nothing was ever recorded or sent by any device. That defect is fixed in this update, which is what makes the rest of this Section describe a real collection rather than an intention. Nothing in this correction widens what is collected.

Version 2.7, published on 21 August 2026:

  • adds three items to the “Product usage” list in Section 3(d): the appearance of one of the two occasional startup prompts and which of the two it was; which of four fixed outcomes ended it; and the opening of the Google Play listing for our other app, together with which of four places it was opened from. Each of the three carries only words the App chose in advance, and nothing else;
  • corrects the bullet about taps in that same list. It said the App records taps on a fixed, short list of named controls and that a control outside that list is not recorded at all; opening that Play listing is a tap outside it, so the bullet now names both lists and repeats the promise about everything outside them.

Version 2.6, published earlier the same day:

  • adds Section 3(d), which describes the usage and reliability statistics the App can send through Google Analytics for Firebase — every field, in plain words, with the list of what is deliberately not collected and how to switch it off. These statistics are active from the next App update onwards; Section 3(d) says where they are collected and on what basis. (Version 2.6 said they were not collected at all in the EEA, the UK and Switzerland; that was wrong, and version 2.19 above corrects it);
  • discloses Android’s own Auto Backup, which copies the on-device data in Section 3(a) into your own Google Drive, and which no earlier version mentioned;
  • states plainly that adverts are requested in advance, before you accept any offer and even if you are never shown one (Section 3(b));
  • documents two further places where the App can offer you a rewarded video — the dark theme switch and the block mini-game — alongside the achievements gallery, which was the only one described before;
  • describes the device-local “keep-alive” account you can see in Android Settings, and the additional motion sensors the App reads on some devices;
  • records that the App shows no banner and no full-screen advert anywhere, including inside the mini-game — the only format it contains is a rewarded video you choose to watch (Section 3(b)); and
  • corrects the stated minimum age from 13 to 16, matching the App’s Google Play declaration.

→ Leggi questa informativa in italiano