Phase 1 — Critical Fixes: - Fix SOAP instructions not clearing on Clear button - Show transcription provider (AWS/OpenAI) in UI toast - Fix silent transcription failures in dictation and SOAP modules - Add IndexedDB audio backup system (24hr retention, retry from Settings) - Prevent duplicate encounter saves with idempotency keys - Add Save/Load/New bar to SOAP note generator Phase 2 — Features: - Dragon-like AI memory: auto-track user corrections, inject into prompts - Per-section template categories (SOAP, HPI, well visit, sick visit) - Bigger textarea for SOAP instructions - S3 document upload/management (AWS S3, Backblaze B2, MinIO compatible) - Faster transcription via lower bitrate recording (16kbps opus) Phase 3 — APK & CI/CD: - GitHub Actions: Docker build+push on version tags - GitHub Actions: TWA APK build for Obtainium auto-updates - Android TWA project with foreground service for background recording - Enhanced PWA manifest with shortcuts and maskable icons
70 lines
2.8 KiB
XML
70 lines
2.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
|
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
|
|
|
<application
|
|
android:allowBackup="true"
|
|
android:icon="@drawable/ic_launcher"
|
|
android:label="${launcherName}"
|
|
android:supportsRtl="true"
|
|
android:theme="@style/AppTheme">
|
|
|
|
<meta-data
|
|
android:name="asset_statements"
|
|
android:value='${assetStatements}' />
|
|
|
|
<activity
|
|
android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
|
|
android:exported="true"
|
|
android:label="${launcherName}">
|
|
|
|
<meta-data
|
|
android:name="android.support.customtabs.trusted.DEFAULT_URL"
|
|
android:value="${defaultUrl}" />
|
|
|
|
<meta-data
|
|
android:name="android.support.customtabs.trusted.STATUS_BAR_COLOR"
|
|
android:value="#FF2563EB" />
|
|
|
|
<meta-data
|
|
android:name="android.support.customtabs.trusted.NAVIGATION_BAR_COLOR"
|
|
android:value="#FF1E40AF" />
|
|
|
|
<meta-data
|
|
android:name="android.support.customtabs.trusted.SPLASH_IMAGE_DRAWABLE"
|
|
android:resource="@drawable/splash" />
|
|
|
|
<meta-data
|
|
android:name="android.support.customtabs.trusted.SPLASH_SCREEN_BACKGROUND_COLOR"
|
|
android:value="#FFFFFFFF" />
|
|
|
|
<meta-data
|
|
android:name="android.support.customtabs.trusted.SCREEN_ORIENTATION"
|
|
android:value="default" />
|
|
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
|
|
<intent-filter android:autoVerify="true">
|
|
<action android:name="android.intent.action.VIEW" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
<data android:scheme="https" android:host="${hostName}" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<!-- Foreground service for background audio recording -->
|
|
<service
|
|
android:name="com.pediatricscribe.twa.AudioRecordingService"
|
|
android:foregroundServiceType="microphone"
|
|
android:exported="false" />
|
|
|
|
</application>
|
|
</manifest>
|