<?xml version="1.0" encoding="utf-8"?>
<!--
/*
 * Copyright (C) 2011 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.cellbroadcastreceiver">

  <original-package android:name="com.android.cellbroadcastreceiver" />

  <uses-permission android:name="android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS" />
  <uses-permission android:name="android.permission.RECEIVE_SMS" />
  <uses-permission android:name="android.permission.RECEIVE_EMERGENCY_BROADCAST" />
  <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
  <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
  <uses-permission android:name="android.permission.MODIFY_CELL_BROADCASTS" />
  <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
  <uses-permission android:name="android.permission.STATUS_BAR" />
  <uses-permission android:name="android.permission.VIBRATE" />
  <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
  <uses-permission android:name="android.permission.MANAGE_USERS" />
  <uses-permission android:name="android.permission.DEVICE_POWER" />
  <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
  <uses-permission android:name="android.permission.READ_CELL_BROADCASTS" />
  <uses-permission android:name="android.permission.READ_SMS" />
  <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"/>
  <uses-permission android:name="com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY" />
  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
  <uses-permission android:name="android.permission.BLUETOOTH" />
  <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
  <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
  <uses-permission android:name="android.permission.WAKE_LOCK" />

  <uses-sdk android:minSdkVersion="21"/>

  <application android:name="CellBroadcastReceiverApp"
      android:label="@string/app_label"
      android:icon="@mipmap/ic_launcher_cell_broadcast"
      android:backupAgent="CellBroadcastBackupAgent"
      android:defaultToDeviceProtectedStorage="true"
      android:supportsRtl="true"
      android:directBootAware="true">

  <meta-data android:name="com.google.android.backup.api_key"
          android:value="AEdPqrEAAAAI2_Lb4sDI0e0twL-kf6GIqXpZIfrR0OhnM1pNJQ" />

  <service android:name="CellBroadcastAlertAudio"
        android:exported="false" />

    <service android:name="CellBroadcastAlertService"
        android:exported="false" />

    <service android:name="CellBroadcastConfigService"
        android:exported="false" />

    <service android:name="CellBroadcastAlertReminder"
        android:exported="false" />

    <provider android:name="CellBroadcastContentProvider"
        android:authorities="cellbroadcasts-app"
        android:readPermission="android.permission.READ_CELL_BROADCASTS" />

    <activity android:name="CellBroadcastListActivity"
        android:label="@string/app_label"
        android:theme="@style/CellBroadcastListActivityTheme"
        android:exported="true"
        android:configChanges="orientation|keyboardHidden" >
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <!-- Uncomment this category to show the Cell Broadcasts launcher icon.
             Otherwise, set "config_cellBroadcastAppLinks" to true in a config.xml overlay
             to add links to Cell Broadcast activities via Settings and MMS menu items.
                        <category android:name="android.intent.category.LAUNCHER" />
         -->
        <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
      <intent-filter>
        <action android:name="android.cellbroadcastreceiver.UPDATE_LIST_VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
    </activity>

    <!-- Alias activity for CellBroadcastListActivity. Once enabled, it will appear in the launcher -->
    <activity-alias android:name="CellBroadcastListLauncherActivity"
        android:targetActivity="CellBroadcastListActivity"
        android:enabled="false"
        android:exported="true">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
    </activity-alias>

    <!-- Settings opened by ListActivity menu, Settings app link or opt-out dialog. -->
    <activity android:name="CellBroadcastSettings"
        android:theme="@style/CellBroadcastSettingsTheme"
        android:label="@string/sms_cb_settings"
        android:exported="true" />

    <activity android:name="CellBroadcastAlertDialog"
        android:theme="@style/CellBroadcastAlertTheme"
        android:launchMode="singleTask"
        android:exported="false"
        android:excludeFromRecents="true"
        android:configChanges="orientation|keyboardHidden|screenSize|keyboard|navigation">
      <intent-filter>
        <action android:name="android.provider.Telephony.SMS_CB_RECEIVED" />
      </intent-filter>
    </activity>

    <!-- Container activity for CMAS opt-in/opt-out dialog. -->
    <activity android:name="CellBroadcastOptOutActivity"
        android:excludeFromRecents="true"
        android:exported="false" />

    <receiver android:name="CellBroadcastReceiver"
        android:exported="true">
      <intent-filter>
        <action android:name="android.provider.action.SMS_EMERGENCY_CB_RECEIVED" />
        <action android:name="android.provider.Telephony.SMS_CB_RECEIVED" />
        <action android:name="android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED" />
        <action android:name="android.intent.action.LOCALE_CHANGED" />
        <action android:name="android.telephony.action.DEFAULT_SMS_SUBSCRIPTION_CHANGED" />
        <action android:name="android.telephony.action.CARRIER_CONFIG_CHANGED" />
        <action android:name="android.intent.action.SERVICE_STATE" />
        <action android:name="android.intent.action.BOOT_COMPLETED" />
      </intent-filter>
      <intent-filter>
        <action android:name="android.telephony.action.SECRET_CODE" />
        <!-- CMAS: To toggle test mode for cell broadcast testing on userdebug build -->
        <data android:scheme="android_secret_code" android:host="2627" />
      </intent-filter>
    </receiver>

    <receiver android:name="com.android.cellbroadcastreceiver.CellBroadcastInternalReceiver"
              android:exported="false">
      <!-- No intent filter on purpose: this should only receive explicit intents -->
    </receiver>

    <provider
        android:name="CellBroadcastSearchIndexableProvider"
        android:authorities="com.android.cellbroadcastreceiver"
        android:multiprocess="false"
        android:grantUriPermissions="true"
        android:permission="android.permission.READ_SEARCH_INDEXABLES"
        android:exported="true">
      <intent-filter>
        <action android:name="android.content.action.SEARCH_INDEXABLES_PROVIDER" />
      </intent-filter>
    </provider>

  </application>
</manifest>
