Privacy policy
HanFlow teaches Mandarin without requiring an account. Android version 3.64.0 and later is a local-first edition: it has no Google sign-in or external AI-provider connection. Learning progress stays on your device unless you export a backup. Advertising, optional device speech services, model diagnostics and voluntary content reports can still transfer data as described below.
Effective date: 1 October 2026
Information stored locally
HanFlow stores learning answers, mastery estimates, preferences, downloaded model status, and optional provider configuration on your device. API keys remain in local application storage and are excluded from progress exports and Google synchronization.
Google account synchronization in other editions
This section applies to the website and Android versions before 3.64.0. The local-first Android edition never connects or restores Google authorization, even if an older installation had sync enabled. Upgrading does not erase snapshots already stored in Google Drive.
If you explicitly connect Google synchronization, HanFlow requests only the drive.appdata scope. It stores per-device learning-progress snapshots, a random device identifier, a device label, and synchronization timestamps in the hidden Google Drive application-data folder.
HanFlow uses this information only to merge and restore your learning progress across your devices. It cannot access your ordinary Google Drive files. It does not sell, advertise with, or share Google user data with third parties.
HanFlow's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including its Limited Use requirements.
Optional AI providers in other editions
This section applies to the website and Android versions before 3.64.0. In the local-first Android edition, external AI requests and provider setup are disabled for everyone. Existing keys from earlier versions remain stored locally until you remove them; they are not used or sent to providers.
If you enable cloud AI, prompts needed for the selected learning feature are sent directly to the provider you configure. A handwriting image is also sent when you request cloud handwriting checking. If cloud AI is disabled or no provider key is saved, handwriting comparison stays on your device. Google Drive synchronization does not send your progress to an AI provider. Offline learning and included adaptive activities remain available when cloud AI is disabled.
AI content reports
If you choose to report an AI-generated story, HanFlow sends the reported story, AI engine label, selected reason, optional note, platform type, timestamp, and random report identifiers to HanFlow's Cloudflare-hosted report store. HanFlow does not automatically include your Google identity, learning progress, recordings, drawings, or API keys. Avoid including personal information in your optional note. Reports are retained for up to 180 days so safety problems can be reviewed and prevented.
Microphone and pronunciation clips
Microphone access is requested only when you start pronunciation or spoken-conversation practice. Audio is processed by the speech-recognition service selected on your device or in your browser. On Android, HanFlow temporarily caches only the latest pronunciation clip so you can replay it after an error. The clip is replaced by the next attempt, deleted during normal app shutdown, excluded from backups and synchronization, and never sent to a HanFlow server.
On-device recognition and model diagnostics
Android handwriting recognition runs on your device after its language model is downloaded. Supported on-device AI also processes learning requests locally. Google's ML Kit libraries can send device and application information, device, account or installation identifiers, model and language configuration, performance metrics, usage events and error codes to Google for diagnostics and usage analytics. This telemetry uses HTTPS. In editions that offer external AI, optional cloud handwriting checking is separate and sends the requested drawing to your chosen provider.
Retention and control
Reset all progress clears learning progress and settings on this device. In editions offering Google sync, it also pauses sync here. It is not a full data wipe: separately stored provider keys, age information, queued reports and native ad credit remain. Synchronized snapshots remain in Google Drive application data until you remove HanFlow's stored application data or delete your Google account. Disconnecting one device stops future synchronization on that device but does not erase progress from other devices. Reconnecting can restore cloud progress.
Security
Google access tokens are short-lived and kept only in memory. HanFlow does not store Google passwords or OAuth refresh tokens. Data is transferred over HTTPS.
Age assurance
HanFlow may request an age range from Google Play to provide age-appropriate advertising and features. If an age range is unavailable, HanFlow can ask for a date of birth locally, immediately convert it to an age band, and discard the entered date. Only the resulting age band is stored on the device. Age information is used only for age-appropriate access, privacy, and advertising treatment.
Advertising
Web practice and the starter guide do not load advertising. The Android app may use Google AdMob after its free question allowances. The advertising services may process IP addresses, which can estimate general location, product interactions, diagnostic information, consent choices, and device or account identifiers for advertising, analytics, measurement, and fraud prevention. Advertising never receives HanFlow learning answers or Google Drive content. Advertising requests are encrypted in transit.
Where required, Google's consent platform presents privacy choices before advertising is requested. Those choices can be reopened from HanFlow settings.
HanFlow has no in-app purchases or subscriptions, so it collects no payment or purchase-history information.
Rewarded ad credit
When you choose a rewarded ad, HanFlow stores a local receipt identifier, completion status, reported ad value converted to GBP microcredits, balance, credit spent, and ad-free unlock status. This ledger is used only to award credit once and apply your unlocks. It is not included in learning-progress exports, Google synchronization, Android cloud backups or device transfer. The ledger and unlocks remain when learning progress is reset, but clearing application storage or uninstalling removes them.
Delete HanFlow data
- To clear local learning progress and settings, choose Reset all progress in Settings. This preserves your ad credit and ad-free unlocks.
- In Android 3.64.0 and later, use Clear saved API keys from older versions in AI and models; the button appears only when old keys are present. In other editions, select each provider in AI teacher settings and choose Clear key.
- To remove all installation-local data, including ad credit, unlocks, queued reports and saved provider keys, clear HanFlow's app storage through Android settings or uninstall it. Credit and unlocks cannot be restored from a learning backup or Google sync. On the website, use your browser's controls to clear HanFlow site data.
- If you used Google sync, disconnect it on any devices or browser installations that still offer it to stop further uploads. Android 3.64.0 and later does not reconnect. In Google Drive settings, open Manage apps, find HanFlow and delete its hidden app data. Disconnecting alone does not erase stored snapshots.
Submitted AI-content reports expire within 180 days. If you contact us about a report, include its story title, approximate report date and enough detail to identify it. Include a report identifier only if you have one. Do not send Google credentials, API keys or unrelated personal information.
HanFlow has no separate user account to close. Data already held by an advertising, speech or cloud AI provider is governed by that provider's privacy controls and retention rules. A HanFlow reset or deletion request does not delete your Google account or external provider account.
Contact
Privacy questions or deletion requests: [email protected].
General help with HanFlow: [email protected].