1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (C) 2006 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 xmlns:android="http://schemas.android.com/apk/res/android"
18    package="com.android.dialer"
19    coreApp="true"
20    android:versionCode="30000"
21    android:versionName="3.00.00">
22
23    <uses-sdk
24        android:minSdkVersion="23"
25        android:targetSdkVersion="23" />
26
27    <uses-permission android:name="android.permission.CALL_PHONE" />
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_CALL_LOG" />
31    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
32    <uses-permission android:name="android.permission.READ_PROFILE" />
33    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
34    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
35    <uses-permission android:name="android.permission.GET_ACCOUNTS_PRIVILEGED"/>
36    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
37    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
38    <uses-permission android:name="android.permission.INTERNET" />
39    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
40    <uses-permission android:name="android.permission.NFC" />
41    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
42    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
43    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
44    <uses-permission android:name="android.permission.WAKE_LOCK" />
45    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
46    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
47    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
48    <uses-permission android:name="android.permission.VIBRATE" />
49    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
50    <uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE" />
51    <uses-permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL" />
52    <uses-permission android:name="com.android.voicemail.permission.WRITE_VOICEMAIL" />
53    <uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL" />
54    <uses-permission android:name="android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK" />
55    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
56    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
57    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
58    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
59    <!-- This tells the activity manager to not delay any of our activity
60     start requests, even if they happen immediately after the user
61     presses home. -->
62    <uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
63
64    <application
65        android:name="DialerApplication"
66        android:label="@string/applicationLabel"
67        android:icon="@mipmap/ic_launcher_phone"
68        android:hardwareAccelerated="true"
69        android:supportsRtl="true"
70        android:backupAgent='com.android.dialer.DialerBackupAgent'
71        android:usesCleartextTraffic="false">
72
73        <meta-data android:name="com.google.android.backup.api_key"
74            android:value="AEdPqrEAAAAIBXgtCEKQ6W0PXVnW-ZVia2KmlV2AxsTw3GjAeQ" />
75
76        <!-- The entrance point for Phone UI.
77             stateAlwaysHidden is set to suppress keyboard show up on
78             dialpad screen. -->
79        <activity android:name=".DialtactsActivity"
80            android:label="@string/launcherActivityLabel"
81            android:theme="@style/DialtactsActivityTheme"
82            android:launchMode="singleTask"
83            android:clearTaskOnLaunch="true"
84            android:icon="@mipmap/ic_launcher_phone"
85            android:windowSoftInputMode="stateAlwaysHidden|adjustNothing"
86            android:resizeableActivity="true"
87            android:directBootAware="true">
88            <intent-filter>
89                <action android:name="android.intent.action.DIAL" />
90                <category android:name="android.intent.category.DEFAULT" />
91                <category android:name="android.intent.category.BROWSABLE" />
92                <data android:mimeType="vnd.android.cursor.item/phone" />
93                <data android:mimeType="vnd.android.cursor.item/person" />
94            </intent-filter>
95            <intent-filter>
96                <action android:name="android.intent.action.DIAL" />
97                <category android:name="android.intent.category.DEFAULT" />
98                <category android:name="android.intent.category.BROWSABLE" />
99                <data android:scheme="voicemail" />
100            </intent-filter>
101            <intent-filter>
102                <action android:name="android.intent.action.DIAL" />
103                <category android:name="android.intent.category.DEFAULT" />
104            </intent-filter>
105            <intent-filter>
106                <action android:name="android.intent.action.MAIN" />
107                <category android:name="android.intent.category.DEFAULT" />
108                <category android:name="android.intent.category.LAUNCHER" />
109                <category android:name="android.intent.category.BROWSABLE" />
110            </intent-filter>
111            <intent-filter>
112                <action android:name="android.intent.action.VIEW" />
113                <action android:name="android.intent.action.DIAL" />
114                <category android:name="android.intent.category.DEFAULT" />
115                <category android:name="android.intent.category.BROWSABLE" />
116                <data android:scheme="tel" />
117            </intent-filter>
118            <intent-filter>
119                <action android:name="android.intent.action.VIEW" />
120                <category android:name="android.intent.category.DEFAULT" />
121                <category android:name="android.intent.category.BROWSABLE" />
122                <data android:mimeType="vnd.android.cursor.dir/calls" />
123            </intent-filter>
124            <intent-filter>
125                <action android:name="android.intent.action.CALL_BUTTON" />
126                <category android:name="android.intent.category.DEFAULT" />
127                <category android:name="android.intent.category.BROWSABLE" />
128            </intent-filter>
129            <!-- This was never intended to be public, but is here for backward
130                 compatibility.  Use Intent.ACTION_DIAL instead. -->
131            <intent-filter>
132                <action android:name="com.android.phone.action.TOUCH_DIALER" />
133                <category android:name="android.intent.category.DEFAULT" />
134                <category android:name="android.intent.category.TAB" />
135            </intent-filter>
136            <intent-filter android:label="@string/callHistoryIconLabel">
137                <action android:name="com.android.phone.action.RECENT_CALLS" />
138                <category android:name="android.intent.category.DEFAULT" />
139                <category android:name="android.intent.category.TAB" />
140            </intent-filter>
141            <meta-data
142                android:name="com.android.keyguard.layout"
143                android:resource="@layout/keyguard_preview" />
144        </activity>
145
146        <activity android:name="com.android.dialer.settings.DialerSettingsActivity"
147              android:label="@string/dialer_settings_label"
148              android:parentActivityName="com.android.dialer.DialtactsActivity"
149              android:theme="@style/SettingsStyle"
150              android:exported="false">
151        </activity>
152
153        <activity android:name="com.android.dialer.filterednumber.BlockedNumbersSettingsActivity"
154            android:label="@string/manage_blocked_numbers_label"
155            android:parentActivityName="com.android.dialer.settings.DialerSettingsActivity"
156            android:theme="@style/ManageBlockedNumbersStyle"
157            android:exported="false">
158        </activity>
159
160        <activity android:name="com.android.dialer.voicemail.VoicemailArchiveActivity"
161            android:label="@string/voicemail_archive_activity_title"
162            android:theme="@style/DialtactsThemeWithoutActionBarOverlay">
163        </activity>
164
165        <activity android:name="com.android.dialer.calllog.CallLogActivity"
166            android:label="@string/call_log_activity_title"
167            android:theme="@style/DialtactsThemeWithoutActionBarOverlay"
168            android:icon="@mipmap/ic_launcher_phone">
169        </activity>
170
171        <activity android:name="com.android.dialer.CallDetailActivity"
172            android:label="@string/callDetailTitle"
173            android:theme="@style/CallDetailActivityTheme"
174            android:parentActivityName="com.android.dialer.calllog.CallLogActivity"
175            android:icon="@mipmap/ic_launcher_phone">
176            <intent-filter>
177                <action android:name="android.intent.action.VIEW"/>
178                <category android:name="android.intent.category.DEFAULT"/>
179                <data android:mimeType="vnd.android.cursor.item/calls"/>
180            </intent-filter>
181        </activity>
182
183        <activity android:name="com.android.contacts.common.test.FragmentTestActivity">
184            <intent-filter>
185                <category android:name="android.intent.category.TEST"/>
186            </intent-filter>
187        </activity>
188
189        <activity android:name="com.android.contacts.common.dialog.CallSubjectDialog"
190                  android:theme="@style/Theme.CallSubjectDialogTheme"
191                  android:windowSoftInputMode="stateVisible|adjustResize">
192            <intent-filter>
193                <action android:name="android.intent.action.VIEW"/>
194            </intent-filter>
195        </activity>
196
197        <!-- Backwards compatibility: "Phone" from Gingerbread and earlier -->
198        <activity-alias android:name="DialtactsActivity"
199            android:targetActivity=".DialtactsActivity"
200            android:exported="true"
201        />
202
203        <!-- Backwards compatibility: "Call log" from Gingerbread and earlier -->
204        <activity-alias android:name="RecentCallsListActivity"
205            android:targetActivity=".DialtactsActivity"
206            android:exported="true"
207        />
208
209        <!-- Backwards compatibility: "Call log" from ICS -->
210        <activity-alias android:name=".activities.CallLogActivity"
211            android:targetActivity=".DialtactsActivity"
212            android:exported="true"
213        />
214
215        <!-- Used to filter contacts list by account -->
216        <activity
217            android:name="com.android.contacts.common.list.AccountFilterActivity"
218            android:label="@string/activity_title_contacts_filter"
219            android:theme="@style/ContactListFilterTheme"/>
220
221        <!-- Used to select display and sync groups -->
222        <activity
223            android:name="com.android.contacts.common.list.CustomContactListFilterActivity"
224            android:label="@string/custom_list_filter"
225            android:theme="@style/ContactListFilterTheme"/>
226
227        <activity
228            android:name="com.android.contacts.common.activity.RequestImportVCardPermissionsActivity"
229            android:label="@string/launcherActivityLabel"
230            android:theme="@style/BackgroundOnlyTheme"
231            android:exported="false"/>
232
233        <!-- vCard related -->
234        <activity android:name="com.android.contacts.common.vcard.ImportVCardActivity"
235                  android:configChanges="orientation|screenSize|keyboardHidden"
236                  android:theme="@style/BackgroundOnlyTheme">
237        </activity>
238
239        <activity android:name="com.android.contacts.common.vcard.NfcImportVCardActivity"
240                  android:configChanges="orientation|screenSize|keyboardHidden"
241                  android:theme="@style/BackgroundOnlyTheme">
242        </activity>
243
244        <activity android:name="com.android.contacts.common.vcard.CancelActivity"
245                  android:theme="@style/BackgroundOnlyTheme"/>
246
247        <activity android:name="com.android.contacts.common.vcard.SelectAccountActivity"
248                  android:theme="@style/BackgroundOnlyTheme"/>
249
250        <activity android:name="com.android.contacts.common.vcard.ExportVCardActivity"
251                  android:theme="@style/BackgroundOnlyTheme"/>
252
253        <activity android:name="com.android.contacts.common.vcard.ShareVCardActivity"
254                  android:theme="@style/BackgroundOnlyTheme" />
255
256        <service
257            android:name="com.android.contacts.common.vcard.VCardService"
258            android:exported="false"/>
259        <!-- end vCard related -->
260
261        <receiver android:name=".calllog.CallLogReceiver">
262            <intent-filter>
263                <action android:name="android.intent.action.NEW_VOICEMAIL" />
264                <data
265                    android:scheme="content"
266                    android:host="com.android.voicemail"
267                    android:mimeType="vnd.android.cursor.item/voicemail"
268                />
269            </intent-filter>
270            <intent-filter android:priority="100">
271                 <action android:name="android.intent.action.BOOT_COMPLETED"/>
272            </intent-filter>
273        </receiver>
274
275        <receiver android:name=".interactions.UndemoteOutgoingCallReceiver">
276            <intent-filter>
277                <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
278            </intent-filter>
279        </receiver>
280
281        <service
282            android:name=".calllog.CallLogNotificationsService"
283            android:directBootAware="true"
284            android:exported="false"
285        />
286
287        <receiver android:name=".calllog.MissedCallNotificationReceiver"
288            android:directBootAware="true">
289            <intent-filter>
290                <action android:name="android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION" />
291            </intent-filter>
292        </receiver>
293
294        <!-- Service to update a contact -->
295        <service
296            android:name=".contact.ContactUpdateService"
297            android:exported="false" />
298
299        <!-- Broadcast receiver that passively listens to location updates -->
300        <receiver android:name="com.android.contacts.common.location.CountryDetector$LocationChangedReceiver"/>
301
302        <!-- IntentService to update the user's current country -->
303        <service android:name="com.android.contacts.common.location.UpdateCountryService"
304            android:exported="false"/>
305
306        <!-- Main in-call UI activity.  This is never launched directly
307             from outside the phone app; instead, it's either launched by
308             the OutgoingCallBroadcaster (for outgoing calls), or as the
309             fullScreenIntent of a notification (for incoming calls.) -->
310        <activity android:name="com.android.incallui.InCallActivity"
311                  android:theme="@style/Theme.InCallScreen"
312                  android:label="@string/phoneAppLabel"
313                  android:excludeFromRecents="true"
314                  android:launchMode="singleInstance"
315                  android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|keyboardHidden"
316                  android:exported="false"
317                  android:screenOrientation="nosensor"
318                  android:directBootAware="true"
319                  android:resizeableActivity="true">
320        </activity>
321
322        <service android:name="com.android.incallui.InCallServiceImpl"
323                 android:permission="android.permission.BIND_INCALL_SERVICE"
324                 android:directBootAware="true" >
325            <meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="true" />
326            <meta-data android:name="android.telecom.IN_CALL_SERVICE_RINGING"
327                android:value="false"/>
328            <meta-data android:name="android.telecom.INCLUDE_EXTERNAL_CALLS"
329                       android:value="true"/>
330            <intent-filter>
331                <action android:name="android.telecom.InCallService"/>
332            </intent-filter>
333        </service>
334
335        <!-- BroadcastReceiver for receiving Intents from Notification mechanism. -->
336        <receiver android:name="com.android.incallui.NotificationBroadcastReceiver"
337            android:directBootAware="true"
338            android:exported="false" />
339
340        <provider
341            android:name=".database.FilteredNumberProvider"
342            android:authorities="com.android.dialer.database.filterednumberprovider"
343            android:exported="false"
344            android:multiprocess="false"
345            />
346
347        <provider
348            android:name="android.support.v4.content.FileProvider"
349            android:authorities="@string/contacts_file_provider_authority"
350            android:grantUriPermissions="true"
351            android:exported="false">
352            <meta-data
353                android:name="android.support.FILE_PROVIDER_PATHS"
354                android:resource="@xml/file_paths" />
355        </provider>
356
357        <provider
358            android:name=".database.VoicemailArchiveProvider"
359            android:authorities="com.android.dialer.database.voicemailarchiveprovider"
360            android:exported="false"
361            android:multiprocess="false"
362            />
363    </application>
364</manifest>
365