<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2017 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License
  -->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.phone.testapps.smsmanagertestapp">
    <uses-sdk android:minSdkVersion="24"
         android:targetSdkVersion="29"/>
    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.PERFORM_IMS_SINGLE_REGISTRATION"/>
    <application android:label="SmsManagerTestApp">
        <activity android:name=".SmsManagerTestApp"
             android:label="SmsManagerTestApp"
             android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <service android:name=".SmsManagerTestService"
             android:exported="false"/>
        <receiver android:name=".SendStatusReceiver"
             android:exported="false">
            <intent-filter>
                <action android:name="com.android.phone.testapps.smsmanagertestapp.message_sent_action"/>
                <data android:scheme="content"/>
            </intent-filter>
        </receiver>
        <service android:name=".PersistentService"
                 android:exported="false"
                 android:process=":persistent"
                 android:permission="android.permission.BIND_CARRIER_MESSAGING_CLIENT_SERVICE">
            <intent-filter>
                <action android:name="android.telephony.action.CARRIER_MESSAGING_CLIENT_SERVICE" />
            </intent-filter>
        </service>

        <!-- Stuff required to become the default messaging app defined below, doesn't actually do
             anything useful for now. -->

        <!-- Fake BroadcastReceiver that listens for incoming SMS messages -->
        <receiver android:name=".SmsReceiver"
                  android:exported="true"
                  android:permission="android.permission.BROADCAST_SMS">
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_DELIVER" />
            </intent-filter>
        </receiver>

        <!-- Fake BroadcastReceiver that listens for incoming MMS messages -->
        <receiver android:name=".MmsReceiver"
                  android:permission="android.permission.BROADCAST_WAP_PUSH"
                  android:exported="true">
            <intent-filter>
                <action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
                <data android:mimeType="application/vnd.wap.mms-message" />
            </intent-filter>
        </receiver>

        <!-- Fake Activity that allows the user to send new SMS/MMS messages -->
        <activity android:name=".ComposeSmsActivity" android:exported="true" >
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <action android:name="android.intent.action.SENDTO" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="sms" />
                <data android:scheme="smsto" />
                <data android:scheme="mms" />
                <data android:scheme="mmsto" />
            </intent-filter>
        </activity>

        <!-- Fake Service that delivers messages from the phone "quick response" -->
        <service android:name=".HeadlessSmsSendService"
                 android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE"
                 android:exported="true" >
            <intent-filter>
                <action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="sms" />
                <data android:scheme="smsto" />
                <data android:scheme="mms" />
                <data android:scheme="mmsto" />
            </intent-filter>
        </service>

    </application>
</manifest>
