<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="GoogleAppIndexingWarning">

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.REORDER_TASKS" />
    <uses-permission android:name="android.permission.USES_POLICY_FORCE_LOCK" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
    <uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
    <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_CALENDAR"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
        android:maxSdkVersion="32" />

    <!-- Needed for some notification icons -->
    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
        tools:ignore="QueryAllPackagesPermission" />

    <application
        android:name=".Application"
        android:allowBackup="true"
        android:fullBackupContent="@xml/backup_descriptor"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher"
        android:supportsRtl="true"
        android:theme="@style/Theme.Material3.DayNight"
        android:dataExtractionRules="@xml/data_extraction_rules"
        tools:targetApi="s">
        <activity android:name=".activities.HelpActivity"
            android:label="@string/help_center"
            android:parentActivityName=".activities.MainActivity" />
        <activity
            android:name=".activities.AODTestActivity"
            android:theme="@style/AppThemeScreenOff"/>
        <activity
            android:name=".activities.LAFRulesActivity"
            android:label="@string/pref_look_and_feel_rules"
            android:launchMode="singleTop"
            android:parentActivityName=".activities.MainActivity" />
        <activity
            android:name=".activities.LAFWeatherActivity"
            android:label="@string/pref_look_and_feel_weather"
            android:launchMode="singleTop"
            android:parentActivityName=".activities.LAFWatchFaceActivity" />
        <activity
            android:name=".activities.LAFFilterNotificationsActivity"
            android:label="@string/pref_look_and_feel_filter_notifications"
            android:launchMode="singleTop"
            android:parentActivityName=".activities.LAFRulesActivity" />
        <activity
            android:name=".activities.LAFBrightnessActivity"
            android:label="@string/pref_ao_force_brightness_title"
            android:parentActivityName=".activities.LAFBehaviorActivity" />
        <activity
            android:name=".activities.LAFAlwaysOnLookActivity"
            android:label="@string/pref_look_and_feel_ao"
            android:parentActivityName=".activities.LAFWatchFaceActivity" />
        <activity
            android:name=".activities.LAFWFColorsActivity"
            android:label="@string/pref_look_and_feel_colors"
            android:parentActivityName=".activities.LAFWatchFaceActivity" />
        <activity
            android:name=".actions.TurnOnScreenActivity"
            android:excludeFromRecents="true"
            android:showOnLockScreen="true"
            android:theme="@style/AppThemeScreenOff" />

        <activity
            android:name=".activities.AboutActivity"
            android:label="@string/about"
            android:launchMode="singleTop"
            android:parentActivityName=".activities.MainActivity" />
        <activity
            android:name=".activities.LibraryActivity"
            android:label="@string/about_libraries"
            android:launchMode="singleTop"
            android:parentActivityName=".activities.AboutActivity" />
        <activity
            android:name=".activities.SetupActivity"
            android:theme="@style/Theme.Material3.DayNight.NoActionBar" />

        <receiver
            android:name=".receivers.AdminReceiver"
            android:description="@string/device_admin_description"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.BIND_DEVICE_ADMIN">
            <meta-data
                android:name="android.app.device_admin"
                android:resource="@xml/device_admin" />

            <intent-filter>
                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
            </intent-filter>
        </receiver>

        <activity
            android:name="io.github.domi04151309.alwayson.actions.alwayson.AlwaysOn"
            android:configChanges="orientation|screenSize"
            android:excludeFromRecents="true"
            android:launchMode="singleInstance"
            android:showOnLockScreen="true"
            android:taskAffinity=""
            android:theme="@style/AppThemeScreenOff" />

        <service
            android:name="io.github.domi04151309.alwayson.services.AlwaysOnTileService"
            android:icon="@drawable/ic_always_on_black"
            android:label="@string/AlwaysOn"
            android:exported="true"
            android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
            <intent-filter>
                <action android:name="android.service.quicksettings.action.QS_TILE" />
            </intent-filter>

            <meta-data
                android:name="android.service.quicksettings.ACTIVE_TILE"
                android:value="true" />
        </service>

        <receiver
            android:name=".receivers.BootCompletedReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
            </intent-filter>
        </receiver>

        <service
            android:name=".services.ForegroundService"
            android:enabled="true"
            android:exported="false"
            android:foregroundServiceType="specialUse"
            android:permission="" />
        <service
            android:name=".services.NotificationService"
            android:label="@string/notification_listener_description"
            android:exported="true"
            android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
            <intent-filter>
                <action android:name="android.service.notification.NotificationListenerService" />
            </intent-filter>
        </service>

        <activity
            android:name=".activities.MainActivity"
            android:theme="@style/Theme.Material3.DayNight.NoActionBar"
            android:launchMode="singleTop" />
        <activity
            android:name=".activities.PermissionsActivity"
            android:label="@string/pref_permissions"
            android:launchMode="singleTop"
            android:parentActivityName=".activities.MainActivity" />
        <activity
            android:name=".activities.SplashActivity"
            android:exported="true"
            android:theme="@style/AppThemeSplash">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <meta-data
                android:name="android.app.shortcuts"
                android:resource="@xml/shortcuts" />
        </activity>

        <receiver
            android:name="io.github.domi04151309.alwayson.receivers.AlwaysOnAppWidgetProvider"
            android:exported="true"
            android:label="@string/AlwaysOn">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                <action android:name="io.github.domi04151309.alwayson.ALWAYS_ON_STATE_CHANGED" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/always_on_widget_info" />
        </receiver>
        <receiver
            android:name=".receivers.PhoneStateReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE" />
            </intent-filter>
        </receiver>

        <activity
            android:name=".activities.LAFWatchFaceActivity"
            android:label="@string/pref_ao_watch_face"
            android:launchMode="singleTop"
            android:parentActivityName=".activities.MainActivity" />
        <activity
            android:name=".activities.LAFBackgroundActivity"
            android:label="@string/pref_ao_background"
            android:launchMode="singleTop"
            android:parentActivityName=".activities.MainActivity" />
        <activity
            android:name=".activities.LAFBackgroundImageActivity"
            android:label="@string/pref_ao_background_image"
            android:launchMode="singleTop"
            android:parentActivityName=".activities.LAFBackgroundActivity" />
        <activity
            android:name=".activities.LAFBehaviorActivity"
            android:label="@string/pref_ao_behavior"
            android:launchMode="singleTop"
            android:parentActivityName=".activities.MainActivity" />

        <activity
            android:name=".activities.LAFChargingLookActivity"
            android:label="@string/pref_look_and_feel_charging"
            android:parentActivityName=".activities.MainActivity" />
        <activity
            android:name=".actions.ChargingFlashActivity"
            android:configChanges="orientation|screenSize"
            android:excludeFromRecents="true"
            android:launchMode="singleInstance"
            android:showOnLockScreen="true"
            android:taskAffinity=""
            android:theme="@style/AppThemeScreenOff" />
        <activity
            android:name=".actions.ChargingCircleActivity"
            android:configChanges="orientation|screenSize"
            android:excludeFromRecents="true"
            android:launchMode="singleInstance"
            android:showOnLockScreen="true"
            android:taskAffinity=""
            android:theme="@style/AppThemeScreenOff" />
        <activity
            android:name=".actions.ChargingIOSActivity"
            android:configChanges="orientation|screenSize"
            android:excludeFromRecents="true"
            android:launchMode="singleInstance"
            android:showOnLockScreen="true"
            android:taskAffinity=""
            android:theme="@style/AppThemeScreenOff" />
    </application>

</manifest>