Privacy Policy
Khmer Keyboard
TripleEdge Studio provides Khmer Keyboard (package: com.tripleedgestudio.khmerkeyboard). This policy explains the app's local keyboard features and its optional voice, diagnostics, advertising and purchase services. No TripleEdge Studio account is required to type.
1. Keyboard input and local predictions
The keyboard processes key presses and the text needed to compose Khmer Unicode and suggest words on your device. Text you choose to insert goes to the app containing the active text field. That app may store or transmit it under its own privacy policy. The bundled Khmer dictionary and prediction searches are local; there is no cloud prediction service.
Khmer Keyboard does not send typed text, surrounding editor text, learned words, clipboard contents or voice transcripts to Firebase Analytics, Crashlytics or advertising requests. The app does not log keyboard content. This does not mean its optional online services collect no data: their processing is described below.
Personalized Suggestions is off by default. If enabled, the keyboard stores completed Khmer words, usage counts and last-used timestamps locally to improve ranking. It does not store full sentences for personalization. Turning personalization off stops learning and use of existing entries; use Clear Learned Words to delete them.
Fields identified as sensitive or password fields suppress predictions, learning, clipboard history and voice input. These protections depend on the field information supplied by the other app. Do not assume every app correctly identifies a sensitive field.
2. Clipboard history
Clipboard history is off by default. When you enable it, the keyboard can read eligible text from Android's clipboard while the keyboard is shown and the active field is not sensitive. History is stored in private app storage, encrypted with AES-GCM using a key managed by Android Keystore. It is not uploaded to TripleEdge Studio or supplied to ads or diagnostics.
The app filters common password, verification-code and payment-card patterns, but cannot detect every secret. Avoid copying sensitive information into history. You can remove entries, clear history and turn off future capture. Turning history off does not itself delete previously saved entries. Clearing app history does not erase Android's system clipboard or copies held by other apps.
Unpinned entries use your selected retention setting: 1 hour, 24 hours (default), or 7 days. Expired entries are pruned when history is loaded or updated, not by a guaranteed background deletion timer. Pinned entries are exempt from time-based expiry but can be removed manually or by the history capacity limit. History is limited to 50 items.
3. Voice typing and microphone access
Voice typing is optional and requires microphone permission. Recognition starts when you choose the microphone control, supports Khmer or English when the device's speech service supports that language, and inserts the final recognized text into the current eligible field. You can cancel recognition and revoke microphone access in Android Settings.
The app uses Android's configured speech recognition service. That service may send audio to Google or another provider for processing; offline recognition is not guaranteed. Its own terms and privacy policy govern audio handling and retention. Khmer Keyboard does not save audio recordings or log transcripts, and does not send them to its diagnostics or purchase service. Text inserted into another app is then subject to that app's handling.
4. Optional Firebase Analytics and Crashlytics
Analytics and crash reporting have separate opt-in controls in the companion app's settings and both default to off. When enabled, Firebase Analytics can process app-instance identifiers, device information and usage events; Crashlytics can process installation identifiers, technical crash reports and device or app diagnostics. These are not described as anonymous data.
The app's custom Analytics events concern keyboard setup, settings, theme or app-language changes, opening the emoji panel, and voice-session start or coarse failure categories. Event parameters are restricted to approved categories, not text you type or dictate. Google Analytics advertising-ID collection and ad-personalization signals are disabled separately in the app configuration; this does not disable AdMob's own data processing.
You can disable either optional diagnostic service in settings. Disabling future collection does not automatically erase information already processed by a provider. See Firebase privacy and security information for provider practices. Turning optional diagnostics off does not disable purchase verification or its app-integrity checks.
5. Advertising and consent
The companion dashboard can show Google AdMob banner ads. The keyboard typing interface is ad-free for everyone. The current app does not place interstitials or rewarded ads in a user flow. Ad requests require the app's eligibility checks and Google User Messaging Platform (UMP) consent status. Confirmed Pro users do not receive companion-app ads; requests are also held while premium restoration is unresolved.
Google's Mobile Ads SDK may process IP addresses, advertising or other device identifiers, ad interactions and diagnostics for advertising, measurement and fraud prevention. An IP address may indicate approximate location. The keyboard does not add typed text, clipboard content, learned words or voice transcripts to ad requests. Review Google's Mobile Ads data disclosure and Google's Privacy Policy.
UMP presents consent choices where applicable. Use the advertising privacy option in settings when it is available, and Android's advertising-ID controls where supported. Advertising choices and the optional Firebase diagnostic switches are separate controls. Non-personalized or limited ads must not be assumed to involve no provider data processing.
6. Google Play Billing and purchase verification
The app includes an optional one-time, non-consumable Pro product, khmerkeyboard_pro, intended to remove companion-app ads. Product availability and the localized price come from Google Play. Checkout stays unavailable when an eligible product or secure verification service is unavailable; this policy does not promise that purchases are currently live.
Google Play processes payment. The app and verification code do not receive or store payment-card details. When verification is available, the app sends the product ID and purchase token to a Firebase Functions endpoint. The backend uses Google Play Developer API to check the fixed package, product, token and completed purchase state before acknowledging and activating an entitlement.
The implemented backend stores server-only entitlement records in Firestore using a SHA-256 hash of the purchase token, with package/product identifiers, active or revoked status and verification/update/revocation timestamps. It does not store the token in plaintext or log it. Google Play purchase and voided-purchase notifications are used to reconcile completed, cancelled or refunded purchases when that integration is deployed and configured.
Firebase App Check with Google Play Integrity protects the callable endpoints; Google and Firebase may process app/device integrity information for that purpose. A client purchase callback or pending payment never unlocks Pro. Restoration uses Play ownership and server verification, including after reinstall or device change with the purchasing Play account. An unresolved or offline restoration does not create an offline Pro entitlement and holds ads until the result is resolved.
7. Local storage, permissions and deletion
Preferences, recent emojis, learned words and clipboard history are held locally for the app features you use. Android cloud backup and device-transfer backup of this app's private data are disabled in its configuration. Clearing app storage or uninstalling removes local app data; Google Play purchase history and provider-held information are separate.
Microphone permission supports optional voice typing. Network access supports consent, ads, diagnostics and purchase verification; the keyboard's core typing and local predictions do not require a cloud prediction connection. Android's keyboard enable/select controls let you disable or switch away from Khmer Keyboard.
8. Retention, providers and privacy requests
Local settings and learned words remain until you clear them or remove app data, subject to the clipboard expiry rules above. Provider-held diagnostics, purchase records and support correspondence follow their applicable settings, obligations and policies; this policy does not promise an unverified fixed retention period or automatic server deletion on uninstall.
Google/Firebase and the speech provider may process information outside your country. Their service policies describe their processing and safeguards. If you email support, you choose what to share; your email address, message and attachments are used to handle that request. Do not include passwords, full purchase tokens, payment-card details or private keyboard/clipboard text.
Contact us for questions or access/deletion requests concerning information you have shared with us. Describe the request without sending secrets. Google Play payment records and speech-provider data may also require contacting the relevant provider. Any rights that apply depend on applicable law and the records held.
9. Changes and contact
We may update this policy as app features or provider integrations change. The date above identifies this revision. For help, see Support.