- RECORD_AUDIO permission granted to the WebView (onPermissionRequest)
- the chat's single composer button becomes a microphone when the input is
empty and voice input is available; recording stops into server-side ASR
(/api/transcribe) when the browser has no Web Speech API
- version 1.2.0
- signed release builds via keystore.properties (gitignored)
- Android App Links (https://chat.n1ko.dev/app-auth) verified through
/.well-known/assetlinks.json; nikogpt:// stays as fallback
- attach sheet with File/Camera (FileProvider)
- Share to NikoGPT (ACTION_SEND text)
- user agent carries the app version so the web UI can offer updates
- try Credential Manager first; on any failure fall back to the legacy
GoogleSignIn API, which microG implements
- only when no Google provider is available (isGooglePlayServicesAvailable
fails) use the browser flow with the nikogpt:// hand-back
- README: document the order and the Android OAuth client requirements
- version 1.0.4
- window.NikoGPTAndroid bridge: the web app asks the app for the native
account picker; the returned ID token is posted through the WebView
- falls back to the browser flow (nikogpt:// deep link handoff) when the
provider is missing (microG) or the user cancels
- version 1.0.3
- flush the WebView cookie store in onStop/onPageFinished: Chromium batches
cookie writes, so the session could be lost when Android killed the process
- English default strings + values-ru translations
- bump to 1.0.1
- Android 10+ (minSdk 29), target/compile SDK 35
- chat.n1ko.dev only; other links open in the system browser
- system file picker for attachments, DownloadManager for files
- TLS never bypassed, no cleartext, no analytics
- pull-to-refresh, back navigation, progress and retry screen