1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (C) 2017 The Android Open Source Project
3
4     Licensed under the Apache License, Version 2.0 (the "License");
5     you may not use this file except in compliance with the License.
6     You may obtain a copy of the License at
7
8       http://www.apache.org/licenses/LICENSE-2.0
9
10     Unless required by applicable law or agreed to in writing, software
11     distributed under the License is distributed on an "AS IS" BASIS,
12     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13     See the License for the specific language governing permissions and
14     limitations under the License.
15-->
16
17<manifest
18    xmlns:android="http://schemas.android.com/apk/res/android"
19    package="com.android.car.dialer"
20    android:versionCode="10000"
21    android:versionName="1.0.0">
22
23    <uses-permission android:name="android.permission.BLUETOOTH"/>
24    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
25    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
26    <uses-permission android:name="android.permission.READ_CALL_LOG"/>
27    <uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
28    <uses-permission android:name="android.permission.READ_CONTACTS"/>
29    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
30    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
31    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
32    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
33    <uses-permission android:name="android.permission.CALL_PHONE"/>
34    <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
35    <uses-permission android:name="android.car.permission.ACCESS_CAR_PROJECTION_STATUS"/>
36    <uses-permission android:name="android.permission.SEND_SMS"/>
37    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
38
39    <!-- The Dialer needs to be directBootAware so that it can reflect the correct call state
40         when the system boots up. -->
41    <application
42        android:name=".DialerApplication"
43        android:directBootAware="true"
44        android:label="@string/phone_app_name"
45        android:icon="@drawable/ic_app_icon"
46        android:supportsRtl="true">
47
48        <activity android:name=".ui.TelecomActivity"
49                  android:launchMode="singleTask"
50                  android:theme="@style/Theme.Dialer.Telecom"
51                  android:label="@string/phone_app_name"
52                  android:exported="true"
53                  android:resizeableActivity="true">
54            <meta-data android:name="distractionOptimized" android:value="true"/>
55            <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/>
56            <intent-filter>
57                <action android:name="android.intent.action.MAIN"/>
58                <category android:name="android.intent.category.DEFAULT"/>
59                <category android:name="android.intent.category.LAUNCHER"/>
60            </intent-filter>
61            <intent-filter>
62                <action android:name="android.intent.action.DIAL"/>
63                <category android:name="android.intent.category.DEFAULT"/>
64            </intent-filter>
65            <intent-filter>
66                <action android:name="android.intent.action.CALL"/>
67                <category android:name="android.intent.category.DEFAULT"/>
68            </intent-filter>
69            <intent-filter>
70                <action android:name="android.intent.action.VIEW"/>
71                <action android:name="android.intent.action.DIAL"/>
72                <category android:name="android.intent.category.DEFAULT"/>
73                <data android:scheme="tel"/>
74            </intent-filter>
75
76            <intent-filter>
77                <action android:name="android.intent.action.SEARCH"/>
78                <category android:name="android.intent.category.DEFAULT"/>
79            </intent-filter>
80
81            <intent-filter>
82                <action android:name="android.intent.action.VIEW"/>
83                <category android:name="android.intent.category.DEFAULT"/>
84                <category android:name="android.intent.category.BROWSABLE"/>
85                <data android:mimeType="vnd.android.cursor.dir/calls"/>
86            </intent-filter>
87        </activity>
88
89        <activity android:name=".ui.activecall.InCallActivity"
90                  android:launchMode="singleInstance"
91                  android:exported="false"
92                  android:theme="@style/Theme.Dialer.InCall"
93                  android:label="@string/phone_app_name">
94            <meta-data android:name="distractionOptimized" android:value="true"/>
95        </activity>
96
97        <activity android:name=".ui.settings.DialerSettingsActivity"
98                  android:parentActivityName=".ui.TelecomActivity"
99                  android:launchMode="singleTask"
100                  android:exported="false"
101                  android:theme="@style/Theme.Dialer.Setting"
102                  android:label="@string/setting_title">
103        </activity>
104
105        <service android:name="com.android.car.dialer.telecom.InCallServiceImpl"
106                 android:permission="android.permission.BIND_INCALL_SERVICE"
107                 android:exported="true">
108            <meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="true"/>
109            <intent-filter>
110                <action android:name="android.telecom.InCallService"/>
111            </intent-filter>
112        </service>
113
114        <service
115            android:name="com.android.car.dialer.notification.NotificationService"
116            android:exported="false"
117            android:permission="android.permission.BIND_JOB_SERVICE">
118        </service>
119
120        <service android:name="com.android.car.dialer.sms.MessagingService"
121                 android:exported="false"
122                 android:permission="android.permission.BIND_JOB_SERVICE">
123        </service>
124
125        <receiver
126            android:directBootAware="true"
127            android:exported="false"
128            android:name="com.android.car.dialer.notification.MissedCallReceiver">
129            <intent-filter>
130                <action android:name="android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION"/>
131            </intent-filter>
132        </receiver>
133
134        <receiver
135            android:directBootAware="true"
136            android:exported="false"
137            android:name="com.android.car.dialer.storage.BluetoothBondedListReceiver">
138            <intent-filter>
139                <action android:name="android.bluetooth.device.action.BOND_STATE_CHANGED"/>
140            </intent-filter>
141        </receiver>
142
143    </application>
144</manifest>
145