<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- normal install-time permission, merged into the app manifest;
         the api-conventions section 6 exception for install-time permissions -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- biometric authentication uses a normal install-time permission. -->
    <uses-permission android:name="android.permission.USE_BIOMETRIC" />
    <!-- fastest sensor delivery above 200 hz is an install-time permission. -->
    <uses-permission android:name="android.permission.HIGH_SAMPLING_RATE_SENSORS" />
    <!-- background location watches run under a location-type foreground
         service; both are normal install-time permissions. -->
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
    <!-- biometrics-only authentication; normal install-time permission. -->
    <uses-permission android:name="android.permission.USE_BIOMETRIC" />
    <!-- screenshot and recording visibility callbacks; both normal
         install-time permissions, declared for the api 34/35 gates. -->
    <uses-permission android:name="android.permission.DETECT_SCREEN_CAPTURE" />
    <uses-permission android:name="android.permission.DETECT_SCREEN_RECORDING" />
    <!-- android 11 package visibility: Browser finds the Custom Tabs browser
         through this service action -->
    <queries>
        <intent>
            <action android:name="android.support.customtabs.action.CustomTabsService" />
        </intent>
    </queries>
    <!-- camera captures write into the app cache through this provider; the
    manifest merger carries it into the app, with the app's own id. -->
    <application>
        <receiver android:name="com.margelo.nitro.one.OneCalendarReminderReceiver" android:exported="false">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
            </intent-filter>
        </receiver>
        <provider
            android:name="dev.onejs.onenative.OneNativeFileProvider"
            android:authorities="${applicationId}.one-native.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/one_native_file_paths" />
        </provider>
        <service
            android:name="dev.onejs.onenative.OneLocationService"
            android:foregroundServiceType="location"
            android:exported="false" />
        <!-- crop editor for ImagePicker allowsEditing; the manifest merger
        carries it into the app. it is never exported: only the app's own
        picker launches it. -->
        <activity
            android:name="dev.onejs.onenative.OneNativeCropActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="false"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
        <!-- a scheduled notification's tap records its response here before
        the app opens; react native drops a tap that reaches an app activity
        recreated after process death. never exported: only the notification's
        pending intent launches it. -->
        <activity
            android:name="dev.onejs.onenative.OneNativeNotificationTapActivity"
            android:excludeFromRecents="true"
            android:exported="false"
            android:noHistory="true"
            android:taskAffinity=""
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    </application>
</manifest>
