android:sharedUserId="android.uid.shared"
>
+ <original-package android:name="com.android.contacts" />
+
<uses-permission android:name="android.permission.CALL_PRIVILEGED" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH.mail" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
+ <uses-permission android:name="android.permission.VIBRATE" />
<application
android:label="@string/contactsList"
</intent-filter>
</activity>
- <!-- Tab container for TwelveKeyDialer and RecentCallsList -->
+ <!-- Tab container for all tabs -->
<activity android:name="DialtactsActivity"
android:label="@string/launcherDialer"
android:theme="@style/DialtactsTheme"
</intent-filter>
</activity>
- <!-- Tab container for Activity Stream and Contacts -->
+ <!-- Tab container for all tabs -->
<activity-alias android:name="DialtactsContactsEntryActivity"
android:targetActivity="DialtactsActivity"
android:label="@string/contactsList"
<data android:mimeType="vnd.android.cursor.dir/contact" android:host="com.android.contacts" />
</intent-filter>
+ </activity-alias>
+
+ <!-- Main launch Intent to open the Contacts app. This will open the app in its last manual
+ state. This is the state that has been explicitly set by the user (e.g. by clicking a tab).
+ States configured via other Intents (e.g. CallLog after Call) are not considered manual
+ state. At the moment, the Intent always goes to the DialtactsActivity, but this might later
+ be changed to also include sub-activities like Edit or View if they were left open -->
+
+ <activity-alias android:name="ContactsLaunchActivity"
+ android:targetActivity="DialtactsActivity"
+ >
<intent-filter>
- <action android:name="com.android.contacts.action.FILTER_CONTACTS" />
+ <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity-alias>
<data android:mimeType="vnd.android.cursor.item/postal-address" android:host="contacts" />
</intent-filter>
- <intent-filter>
- <action android:name="android.intent.action.SEARCH" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
-
- <meta-data android:name="android.app.searchable"
- android:resource="@xml/searchable"
- />
</activity>
<!-- An activity for joining contacts -->
</intent-filter>
</activity>
+ <!-- The contacts search/filter UI -->
+ <activity android:name="ContactsListActivity$ContactsSearchActivity"
+ android:theme="@style/ContactsSearchTheme"
+ android:windowSoftInputMode="stateAlwaysVisible|adjustPan"
+ >
+ <intent-filter>
+ <action android:name="com.android.contacts.action.FILTER_CONTACTS" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="vnd.android.cursor.dir/contact" android:host="com.android.contacts" />
+ </intent-filter>
+ </activity>
+
+ <!-- The contacts search/filter UI -->
+ <activity android:name="SearchResultsActivity"
+ android:theme="@style/TallTitleBarTheme"
+ android:label="@string/contactsList"
+ >
+ <intent-filter>
+ <action android:name="android.intent.action.SEARCH" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+
+ <meta-data android:name="android.app.searchable"
+ android:resource="@xml/searchable"
+ />
+ </activity>
<!-- Used to select display and sync groups -->
- <activity android:name=".ui.DisplayGroupsActivity" android:label="@string/displayGroups" />
+ <activity android:name=".ui.ContactsPreferencesActivity" android:label="@string/displayGroups" />
<activity
android:name=".ui.ShowOrCreateActivity"
android:theme="@style/FullyTranslucent.QuickContact"
android:launchMode="singleTop"
android:excludeFromRecents="true"
- android:taskAffinity="android.task.quickcontact">
+ android:taskAffinity="android.task.quickcontact"
+ android:windowSoftInputMode="stateUnchanged"
+ >
<intent-filter>
<action android:name="com.android.contacts.action.QUICK_CONTACT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/contact" android:host="com.android.contacts" />
+ <data android:mimeType="vnd.android.cursor.item/person" android:host="contacts" />
</intent-filter>
</activity>
<intent-filter>
<action android:name="android.intent.action.CREATE_SHORTCUT" />
<category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.CAR_MODE" />
</intent-filter>
</activity-alias>
<!-- Edit or insert details for a contact -->
<activity
android:name=".ui.EditContactActivity"
- android:label="@string/editContactDescription"
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter android:label="@string/editContactDescription">
</activity>
<!-- Makes .ContactsListActivity the search target for any activity in Contacts -->
- <meta-data android:name="android.app.default_searchable"
- android:value=".ContactsListActivity" />
+ <meta-data
+ android:name="android.app.default_searchable"
+ android:value=".ContactsListActivity" />
<!-- LIVE FOLDERS -->
</activity>
<activity android:name=".ImportVCardActivity"
- android:theme="@style/BackgroundOnly" />
+ android:theme="@style/BackgroundOnly">
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <data android:mimeType="text/directory" />
+ <data android:mimeType="text/x-vcard" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
<activity android:name=".ExportVCardActivity"
android:theme="@style/BackgroundOnly" />