Files
simplefileupload-android/app/src/main/AndroidManifest.xml
Matt Hills 4ac3114064 Add integrated onboarding carousel with permissions and server setup
Replaces separate welcome and server setup screens with a unified 5-page
onboarding carousel that guides users through:
- App introduction and backend requirements
- Notification permission with explanation
- All files access permission with explanation
- Server configuration (address, port, key) with QR scanning
- Completion confirmation

Also adds notification permission checks before uploads to ensure upload
progress notifications can be displayed. Users are prompted for permission
if not already granted, then upload proceeds automatically.

Changes:
- Create OnboardingScreen.kt with 5-page carousel flow
- Add onboarding completion tracking to PreferencesUtil
- Update navigation to show onboarding on first launch
- Add notification permission checks to upload tabs
- Add roundIcon attribute to manifest for better icon display
2025-12-27 19:43:49 -05:00

70 lines
3.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.mattintech.simplelogupload">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission android:name="android.permission.CAMERA" />
<application
android:allowBackup="false"
android:icon="@drawable/ic_app_icon"
android:roundIcon="@drawable/ic_app_icon"
android:label="SimpleLogUpload"
android:networkSecurityConfig="@xml/network_security_config"
android:supportsRtl="true"
android:largeHeap="true"
android:requestLegacyExternalStorage="true"
android:usesCleartextTraffic="false"
android:theme="@style/Theme.AppCompat.DayNight.DarkActionBar">
<!-- NEW: Compose Main Activity (LAUNCHER) -->
<activity
android:name=".ComposeMainActivity"
android:exported="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<!-- LAUNCHER - App starts here -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- Share intent filter for files -->
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<!-- Share intent filter for multiple files -->
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
<!-- QR Code Scanner Activity -->
<activity
android:name="com.journeyapps.barcodescanner.CaptureActivity"
android:screenOrientation="portrait"
android:stateNotNeeded="true"
android:theme="@style/zxing_CaptureTheme"
android:windowSoftInputMode="stateAlwaysHidden"
tools:replace="screenOrientation" />
<!-- File Upload Foreground Service -->
<service
android:name=".service.FileUploadForegroundService"
android:enabled="true"
android:exported="false"
android:foregroundServiceType="dataSync" />
</application>
</manifest>