Privacy Policy
This policy explains how Morrowware, the Morrowware website, AirSwipe, FloatCalculator, FloatCompass, and FloatMeasure handle information.
1. Overview
The apps covered by this policy do not require a Morrowware account or use a Morrowware-operated backend. Most app processing happens locally on your device. Network access is used only for the features described below, including RevenueCat and Google Play services, FloatCalculator exchange-rate retrieval, and system-provided geocoding used by FloatCompass.
Morrowware does not sell personal information.
Features and data handling may vary by app version, device, operating system, and the features you choose to use. An app-specific disclosure applies only when that feature is available and used.
RevenueCat and Google Play purchases
AirSwipe, FloatCalculator, FloatCompass, and FloatMeasure use RevenueCat with Google Play Billing to load Pro products and localized prices, start purchases, restore purchases, and verify Pro access, including when an app starts. RevenueCat may process an app-scoped user identifier, device and platform information, Google purchase tokens, purchase history, and entitlement information to provide these functions and related service analytics. This information is encrypted in transit. Morrowware does not use it for advertising.
Google Play handles payment processing. The apps and Morrowware do not receive or store your card number, bank account details, or Google Play payment-method details. RevenueCat acts as Morrowware's purchase-infrastructure service provider; its processing is also described in the RevenueCat Privacy Policy. To request deletion of a RevenueCat customer record associated with an app, contact Morrowware at the address below. Legal or operational retention requirements may apply.
2. AirSwipe
AirSwipe is an Android air-gesture app. It may process live camera frames, gesture-recognition results, and local settings such as gesture mappings, sensitivity, switch state, and related preferences. Camera frames and recognition inputs are processed on-device and are not uploaded to Morrowware or Google. Recognition results are used to perform the actions you configure, such as taps, swipes, media controls, brightness changes, and supported phone actions.
MediaPipe on-device processing
AirSwipe uses Google MediaPipe Tasks for gesture recognition. Morrowware distributes a modified copy of MediaPipe Tasks Core 1.0.0 that replaces MediaPipe's usage logger with its no-operation logger and removes the remote usage logger, its generated logging messages, and its Google Data Transport dependencies. These changes disable transmission of MediaPipe usage and performance metrics. Details are available in the Open Source Licenses.
Play Age Signals
When you explicitly start a Pro purchase in a version that supports it, AirSwipe uses the Play Age Signals API. Google Play may request access to shared age signals. Depending on Google's response, the app may temporarily receive a sharing or verification status, age-range source, significant-change approval status, and, where applicable, an age range. AirSwipe uses the response only to determine whether a purchase is available, requires age verification, or requires guardian approval. It does not save the returned age signals in its own local storage or send them to Morrowware.
Google's processing is governed by the Google Privacy Policy.
Local logs, backups, and exported settings
AirSwipe keeps limited operational logs on your device for troubleshooting and maintenance. Logs may contain app events, errors, system state, and whether purchase approval is required. They do not contain camera frames, screen contents, private notification contents, payment-method details, or a specific age range. Logs rotate automatically, remain for no more than 15 days within storage managed directly by the app, are subject to a total size limit, and are not automatically uploaded to Morrowware.
Android system backup or device transfer may include some local settings and operational logs, depending on your device, account, system settings, and backup provider. AirSwipe excludes its device-local runtime-state preferences from backup and device transfer.
If you choose to export a configuration file, it may contain gesture mappings, sensitivity settings, switch state, and related preferences. The file is stored or shared only through the location or app you select. AirSwipe does not automatically upload exported configuration files.
Permissions and system capabilities
Depending on the features you enable, AirSwipe may use:
- Camera: to read the front-camera feed for on-device gesture recognition.
- Accessibility service: after you explicitly enable it, to perform configured system actions such as taps, swipes, and media controls.
- Modify system settings: only for brightness-related gesture actions.
- Notifications and foreground service: to keep recognition available and show its running status.
- Notification access: only after you enable Enhanced Media Control, to identify the active media session and target media actions. AirSwipe does not read, store, or upload private notification contents.
- Phone permissions: only for phone-related gesture actions that you configure, such as answering, declining, or ending a call. AirSwipe does not read call logs, contacts, phone numbers, or call contents and does not answer calls automatically.
- Internet: to communicate with Google Play for purchases, subscriptions, and age-appropriate access. The feedback feature hands a draft to your email app; AirSwipe does not send the message itself.
- Battery-optimization exemption: only when you choose to allow background battery use, to help keep gesture recognition available more reliably.
You can stop the corresponding processing by turning AirSwipe off, disabling gesture recognition or its accessibility service, revoking permissions or system access, clearing app data, or uninstalling the app. The affected features may then be unavailable.
3. FloatCalculator
FloatCalculator is an Android floating calculator. It processes calculation and conversion inputs and results, calculation and conversion history, history notes and pin states, history search terms, display state, floating-window preferences, and voice-related settings on your device.
Calculation and conversion content, history records, notes, and pin states are stored locally and are not uploaded to Morrowware. History search terms are processed temporarily during the current interface session, are not saved to the history database, and are not uploaded. FloatCalculator applies no fixed record-count limit to history; records remain until you delete them in the app, clear app data, or uninstall the app.
Android system backup or device transfer may include some settings, calculation and conversion history, notes, and pin states, depending on your device and backup settings. FloatCalculator excludes cached exchange-rate data from backup and device transfer.
Play Age Signals
When you explicitly start a Pro purchase or ask FloatCalculator to retry a Pro-availability check, FloatCalculator uses the Play Age Signals API in the same manner described for AirSwipe above. Returned age signals are used only for purchase eligibility, verification, or guardian-approval decisions and are not saved in FloatCalculator's local storage or sent to Morrowware.
Currency exchange rates
When currency conversion is used, FloatCalculator may request published exchange rates from the Frankfurter API. The request uses a fixed USD-based rates endpoint and does not include the amount being converted, selected currency pair, calculation input, or calculation history. Frankfurter and its infrastructure providers may process basic network information, such as an IP address, under their own policies.
Permissions and system capabilities
FloatCalculator may use display-over-other-apps access and a foreground service with notifications to provide its floating calculator; vibration for local touch feedback; Internet access for purchases, subscriptions, age signals, and exchange-rate retrieval; and a battery-optimization exemption only when you choose to allow background battery use.
You can delete individual or multiple history records, clear all history, clear the app's data in Android settings, or uninstall the app.
4. FloatCompass
FloatCompass uses compatible motion, magnetic-field, and pressure sensors to calculate compass readings and reference elevation. Magnetic north works without location access. If you enable location, FloatCompass uses precise location to display a nearby street address or, when unavailable, a broader area label; calibrate reference elevation; and calculate magnetic declination using Android's geomagnetic model. It requests continuous location updates while the compass page is expanded, the screen is on, and the device is unlocked. These continuous updates stop when you leave that page, minimize or close the overlay, or lock or turn off the screen. Separate, limited location requests may also be used during true-north setup.
FloatCompass uses Android's system geocoding service to translate coordinates into address or area labels. Depending on your device, the operating system's geocoding provider may process those coordinates under its own privacy practices. Morrowware does not receive your coordinates or geocoding requests.
When you save a place, FloatCompass stores its coordinates, the system-provided estimated horizontal accuracy radius, measurement and save times, any available address or area label, and text you provide to identify the place in private local app storage. Saved places are excluded from Android's app backup and device-transfer mechanisms by using the app's no-backup directory. They remain until you delete them in the app, clear the app's storage, or uninstall the app. The app does not provide cloud synchronization or upload saved places to Morrowware.
When you choose to open a saved place in a compatible map app, FloatCompass passes that place's coordinates and associated label to the selected app. The map provider handles those data under its own policies. When you choose to copy coordinates, FloatCompass places them on the Android clipboard. FloatCompass does not calculate routes or provide navigation.
FloatCompass also stores reference elevation calibration data, magnetic declination and its calculation time, and app settings locally. Raw motion, magnetic-field, and continuous pressure readings are not retained or sent to Morrowware. Continuous location results are held in memory for the current feature session; only places you explicitly save become saved-place records.
When you explicitly start a Pro purchase or ask FloatCompass to retry a Pro-availability check, FloatCompass uses the Play Age Signals API in the same manner described for AirSwipe above. Returned age signals are used only for purchase eligibility, verification, or guardian-approval decisions and are not saved in FloatCompass storage or sent to RevenueCat or Morrowware.
5. FloatMeasure
FloatMeasure uses display information reported by Android, such as screen dimensions, density, and physical pixel density, to draw rulers and a protractor. Basic measurement does not access the contents of apps shown beneath its overlay.
The app stores settings such as units, overlay position, size, orientation, opacity, and measurement geometry in local app preferences.
Element snapping and screen access
Element snapping is optional and off by default. If you turn on Snap to elements, accept its in-app screen-access disclosure, and enable its accessibility service in Android settings, FloatMeasure accesses screen images and window positions from other apps to find visible element boundaries and straight edges, including edges within images, and help align the ruler or protractor. The protractor uses detected straight edges or intersections to position its center and nearby straight edges to align its baseline or measurement ray. Colors near snapping markers are also analyzed to adjust all visible markers to one shared color when needed for visibility. Screen images may include personal or sensitive information shown in those apps.
Screen images are requested only while the ruler or protractor is expanded, Snap to elements and Automatic snapping are on, and the screen is on and unlocked. Automatic snapping in FloatMeasure settings is linked to the snapping button on either tool. Snapping targets are shown automatically, including a live preview while settings are open. Switching tools changes which boundaries are used for snapping. Capturing stops when you minimize or close the measurement overlay, lock or turn off the screen, turn off Automatic snapping or Snap to elements, or disable the accessibility service.
Screen images are processed temporarily in memory on your device. They are not saved to files or the photo library, written to logs, uploaded, or shared with Morrowware, RevenueCat, or other third parties. FloatMeasure does not perform optical character recognition (OCR), read text from the accessibility tree, or use this service to click or operate other apps. Temporary boundary geometry, limited scene-comparison samples, and marker contrast statistics are cleared when the capture session ends.
The element snapping preference and screen-access disclosure acceptance are stored locally and excluded from Android cloud backups and device transfers. When an update expands the screen-access scope, the app requires acceptance of the updated disclosure before element snapping resumes. Turning off Snap to elements stops screen processing without disabling the Android accessibility service. You can revoke system access by disabling FloatMeasure element snapping in Android accessibility settings.
Play Age Signals
On the first foreground use of each Android app process, FloatMeasure requests access to Play Age Signals. Google Play may show an age-signal sharing prompt. Depending on Google's response, the app may temporarily receive a sharing or verification status, age-range source, significant-change approval status, and, where applicable, an age range. FloatMeasure holds the result only in process memory to determine Pro purchase eligibility; free measurement features remain available. The app may request the signals again before a Pro purchase or when you retry a blocked Pro-eligibility check. It does not store age signals in app preferences or send them to RevenueCat or Morrowware.
6. Feedback and support email
When you choose a feedback option, the app opens your external email application. The draft may include the app version, Android version, device manufacturer, device model, and the RevenueCat app user ID for the current installation so that the developer can diagnose your issue or look up that installation. You decide whether to edit, discard, or send it.
If you send an email, Morrowware receives your email address, message, attachments you choose to include, related email metadata, and any diagnostics left in the message. This information is used only to respond, troubleshoot, prevent abuse, and maintain support records. Support correspondence is normally deleted within 24 months after the last interaction unless a longer period is reasonably necessary for security, dispute resolution, or legal compliance. You may request earlier deletion by emailing [email protected].
7. Local data, backup, and deletion
The apps do not provide Morrowware accounts, so there is no app account to delete. You can remove local app data through the controls described above, by clearing the app's storage, or by uninstalling it. System-managed backups may persist after local deletion and may later be restored or transferred; available backup options are controlled through your device and backup-provider settings. Reinstalled apps may query RevenueCat and Google Play again for purchases or subscriptions associated with the current Google Play account.
Purchase, subscription, payment, geocoding, and other data held by third parties are handled under their policies. Morrowware can act on supported RevenueCat customer-deletion requests but cannot directly delete data controlled by Google Play or other independent providers.
8. Morrowware website
The website code stores your language choice and a short-lived redirect guard in your browser's session storage. This data is removed when the browser session ends. The website does not set first-party tracking cookies or include client-side user-behavior analytics.
The website is delivered through Cloudflare. Cloudflare may process IP addresses, request and routing metadata, security signals, and other network information needed to deliver, protect, and troubleshoot the site and provide basic traffic statistics. Depending on its security configuration, Cloudflare may use strictly necessary cookies. This processing is governed by Cloudflare's Privacy Policy.
9. Sharing and disclosure
Morrowware does not share app data with data brokers. Information may be disclosed only when you direct a transfer, when a service provider must process it to provide a feature, operate or secure the website, or deliver email, or when disclosure is reasonably necessary to comply with law, enforce applicable terms, or protect users and services.
10. Security, children, and international processing
Reasonable technical and organizational measures are used to protect information under Morrowware's control. No storage or transmission method can be guaranteed to be completely secure.
The apps and website are not designed or marketed for children. Morrowware does not knowingly solicit personal information from children. If you believe a child has provided personal information through support email, contact Morrowware to request its deletion.
Website, RevenueCat, Google Play, exchange-rate, geocoding, and email service providers may process information in countries other than your own. Their processing is governed by their policies and applicable law.
11. Changes and contact
This policy may be updated when app behavior, website infrastructure, or legal requirements change. The date at the top identifies the current version. Material changes will be communicated as required by applicable law.
For privacy questions or requests to access or delete information held by Morrowware, email [email protected]. Please include enough information to identify the relevant support correspondence. Because Morrowware does not receive app-local data, that data must be removed through the app, Android, Google Play, or the relevant third-party service as described above.