• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.contacts"
19    android:versionCode="10422"
20    android:versionName="1.4.22">
21
22    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="25" />
23    <original-package android:name="com.android.contacts" />
24
25    <uses-permission android:name="android.permission.CALL_PHONE" />
26    <uses-permission android:name="android.permission.READ_CONTACTS" />
27    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
28    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
29    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
30    <uses-permission android:name="android.permission.GET_ACCOUNTS_PRIVILEGED" />
31    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
32    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
33    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
34    <uses-permission android:name="android.permission.READ_PROFILE" />
35    <uses-permission android:name="android.permission.WRITE_PROFILE" />
36    <uses-permission android:name="android.permission.INTERNET" />
37    <uses-permission android:name="android.permission.NFC" />
38    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
39    <uses-permission android:name="android.permission.WAKE_LOCK" />
40    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
41    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
42    <uses-permission android:name="android.permission.VIBRATE" />
43    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
44    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
45    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
46    <!-- Following used for QuickContacts -->
47    <uses-permission android:name="android.permission.READ_CALL_LOG" />
48    <uses-permission android:name="android.permission.READ_SMS" />
49    <uses-permission android:name="android.permission.READ_CALENDAR" />
50    <uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL" />
51    <!-- Following used for Contact metadata syncing -->
52    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
53
54    <application
55        android:name="com.android.contacts.ContactsApplication"
56        android:label="@string/applicationLabel"
57        android:icon="@mipmap/ic_contacts_launcher"
58        android:roundIcon="@mipmap/ic_contacts_launcher"
59        android:taskAffinity="android.task.contacts"
60        android:hardwareAccelerated="true"
61        android:supportsRtl="true"
62        android:usesCleartextTraffic="false"
63    >
64
65        <!-- The main Contacts activity with the contact list, favorites, and groups. -->
66        <activity android:name=".activities.PeopleActivity"
67            android:label="@string/launcherActivityLabel"
68            android:theme="@style/PeopleTheme"
69            android:clearTaskOnLaunch="true"
70            android:launchMode="singleTop"
71            android:resizeableActivity="true"
72        >
73            <intent-filter>
74                <action android:name="android.intent.action.MAIN" />
75                <category android:name="android.intent.category.DEFAULT" />
76                <category android:name="android.intent.category.LAUNCHER" />
77                <category android:name="android.intent.category.BROWSABLE" />
78                <category android:name="android.intent.category.APP_CONTACTS" />
79            </intent-filter>
80            <intent-filter>
81                <action android:name="com.android.contacts.action.LIST_DEFAULT" />
82                <category android:name="android.intent.category.DEFAULT" />
83                <category android:name="android.intent.category.TAB" />
84            </intent-filter>
85
86            <intent-filter>
87                <action android:name="com.android.contacts.action.LIST_CONTACTS" />
88                <category android:name="android.intent.category.DEFAULT" />
89                <category android:name="android.intent.category.TAB" />
90            </intent-filter>
91
92            <intent-filter>
93                <action android:name="com.android.contacts.action.LIST_ALL_CONTACTS" />
94                <category android:name="android.intent.category.DEFAULT" />
95                <category android:name="android.intent.category.TAB" />
96            </intent-filter>
97
98            <intent-filter>
99                <action android:name="com.android.contacts.action.LIST_CONTACTS_WITH_PHONES" />
100                <category android:name="android.intent.category.DEFAULT" />
101                <category android:name="android.intent.category.TAB" />
102            </intent-filter>
103
104            <intent-filter android:label="@string/starredList">
105                <action android:name="com.android.contacts.action.LIST_STARRED" />
106                <category android:name="android.intent.category.DEFAULT" />
107                <category android:name="android.intent.category.TAB" />
108            </intent-filter>
109
110            <intent-filter android:label="@string/frequentList">
111                <action android:name="com.android.contacts.action.LIST_FREQUENT" />
112                <category android:name="android.intent.category.DEFAULT" />
113                <category android:name="android.intent.category.TAB" />
114            </intent-filter>
115
116            <intent-filter android:label="@string/strequentList">
117                <action android:name="com.android.contacts.action.LIST_STREQUENT" />
118                <category android:name="android.intent.category.DEFAULT" />
119                <category android:name="android.intent.category.TAB" />
120            </intent-filter>
121
122            <intent-filter>
123                <action android:name="android.intent.action.SEARCH" />
124                <category android:name="android.intent.category.DEFAULT" />
125                <data android:mimeType="vnd.android.cursor.dir/contact" />
126            </intent-filter>
127
128            <intent-filter>
129                <action android:name="android.intent.action.SEARCH" />
130                <category android:name="android.intent.category.DEFAULT" />
131            </intent-filter>
132
133            <intent-filter>
134                <action android:name="android.intent.action.VIEW" />
135                <category android:name="android.intent.category.DEFAULT" />
136                <data android:mimeType="vnd.android.cursor.dir/person" />
137                <data android:mimeType="vnd.android.cursor.dir/contact" />
138            </intent-filter>
139
140            <meta-data android:name="android.app.searchable"
141                android:resource="@xml/searchable"
142            />
143
144           <meta-data android:name="android.app.shortcuts"
145                android:resource="@xml/shortcuts"
146            />
147
148        </activity>
149
150        <activity android:name=".activities.ContactSelectionActivity"
151            android:label="@string/launcherActivityLabel"
152            android:theme="@style/ContactPickerTheme"
153            android:launchMode="singleTop"
154            android:clearTaskOnLaunch="true"
155            android:uiOptions="splitActionBarWhenNarrow"
156            android:windowSoftInputMode="adjustResize">
157            <intent-filter>
158                <action android:name="android.intent.action.INSERT_OR_EDIT" />
159                <category android:name="android.intent.category.DEFAULT" />
160                <data android:mimeType="vnd.android.cursor.item/person" />
161                <data android:mimeType="vnd.android.cursor.item/contact" />
162                <data android:mimeType="vnd.android.cursor.item/raw_contact" />
163            </intent-filter>
164
165            <intent-filter>
166                <action android:name="android.intent.action.PICK" />
167                <category android:name="android.intent.category.DEFAULT" />
168                <data android:mimeType="vnd.android.cursor.dir/contact" />
169                <data android:mimeType="vnd.android.cursor.dir/person" />
170                <data android:mimeType="vnd.android.cursor.dir/phone_v2" />
171                <data android:mimeType="vnd.android.cursor.dir/phone" />
172                <data android:mimeType="vnd.android.cursor.dir/postal-address_v2" />
173                <data android:mimeType="vnd.android.cursor.dir/postal-address" />
174                <data android:mimeType="vnd.android.cursor.dir/email_v2" />
175            </intent-filter>
176
177            <intent-filter>
178                <action android:name="android.intent.action.GET_CONTENT" />
179                <category android:name="android.intent.category.DEFAULT" />
180                <data android:mimeType="vnd.android.cursor.item/contact" />
181                <data android:mimeType="vnd.android.cursor.item/person" />
182                <data android:mimeType="vnd.android.cursor.item/phone_v2" />
183                <data android:mimeType="vnd.android.cursor.item/phone" />
184                <data android:mimeType="vnd.android.cursor.item/postal-address_v2" />
185                <data android:mimeType="vnd.android.cursor.item/postal-address" />
186            </intent-filter>
187
188            <intent-filter>
189                <action android:name="com.android.contacts.action.JOIN_CONTACT" />
190                <category android:name="android.intent.category.DEFAULT" />
191            </intent-filter>
192        </activity>
193
194        <!-- Backwards compatibility: somebody may have hard coded this activity name -->
195        <activity-alias android:name="ContactsListActivity"
196            android:targetActivity=".activities.PeopleActivity"
197        />
198
199        <!-- Backwards compatibility: "Contacts" from Honeycomb -->
200        <activity-alias android:name=".activities.ContactsFrontDoor"
201            android:targetActivity=".activities.PeopleActivity"
202            android:exported="true"
203        />
204
205        <!-- Backwards compatibility: "Contacts" from Gingerbread and earlier -->
206        <activity-alias android:name="DialtactsContactsEntryActivity"
207            android:targetActivity=".activities.PeopleActivity"
208            android:exported="true"
209        />
210
211        <!-- Used to set options -->
212        <activity
213            android:name=".common.preference.ContactsPreferenceActivity"
214            android:label="@string/activity_title_settings"
215            android:theme="@style/ContactsPreferencesTheme"
216            android:exported="false"/>
217
218        <activity android:name=".common.activity.LicenseActivity"
219            android:label="@string/activity_title_licenses"
220            android:theme="@style/ContactsPreferencesTheme"
221            android:exported="false" />
222
223        <!-- Used to filter contacts list by account -->
224        <activity
225            android:name=".common.list.AccountFilterActivity"
226            android:label="@string/activity_title_contacts_filter"
227            android:theme="@style/ContactListFilterTheme" />
228
229        <!-- Used to select display and sync groups -->
230        <activity
231            android:name=".common.list.CustomContactListFilterActivity"
232            android:label="@string/custom_list_filter"
233            android:theme="@style/ContactListFilterTheme" />
234
235        <activity
236            android:name=".common.activity.RequestPermissionsActivity"
237            android:label="@string/launcherActivityLabel"
238            android:theme="@style/PeopleTheme"
239            android:exported="false"/>
240
241        <activity
242            android:name=".common.activity.RequestDesiredPermissionsActivity"
243            android:label="@string/launcherActivityLabel"
244            android:theme="@style/PeopleTheme"
245            android:exported="false"/>
246
247        <activity
248            android:name=".common.activity.RequestImportVCardPermissionsActivity"
249            android:label="@string/launcherActivityLabel"
250            android:theme="@style/PeopleTheme"
251            android:exported="false"/>
252
253        <activity
254            android:name=".activities.ShowOrCreateActivity"
255            android:label="@string/launcherActivityLabel"
256            android:theme="@android:style/Theme.Material.Light.Dialog.NoActionBar">
257
258            <intent-filter>
259                <action android:name="com.android.contacts.action.SHOW_OR_CREATE_CONTACT" />
260                <category android:name="android.intent.category.DEFAULT" />
261                <data android:scheme="mailto" />
262                <data android:scheme="tel" />
263            </intent-filter>
264        </activity>
265
266        <!-- Views the details of a single group -->
267        <activity android:name=".activities.GroupDetailActivity"
268            android:label=""
269            android:theme="@style/DetailActivityTheme"/>
270
271        <!-- Create a new or edit an existing group -->
272        <activity
273            android:name=".activities.GroupEditorActivity"
274            android:theme="@style/EditorActivityTheme"
275            android:windowSoftInputMode="adjustResize" />
276
277        <activity
278            android:name=".quickcontact.QuickContactActivity"
279            android:label="@string/quickContactActivityLabel"
280            android:theme="@style/Theme.QuickContact"
281            android:launchMode="singleTop"
282            android:excludeFromRecents="true"
283            android:taskAffinity=""
284            android:windowSoftInputMode="stateUnchanged">
285
286            <intent-filter>
287                <action android:name="com.android.contacts.action.QUICK_CONTACT" />
288                <action android:name="android.provider.action.QUICK_CONTACT" />
289                <category android:name="android.intent.category.DEFAULT" />
290                <data android:mimeType="vnd.android.cursor.item/contact" />
291                <data android:mimeType="vnd.android.cursor.item/person" />
292            </intent-filter>
293
294            <intent-filter>
295                <action android:name="android.intent.action.VIEW" />
296                <category android:name="android.intent.category.DEFAULT" />
297                <data android:mimeType="vnd.android.cursor.item/person" />
298                <data android:mimeType="vnd.android.cursor.item/contact" />
299                <data android:mimeType="vnd.android.cursor.item/raw_contact" />
300            </intent-filter>
301        </activity>
302
303        <receiver
304            android:name=".quickcontact.QuickContactBroadcastReceiver"
305            android:exported="false" />
306
307        <activity-alias android:name="ContactShortcut"
308            android:targetActivity=".activities.ContactSelectionActivity"
309            android:label="@string/shortcutContact"
310            android:icon="@drawable/logo_quick_contacts_color_44in48dp">
311
312            <intent-filter>
313                <action android:name="android.intent.action.CREATE_SHORTCUT" />
314                <category android:name="android.intent.category.DEFAULT" />
315            </intent-filter>
316
317        </activity-alias>
318
319        <activity-alias android:name="alias.DialShortcut"
320            android:targetActivity=".activities.ContactSelectionActivity"
321            android:label="@string/shortcutDialContact"
322            android:icon="@drawable/logo_quick_contacts_dialer_color_44in48dp">
323
324            <intent-filter>
325                <action android:name="android.intent.action.CREATE_SHORTCUT" />
326                <category android:name="android.intent.category.DEFAULT" />
327                <category android:name="android.intent.category.CAR_MODE" />
328            </intent-filter>
329
330        </activity-alias>
331
332        <activity-alias android:name="alias.MessageShortcut"
333            android:targetActivity=".activities.ContactSelectionActivity"
334            android:label="@string/shortcutMessageContact"
335            android:icon="@drawable/logo_quick_contacts_mail_color_44in48dp">
336
337            <intent-filter>
338                <action android:name="android.intent.action.CREATE_SHORTCUT" />
339                <category android:name="android.intent.category.DEFAULT" />
340            </intent-filter>
341
342        </activity-alias>
343
344        <!-- Confirm that a single detail will be added to an existing contact -->
345        <activity
346            android:name=".activities.ConfirmAddDetailActivity"
347            android:label="@string/activity_title_confirm_add_detail"
348            android:theme="@style/ConfirmAddDetailDialogTheme"
349            android:windowSoftInputMode="adjustResize"
350            android:exported="false"/>
351
352        <!-- Accounts changed prompt that can appear when creating a new contact. -->
353        <activity
354            android:name=".activities.ContactEditorAccountsChangedActivity"
355            android:theme="@style/ContactEditorAccountsChangedActivityTheme"
356            android:windowSoftInputMode="adjustResize"
357            android:exported="false"/>
358
359        <!-- Edit or create a contact with only the most important fields displayed initially. -->
360        <activity
361            android:name=".activities.CompactContactEditorActivity"
362            android:label="@string/editContactActivityLabel"
363            android:theme="@style/EditorActivityTheme"
364            android:windowSoftInputMode="stateHidden|adjustResize">
365
366            <intent-filter android:label="@string/editContactDescription">
367                <action android:name="android.intent.action.EDIT" />
368                <category android:name="android.intent.category.DEFAULT" />
369                <data android:mimeType="vnd.android.cursor.item/person" />
370                <data android:mimeType="vnd.android.cursor.item/contact" />
371                <data android:mimeType="vnd.android.cursor.item/raw_contact" />
372            </intent-filter>
373            <intent-filter android:label="@string/insertContactDescription">
374                <action android:name="android.intent.action.INSERT" />
375                <category android:name="android.intent.category.DEFAULT" />
376                <data android:mimeType="vnd.android.cursor.dir/person" />
377                <data android:mimeType="vnd.android.cursor.dir/contact" />
378                <data android:mimeType="vnd.android.cursor.dir/raw_contact" />
379            </intent-filter>
380        </activity>
381
382        <!-- Edit or create a contact with all fields displayed. -->
383        <activity
384            android:name=".activities.ContactEditorActivity"
385            android:label="@string/editContactActivityLabel"
386            android:theme="@style/EditorActivityTheme"
387            android:windowSoftInputMode="stateHidden|adjustResize"
388            android:exported="false">
389
390            <intent-filter android:label="@string/editContactDescription">
391                <action android:name="com.android.contacts.action.FULL_EDIT" />
392                <category android:name="android.intent.category.DEFAULT" />
393                <data android:mimeType="vnd.android.cursor.item/person" />
394                <data android:mimeType="vnd.android.cursor.item/contact" />
395                <data android:mimeType="vnd.android.cursor.item/raw_contact" />
396            </intent-filter>
397            <intent-filter android:label="@string/insertContactDescription">
398                <action android:name="com.android.contacts.action.FULL_INSERT" />
399                <category android:name="android.intent.category.DEFAULT" />
400                <data android:mimeType="vnd.android.cursor.dir/person" />
401                <data android:mimeType="vnd.android.cursor.dir/contact" />
402                <data android:mimeType="vnd.android.cursor.dir/raw_contact" />
403            </intent-filter>
404        </activity>
405
406        <activity android:name=".common.test.FragmentTestActivity">
407            <intent-filter>
408                <category android:name="android.intent.category.TEST" />
409            </intent-filter>
410        </activity>
411
412        <!-- Stub service used to keep our process alive long enough for
413             background threads to finish their operations. -->
414        <service
415            android:name=".common.util.EmptyService"
416            android:exported="false" />
417
418        <!-- Service to save a contact -->
419        <service
420            android:name=".ContactSaveService"
421            android:exported="false" />
422
423        <!-- Attaches a photo to a contact. Started from external applications -->
424        <activity android:name=".activities.AttachPhotoActivity"
425            android:label="@string/attach_photo_dialog_title"
426            android:taskAffinity="">
427            <intent-filter>
428                <action android:name="android.intent.action.ATTACH_DATA" />
429                <data android:mimeType="image/*" />
430                <category android:name="android.intent.category.DEFAULT" />
431            </intent-filter>
432        </activity>
433
434        <!-- vCard related -->
435        <activity android:name=".common.vcard.ImportVCardActivity"
436            android:label="@string/launcherActivityLabel"
437            android:configChanges="orientation|screenSize|keyboardHidden"
438            android:theme="@style/BackgroundOnlyTheme">
439            <intent-filter>
440                <action android:name="android.intent.action.VIEW" />
441                <data android:mimeType="text/directory" />
442                <data android:mimeType="text/vcard" />
443                <data android:mimeType="text/x-vcard" />
444                <category android:name="android.intent.category.DEFAULT" />
445            </intent-filter>
446        </activity>
447
448        <activity android:name=".common.vcard.NfcImportVCardActivity"
449            android:label="@string/launcherActivityLabel"
450            android:configChanges="orientation|screenSize|keyboardHidden"
451            android:theme="@style/BackgroundOnlyTheme">
452            <intent-filter>
453                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
454                <data android:mimeType="text/vcard" />
455                <data android:mimeType="text/x-vcard" />
456                <category android:name="android.intent.category.DEFAULT" />
457            </intent-filter>
458        </activity>
459
460        <activity android:name=".common.vcard.CancelActivity"
461            android:label="@string/launcherActivityLabel"
462            android:theme="@style/BackgroundOnlyTheme" />
463
464        <activity android:name=".common.vcard.SelectAccountActivity"
465            android:label="@string/launcherActivityLabel"
466            android:theme="@style/BackgroundOnlyTheme" />
467
468        <activity android:name=".common.vcard.ExportVCardActivity"
469            android:label="@string/launcherActivityLabel"
470            android:theme="@style/BackgroundOnlyTheme" />
471
472        <activity android:name=".common.vcard.ShareVCardActivity"
473                  android:label="@string/launcherActivityLabel"
474                  android:theme="@style/BackgroundOnlyTheme" />
475
476        <service
477            android:name=".common.vcard.VCardService"
478            android:exported="false" />
479        <!-- end vCard related -->
480
481        <!-- Intercept Dialer Intents for devices without a phone.
482             This activity should have the same intent filters as the DialtactsActivity,
483             so that its capturing the same events. Omit android.intent.category.LAUNCHER, because
484             we don't want this to show up in the Launcher. The priorities of the intent-filters
485             are set lower, so that the user does not see a disambig dialog -->
486        <activity
487            android:name="com.android.contacts.NonPhoneActivity"
488            android:theme="@style/NonPhoneActivityTheme"
489            android:label="@string/launcherActivityLabel"
490            >
491            <intent-filter android:priority="-1">
492                <action android:name="android.intent.action.MAIN"/>
493                <category android:name="android.intent.category.DEFAULT"/>
494                <category android:name="android.intent.category.BROWSABLE"/>
495            </intent-filter>
496            <intent-filter android:priority="-1">
497                <action android:name="android.intent.action.VIEW"/>
498                <category android:name="android.intent.category.DEFAULT"/>
499                <category android:name="android.intent.category.BROWSABLE"/>
500                <data android:scheme="tel"/>
501            </intent-filter>
502            <intent-filter android:priority="-1">
503                <action android:name="android.intent.action.VIEW"/>
504                <category android:name="android.intent.category.DEFAULT"/>
505                <category android:name="android.intent.category.BROWSABLE"/>
506                <data android:mimeType="vnd.android.cursor.dir/calls"/>
507            </intent-filter>
508        </activity>
509
510        <activity android:name="com.android.contacts.common.dialog.CallSubjectDialog"
511                  android:theme="@style/Theme.CallSubjectDialogTheme"
512                  android:windowSoftInputMode="stateVisible|adjustResize">
513            <intent-filter>
514                <action android:name="android.intent.action.VIEW"/>
515            </intent-filter>
516        </activity>
517
518        <!-- Service that is exclusively for the Phone application that sends out a view
519             notification. This service might be removed in future versions of the app.
520
521             This is called explicitly by the phone app via package name and class.
522             (PhoneUtils.sendViewNotificationAsync()).  If this service moves, then phone
523             needs to be changed as well.
524        -->
525        <service android:name=".ViewNotificationService"
526                 android:permission="android.permission.WRITE_CONTACTS"
527                 android:exported="true">
528            <intent-filter>
529                <action android:name="com.android.contacts.VIEW_NOTIFICATION"/>
530                <data android:mimeType="vnd.android.cursor.item/contact"/>
531            </intent-filter>
532        </service>
533
534        <!-- Broadcast receiver that passively listens to location updates -->
535        <receiver android:name="com.android.contacts.common.location.CountryDetector$LocationChangedReceiver"/>
536
537        <!-- IntentService to update the user's current country -->
538        <service android:name="com.android.contacts.common.location.UpdateCountryService"
539            android:exported="false"/>
540
541        <provider
542            android:name="android.support.v4.content.FileProvider"
543            android:authorities="@string/contacts_file_provider_authority"
544            android:grantUriPermissions="true"
545            android:exported="false">
546            <meta-data
547                android:name="android.support.FILE_PROVIDER_PATHS"
548                android:resource="@xml/file_paths" />
549        </provider>
550
551        <meta-data android:name="android.nfc.disable_beam_default" android:value="true" />
552    </application>
553</manifest>
554