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:icon="@mipmap/ic_launcher_phone">
175            <intent-filter>
176                <action android:name="android.intent.action.VIEW"/>
177                <category android:name="android.intent.category.DEFAULT"/>
178                <data android:mimeType="vnd.android.cursor.item/calls"/>
179            </intent-filter>
180        </activity>
181
182        <activity android:name="com.android.contacts.common.test.FragmentTestActivity">
183            <intent-filter>
184                <category android:name="android.intent.category.TEST"/>
185            </intent-filter>
186        </activity>
187
188        <activity android:name="com.android.contacts.common.dialog.CallSubjectDialog"
189                  android:theme="@style/Theme.CallSubjectDialogTheme"
190                  android:windowSoftInputMode="stateVisible|adjustResize">
191            <intent-filter>
192                <action android:name="android.intent.action.VIEW"/>
193            </intent-filter>
194        </activity>
195
196        <!-- Backwards compatibility: "Phone" from Gingerbread and earlier -->
197        <activity-alias android:name="DialtactsActivity"
198            android:targetActivity=".DialtactsActivity"
199            android:exported="true"
200        />
201
202        <!-- Backwards compatibility: "Call log" from Gingerbread and earlier -->
203        <activity-alias android:name="RecentCallsListActivity"
204            android:targetActivity=".DialtactsActivity"
205            android:exported="true"
206        />
207
208        <!-- Backwards compatibility: "Call log" from ICS -->
209        <activity-alias android:name=".activities.CallLogActivity"
210            android:targetActivity=".DialtactsActivity"
211            android:exported="true"
212        />
213
214        <!-- Used to filter contacts list by account -->
215        <activity
216            android:name="com.android.contacts.common.list.AccountFilterActivity"
217            android:label="@string/activity_title_contacts_filter"
218            android:theme="@style/ContactListFilterTheme"/>
219
220        <!-- Used to select display and sync groups -->
221        <activity
222            android:name="com.android.contacts.common.list.CustomContactListFilterActivity"
223            android:label="@string/custom_list_filter"
224            android:theme="@style/ContactListFilterTheme"/>
225
226        <activity
227            android:name="com.android.contacts.common.activity.RequestImportVCardPermissionsActivity"
228            android:label="@string/launcherActivityLabel"
229            android:theme="@style/BackgroundOnlyTheme"
230            android:exported="false"/>
231
232        <!-- vCard related -->
233        <activity android:name="com.android.contacts.common.vcard.ImportVCardActivity"
234                  android:configChanges="orientation|screenSize|keyboardHidden"
235                  android:theme="@style/BackgroundOnlyTheme">
236        </activity>
237
238        <activity android:name="com.android.contacts.common.vcard.NfcImportVCardActivity"
239                  android:configChanges="orientation|screenSize|keyboardHidden"
240                  android:theme="@style/BackgroundOnlyTheme">
241        </activity>
242
243        <activity android:name="com.android.contacts.common.vcard.CancelActivity"
244                  android:theme="@style/BackgroundOnlyTheme"/>
245
246        <activity android:name="com.android.contacts.common.vcard.SelectAccountActivity"
247                  android:theme="@style/BackgroundOnlyTheme"/>
248
249        <activity android:name="com.android.contacts.common.vcard.ExportVCardActivity"
250                  android:theme="@style/BackgroundOnlyTheme"/>
251
252        <activity android:name="com.android.contacts.common.vcard.ShareVCardActivity"
253                  android:theme="@style/BackgroundOnlyTheme" />
254
255        <service
256            android:name="com.android.contacts.common.vcard.VCardService"
257            android:exported="false"/>
258        <!-- end vCard related -->
259
260        <receiver android:name=".calllog.CallLogReceiver">
261            <intent-filter>
262                <action android:name="android.intent.action.NEW_VOICEMAIL" />
263                <data
264                    android:scheme="content"
265                    android:host="com.android.voicemail"
266                    android:mimeType="vnd.android.cursor.item/voicemail"
267                />
268            </intent-filter>
269            <intent-filter android:priority="100">
270                 <action android:name="android.intent.action.BOOT_COMPLETED"/>
271            </intent-filter>
272        </receiver>
273
274        <receiver android:name=".interactions.UndemoteOutgoingCallReceiver">
275            <intent-filter>
276                <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
277            </intent-filter>
278        </receiver>
279
280        <service
281            android:name=".calllog.CallLogNotificationsService"
282            android:directBootAware="true"
283            android:exported="false"
284        />
285
286        <receiver android:name=".calllog.MissedCallNotificationReceiver"
287            android:directBootAware="true">
288            <intent-filter>
289                <action android:name="android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION" />
290            </intent-filter>
291        </receiver>
292
293        <!-- Service to update a contact -->
294        <service
295            android:name=".contact.ContactUpdateService"
296            android:exported="false" />
297
298        <!-- Broadcast receiver that passively listens to location updates -->
299        <receiver android:name="com.android.contacts.common.location.CountryDetector$LocationChangedReceiver"/>
300
301        <!-- IntentService to update the user's current country -->
302        <service android:name="com.android.contacts.common.location.UpdateCountryService"
303            android:exported="false"/>
304
305        <!-- Main in-call UI activity.  This is never launched directly
306             from outside the phone app; instead, it's either launched by
307             the OutgoingCallBroadcaster (for outgoing calls), or as the
308             fullScreenIntent of a notification (for incoming calls.) -->
309        <activity android:name="com.android.incallui.InCallActivity"
310                  android:theme="@style/Theme.InCallScreen"
311                  android:label="@string/phoneAppLabel"
312                  android:excludeFromRecents="true"
313                  android:launchMode="singleInstance"
314                  android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|keyboardHidden"
315                  android:exported="false"
316                  android:screenOrientation="nosensor"
317                  android:directBootAware="true"
318                  android:resizeableActivity="true">
319        </activity>
320
321        <service android:name="com.android.incallui.InCallServiceImpl"
322                 android:permission="android.permission.BIND_INCALL_SERVICE"
323                 android:directBootAware="true" >
324            <meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="true" />
325            <meta-data android:name="android.telecom.IN_CALL_SERVICE_RINGING"
326                android:value="false"/>
327            <intent-filter>
328                <action android:name="android.telecom.InCallService"/>
329            </intent-filter>
330        </service>
331
332        <!-- BroadcastReceiver for receiving Intents from Notification mechanism. -->
333        <receiver android:name="com.android.incallui.NotificationBroadcastReceiver"
334            android:directBootAware="true"
335            android:exported="false" />
336
337        <provider
338            android:name=".database.FilteredNumberProvider"
339            android:authorities="com.android.dialer.database.filterednumberprovider"
340            android:exported="false"
341            android:multiprocess="false"
342            />
343
344        <provider
345            android:name="android.support.v4.content.FileProvider"
346            android:authorities="@string/contacts_file_provider_authority"
347            android:grantUriPermissions="true"
348            android:exported="false">
349            <meta-data
350                android:name="android.support.FILE_PROVIDER_PATHS"
351                android:resource="@xml/file_paths" />
352        </provider>
353
354        <provider
355            android:name=".database.VoicemailArchiveProvider"
356            android:authorities="com.android.dialer.database.voicemailarchiveprovider"
357            android:exported="false"
358            android:multiprocess="false"
359            />
360    </application>
361</manifest>
362