<?xml version="1.0" encoding="utf-8"?>
<!--
     SPDX-FileCopyrightText: 2013 The CyanogenMod Project
     SPDX-FileCopyrightText: 2017-2024 The LineageOS Project
     SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.lineageos.setupwizard"
    android:versionCode="5"
    android:sharedUserId="android.uid.system">

    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    <uses-permission android:name="android.permission.STATUS_BAR" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
    <uses-permission android:name="android.permission.SET_TIME_ZONE" />
    <uses-permission android:name="android.permission.SET_TIME" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS_PRIVILEGED" />
    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
    <uses-permission android:name="android.permission.MANAGE_USERS" />
    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
    <uses-permission android:name="lineageos.permission.HARDWARE_ABSTRACTION_ACCESS" />
    <uses-permission android:name="android.permission.BACKUP" />
    <uses-permission android:name="android.permission.NETWORK_SETTINGS" />
    <uses-permission android:name="lineageos.permission.FINISH_SETUP" />
    <uses-permission android:name="lineageos.permission.WRITE_SETTINGS" />
    <uses-permission android:name="lineageos.permission.WRITE_SECURE_SETTINGS" />

    <permission
        android:name="lineageos.permission.FINISH_SETUP"
        android:protectionLevel="signatureOrSystem" />

    <protected-broadcast
        android:name="org.lineageos.setupwizard.LINEAGE_SETUP_COMPLETE"
        android:permission="lineageos.permission.FINISH_SETUP" />

    <protected-broadcast
        android:name="org.lineageos.setupwizard.SETUP_FINISHED"
        android:permission="lineageos.permission.FINISH_SETUP" />

    <application
        android:label="@string/app_name"
        android:icon="@mipmap/ic_launcher"
        android:theme="@style/Theme.Setup"
        android:uiOptions="none"
        android:taskAffinity="com.android.wizard"
        android:name=".SetupWizardApp">

        <activity
            android:theme="@style/NoDisplay"
            android:label="@string/activity_label_empty"
            android:name=".wizardmanager.WizardManager"
            android:enabled="false"
            android:exported="false"
            android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize"
            android:immersive="true">
            <intent-filter>
                <action android:name="com.android.wizard.LOAD" />
                <action android:name="com.android.wizard.NEXT" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".SetupWizardActivity"
            android:label="@string/activity_label_empty"
            android:lockTaskMode="normal"
            android:launchMode="singleTask"
            android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize"
            android:immersive="true"
            android:exported="true"
            android:windowSoftInputMode="stateAlwaysHidden"
            android:theme="@style/NoDisplay">

            <intent-filter android:priority="9">
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.intent.action.DEVICE_INITIALIZATION_WIZARD" />
                <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".BluetoothSetupActivity"
            android:label="@string/activity_label_empty"
            android:configChanges="mcc|mnc"
            android:immersive="true"
            android:exported="false"
            android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
                <action android:name="org.lineageos.setupwizard.LINEAGE_BLUETOOTH_SETUP" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".WelcomeActivity"
            android:label="@string/activity_label_empty"
            android:configChanges="mcc|mnc"
            android:immersive="true"
            android:exported="false"
            android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
                <action android:name="org.lineageos.setupwizard.LINEAGE_WELCOME" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".LocaleActivity"
            android:label="@string/activity_label_empty"
            android:configChanges="mcc|mnc"
            android:immersive="true"
            android:exported="false"
            android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
                <action android:name="org.lineageos.setupwizard.LINEAGE_LOCALE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".DateTimeActivity"
            android:label="@string/activity_label_empty"
            android:configChanges="mcc|mnc"
            android:immersive="true"
            android:exported="false"
            android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
                <action android:name="org.lineageos.setupwizard.LINEAGE_DATETIME" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".SimMissingActivity"
            android:label="@string/activity_label_empty"
            android:configChanges="mcc|mnc"
            android:immersive="true"
            android:exported="false"
            android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
                <action android:name="org.lineageos.setupwizard.LINEAGE_SIM_MISSING" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".NetworkSetupActivity"
            android:label="@string/activity_label_empty"
            android:configChanges="mcc|mnc"
            android:immersive="true"
            android:exported="false"
            android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
                <action android:name="org.lineageos.setupwizard.LINEAGE_NETWORK_SETUP" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".LocationSettingsActivity"
            android:label="@string/activity_label_empty"
            android:configChanges="mcc|mnc"
            android:immersive="true"
            android:exported="false"
            android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
                <action android:name="org.lineageos.setupwizard.LINEAGE_LOCATION_SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".BiometricActivity"
            android:label="@string/activity_label_empty"
            android:configChanges="mcc|mnc"
            android:immersive="true"
            android:exported="false"
            android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
                <action android:name="org.lineageos.setupwizard.LINEAGE_BIOMETRIC_SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".ScreenLockActivity"
            android:label="@string/activity_label_empty"
            android:configChanges="mcc|mnc"
            android:immersive="true"
            android:exported="false"
            android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
                <action android:name="org.lineageos.setupwizard.LINEAGE_LOCKSCREEN_SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".backup.RestoreIntroActivity"
            android:label="@string/activity_label_empty"
            android:configChanges="mcc|mnc"
            android:immersive="true"
            android:exported="true"
            android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
                <action android:name="org.lineageos.setupwizard.LINEAGE_RESTORE_BACKUP" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".ThemeSettingsActivity"
            android:label="@string/activity_label_empty"
            android:configChanges="mcc|mnc"
            android:immersive="true"
            android:exported="true"
            android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
                <action android:name="org.lineageos.setupwizard.THEME_SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".FinishActivity"
            android:label="@string/activity_label_empty"
            android:configChanges="mcc|mnc"
            android:immersive="true"
            android:exported="true"
            android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
                <action android:name="org.lineageos.setupwizard.LINEAGE_SETUP_COMPLETE" />
                <action android:name="org.lineageos.setupwizard.SETUP_FINISHED" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <receiver
            android:name=".PartnerReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="com.android.setupwizard.action.PARTNER_CUSTOMIZATION" />
                <action android:name="com.google.android.tvsetup.action.PARTNER_CUSTOMIZATION" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>
    </application>
</manifest>
