Merge "New People activity"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 5969097..47340a0 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -127,6 +127,7 @@
android:icon="@mipmap/ic_launcher_phone"
android:screenOrientation="nosensor"
android:enabled="@*android:bool/config_voice_capable"
+ android:taskAffinity="android.task.contacts.phone"
>
<intent-filter>
<action android:name="android.intent.action.DIAL" />
@@ -171,11 +172,10 @@
</intent-filter>
</activity>
- <!-- Front door proxy that picks the right UI based on the screen config -->
- <activity android:name=".activities.ContactsFrontDoor"
- android:label="@string/contactsList"
- android:icon="@mipmap/ic_launcher_contacts"
- android:theme="@style/ContactBrowserTheme"
+ <!-- The main Contacts activity with the contact list, favorites, and groups. -->
+ <activity android:name=".activities.PeopleActivity"
+ android:label="@string/people"
+ android:theme="@style/PeopleTheme"
android:clearTaskOnLaunch="true"
android:launchMode="singleTop"
>
@@ -185,15 +185,6 @@
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
- </activity>
-
- <!-- The actual list of contacts -->
- <activity android:name=".activities.ContactBrowserActivity"
- android:label="@string/contactsList"
- android:theme="@style/ContactBrowserTheme"
- android:launchMode="singleTop"
- android:clearTaskOnLaunch="true"
- >
<intent-filter>
<action android:name="com.android.contacts.action.LIST_DEFAULT" />
<category android:name="android.intent.category.DEFAULT" />
@@ -298,7 +289,7 @@
<!-- Backwards compatibility: somebody may have hard coded this activity name -->
<activity-alias android:name="ContactsListActivity"
- android:targetActivity=".activities.ContactBrowserActivity"
+ android:targetActivity=".activities.PeopleActivity"
/>
<!-- An activity for joining contacts -->
@@ -340,7 +331,7 @@
<!-- List of groups -->
<activity android:name=".activities.GroupBrowserActivity"
android:label="@string/contactsGroupsLabel"
- android:theme="@style/ContactBrowserTheme"
+ android:theme="@style/PeopleTheme"
android:launchMode="singleTop"
android:clearTaskOnLaunch="true">
<!-- TODO: Remove this temporary intent action name when the fragmentization
@@ -437,6 +428,7 @@
<activity android:name="CallDetailActivity"
android:label="@string/callDetailTitle"
android:theme="@style/CallDetailActivityTheme"
+ android:taskAffinity="android.task.contacts.phone"
>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
@@ -527,10 +519,10 @@
android:theme="@android:style/Theme.Translucent">
</activity>
- <!-- Makes .ContactBrowserActivity the search target for any activity in Contacts -->
+ <!-- Makes .PeopleActivity the search target for any activity in Contacts -->
<meta-data
android:name="android.app.default_searchable"
- android:value=".activities.ContactBrowserActivity" />
+ android:value=".activities.PeopleActivity" />
<!-- LIVE FOLDERS -->
diff --git a/res/layout-xlarge/contact_browser.xml b/res/layout-xlarge/people_activity.xml
similarity index 100%
rename from res/layout-xlarge/contact_browser.xml
rename to res/layout-xlarge/people_activity.xml
diff --git a/res/layout/contact_browser.xml b/res/layout/people_activity.xml
similarity index 100%
rename from res/layout/contact_browser.xml
rename to res/layout/people_activity.xml
diff --git a/res/values-xlarge/styles.xml b/res/values-xlarge/styles.xml
index dcb32ad..d44d993 100644
--- a/res/values-xlarge/styles.xml
+++ b/res/values-xlarge/styles.xml
@@ -14,7 +14,7 @@
limitations under the License.
-->
<resources>
- <style name="ContactBrowserTheme" parent="@android:Theme.Holo.Light">
+ <style name="PeopleTheme" parent="@android:Theme.Holo.Light">
<item name="list_item_height">66dip</item>
<item name="activated_background">@drawable/list_item_activated_background</item>
<item name="android:windowContentOverlay">@null</item>
@@ -87,7 +87,7 @@
<item name="android:background">@null</item>
</style>
- <style name="DirectoryHeader" parent="ContactBrowserTheme">
+ <style name="DirectoryHeader" parent="PeopleTheme">
<item name="android:background">@drawable/directory_bg_holo</item>
</style>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 83fbd9a..2f9acb4 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -18,14 +18,17 @@
apps sharing the uid). -->
<string name="sharedUserLabel">Android Core Apps</string>
- <!-- Title for the activity that shows contacts. This is the name
- used in the Launcher icon. -->
- <string name="contactsList">Contacts</string>
-
<!-- Title for the activity that dials the phone. This is the name
used in the Launcher icon. -->
<string name="launcherDialer">Phone</string>
+ <!-- Title for the activity that opens the People app. This is the name
+ used in the Launcher icon. -->
+ <string name="people">People</string>
+
+ <!-- Directory partition name -->
+ <string name="contactsList">Contacts</string>
+
<!-- Name of activity that allows users to create shortcuts on the home screen to a contact.
This shows up in a list of things like bookmark, folder, music playlist, etc -->
<string name="shortcutContact">Contact</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 0582fd4..df8b808 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -107,7 +107,7 @@
<attr name="list_item_header_text_size" format="dimension" />
</declare-styleable>
- <style name="ContactBrowserTheme" parent="@android:Theme">
+ <style name="PeopleTheme" parent="@android:Theme">
<item name="list_item_height">?android:attr/listPreferredItemHeight</item>
<item name="activated_background">@drawable/list_item_activated_background</item>
<item name="section_header_background">@drawable/list_title_holo</item>
@@ -217,7 +217,7 @@
<attr name="animationDuration" format="integer"/>
</declare-styleable>
- <style name="DirectoryHeader" parent="ContactBrowserTheme">
+ <style name="DirectoryHeader" parent="PeopleTheme">
<item name="android:background">@drawable/directory_bg</item>
</style>
diff --git a/src/com/android/contacts/activities/ContactDetailActivity.java b/src/com/android/contacts/activities/ContactDetailActivity.java
index 0036256..17e05c7 100644
--- a/src/com/android/contacts/activities/ContactDetailActivity.java
+++ b/src/com/android/contacts/activities/ContactDetailActivity.java
@@ -56,7 +56,7 @@
Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS | Intent.FLAG_ACTIVITY_FORWARD_RESULT
| Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
- intent.setClass(this, ContactBrowserActivity.class);
+ intent.setClass(this, PeopleActivity.class);
startActivity(intent);
finish();
return;
diff --git a/src/com/android/contacts/activities/ContactEditorActivity.java b/src/com/android/contacts/activities/ContactEditorActivity.java
index 29ebd59..cc0be9d 100644
--- a/src/com/android/contacts/activities/ContactEditorActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorActivity.java
@@ -156,8 +156,7 @@
public void onSaveFinished(int resultCode, Intent resultIntent, boolean navigateHome) {
setResult(resultCode, resultIntent);
if (navigateHome) {
- Intent intent = new Intent(ContactEditorActivity.this,
- ContactBrowserActivity.class);
+ Intent intent = new Intent(ContactEditorActivity.this, PeopleActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
diff --git a/src/com/android/contacts/activities/ContactsFrontDoor.java b/src/com/android/contacts/activities/ContactsFrontDoor.java
deleted file mode 100644
index d34f2c4..0000000
--- a/src/com/android/contacts/activities/ContactsFrontDoor.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.contacts.activities;
-
-import com.android.contacts.ContactsActivity;
-import com.android.contacts.util.PhoneCapabilityTester;
-
-import android.content.Intent;
-import android.os.Bundle;
-
-public class ContactsFrontDoor extends ContactsActivity {
- public static final String EXTRA_FRONT_DOOR = "front_door";
-
- @Override
- public void onCreate(Bundle savedState) {
- super.onCreate(savedState);
-
- Intent originalIntent = getIntent();
- Intent intent = new Intent();
- intent.setAction(originalIntent.getAction());
- intent.setDataAndType(originalIntent.getData(), originalIntent.getType());
- intent.setFlags(
- Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS | Intent.FLAG_ACTIVITY_FORWARD_RESULT
- | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
- intent.putExtra(EXTRA_FRONT_DOOR, true);
-
- if (PhoneCapabilityTester.isUsingTwoPanes(this)) {
- // No tabs, just a contact list
- intent.setClass(this, ContactBrowserActivity.class);
- } else {
- // Default to the normal dialtacts layout
- intent.setClass(this, DialtactsActivity.class);
- }
-
- startActivity(intent);
- finish();
- }
-}
diff --git a/src/com/android/contacts/activities/DialtactsActivity.java b/src/com/android/contacts/activities/DialtactsActivity.java
index 0b63e46..a0d77ab 100644
--- a/src/com/android/contacts/activities/DialtactsActivity.java
+++ b/src/com/android/contacts/activities/DialtactsActivity.java
@@ -203,7 +203,7 @@
// TODO: We should not artificially create Intents and put them into the Fragment.
// It would be nicer to directly pass in the UI constant
Intent intent = new Intent(UI.LIST_ALL_CONTACTS_ACTION);
- intent.setClass(this, ContactBrowserActivity.class);
+ intent.setClass(this, PeopleActivity.class);
ContactsIntentResolver resolver = new ContactsIntentResolver(this);
ContactsRequest request = resolver.resolveIntent(intent);
@@ -229,7 +229,7 @@
// TODO: We should not artificially create Intents and put them into the Fragment.
// It would be nicer to directly pass in the UI constant
Intent intent = new Intent(UI.LIST_STREQUENT_ACTION);
- intent.setClass(this, ContactBrowserActivity.class);
+ intent.setClass(this, PeopleActivity.class);
ContactsIntentResolver resolver = new ContactsIntentResolver(this);
ContactsRequest request = resolver.resolveIntent(intent);
@@ -291,30 +291,16 @@
// overwritten by one of the programmatic tab selections
final int savedTabIndex = mLastManuallySelectedTab;
- // Choose the tab based on the inbound intent
- if (intent.getBooleanExtra(ContactsFrontDoor.EXTRA_FRONT_DOOR, false)) {
- // Launched through the contacts front door, set the proper contacts tab (sticky
- // between favorites and contacts)
- SharedPreferences prefs = getSharedPreferences(PREFS_DIALTACTS, MODE_PRIVATE);
- boolean favoritesAsContacts = prefs.getBoolean(PREF_FAVORITES_AS_CONTACTS,
- PREF_FAVORITES_AS_CONTACTS_DEFAULT);
- if (favoritesAsContacts) {
- getActionBar().selectTab(getActionBar().getTabAt(TAB_INDEX_FAVORITES));
+ // Look at the component to determine the tab
+ String componentName = intent.getComponent().getClassName();
+ if (getClass().getName().equals(componentName)) {
+ if (recentCallsRequest) {
+ getActionBar().selectTab(getActionBar().getTabAt(TAB_INDEX_CALL_LOG));
} else {
- getActionBar().selectTab(getActionBar().getTabAt(TAB_INDEX_CONTACTS));
+ getActionBar().selectTab(getActionBar().getTabAt(TAB_INDEX_DIALER));
}
} else {
- // Not launched through the front door, look at the component to determine the tab
- String componentName = intent.getComponent().getClassName();
- if (getClass().getName().equals(componentName)) {
- if (recentCallsRequest) {
- getActionBar().selectTab(getActionBar().getTabAt(TAB_INDEX_CALL_LOG));
- } else {
- getActionBar().selectTab(getActionBar().getTabAt(TAB_INDEX_DIALER));
- }
- } else {
- getActionBar().selectTab(getActionBar().getTabAt(mLastManuallySelectedTab));
- }
+ getActionBar().selectTab(getActionBar().getTabAt(mLastManuallySelectedTab));
}
// Restore to the previous manual selection
diff --git a/src/com/android/contacts/activities/ContactBrowserActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
similarity index 97%
rename from src/com/android/contacts/activities/ContactBrowserActivity.java
rename to src/com/android/contacts/activities/PeopleActivity.java
index f6b3f2f..1379e08 100644
--- a/src/com/android/contacts/activities/ContactBrowserActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -76,7 +76,7 @@
* Displays a list to browse contacts. For xlarge screens, this also displays a detail-pane on
* the right.
*/
-public class ContactBrowserActivity extends ContactsActivity
+public class PeopleActivity extends ContactsActivity
implements View.OnCreateContextMenuListener, ActionBarAdapter.Listener,
DialogManager.DialogShowingViewActivity,
ContactListFilterController.ContactListFilterListener, ProviderStatusListener {
@@ -126,7 +126,7 @@
private boolean mOptionsMenuContactsAvailable;
private boolean mOptionsMenuGroupActionsEnabled;
- public ContactBrowserActivity() {
+ public PeopleActivity() {
mIntentResolver = new ContactsIntentResolver(this);
mContactListFilterController = new ContactListFilterController(this);
mContactListFilterController.addListener(this);
@@ -200,7 +200,7 @@
}
if (createContentView) {
- setContentView(R.layout.contact_browser);
+ setContentView(R.layout.people_activity);
}
if (mRequest.getActionCode() == ContactsRequest.ACTION_VIEW_CONTACT
@@ -499,7 +499,7 @@
@Override
public void onDeleteContactAction(Uri contactUri) {
- ContactDeletionInteraction.start(ContactBrowserActivity.this, contactUri, false);
+ ContactDeletionInteraction.start(PeopleActivity.this, contactUri, false);
}
@Override
@@ -546,16 +546,16 @@
@Override
public void onDeleteRequested(Uri contactUri) {
- ContactDeletionInteraction.start(ContactBrowserActivity.this, contactUri, false);
+ ContactDeletionInteraction.start(PeopleActivity.this, contactUri, false);
}
@Override
public void onCreateRawContactRequested(ArrayList<ContentValues> values, Account account) {
- Toast.makeText(ContactBrowserActivity.this, R.string.toast_making_personal_copy,
+ Toast.makeText(PeopleActivity.this, R.string.toast_making_personal_copy,
Toast.LENGTH_LONG).show();
Intent serviceIntent = ContactSaveService.createNewRawContactIntent(
- ContactBrowserActivity.this, values, account,
- ContactBrowserActivity.class, Intent.ACTION_VIEW);
+ PeopleActivity.this, values, account,
+ PeopleActivity.class, Intent.ACTION_VIEW);
startService(serviceIntent);
}
}
@@ -579,7 +579,7 @@
@Override
public void onImportContactsFromFileAction() {
- AccountSelectionUtil.doImportFromSdCard(ContactBrowserActivity.this, null);
+ AccountSelectionUtil.doImportFromSdCard(PeopleActivity.this, null);
}
@Override
diff --git a/src/com/android/contacts/activities/ShowOrCreateActivity.java b/src/com/android/contacts/activities/ShowOrCreateActivity.java
index 7341430..5e14db4 100755
--- a/src/com/android/contacts/activities/ShowOrCreateActivity.java
+++ b/src/com/android/contacts/activities/ShowOrCreateActivity.java
@@ -182,7 +182,7 @@
} else if (count > 1) {
// If more than one, show pick list
Intent listIntent = new Intent(Intent.ACTION_SEARCH);
- listIntent.setComponent(new ComponentName(this, ContactBrowserActivity.class));
+ listIntent.setComponent(new ComponentName(this, PeopleActivity.class));
listIntent.putExtras(mCreateExtras);
startActivity(listIntent);
finish();
diff --git a/src/com/android/contacts/preference/ContactsPreferenceActivity.java b/src/com/android/contacts/preference/ContactsPreferenceActivity.java
index 7f7b750..0b1970e 100644
--- a/src/com/android/contacts/preference/ContactsPreferenceActivity.java
+++ b/src/com/android/contacts/preference/ContactsPreferenceActivity.java
@@ -17,7 +17,7 @@
package com.android.contacts.preference;
import com.android.contacts.R;
-import com.android.contacts.activities.ContactBrowserActivity;
+import com.android.contacts.activities.PeopleActivity;
import android.app.ActionBar;
import android.content.Context;
@@ -66,7 +66,7 @@
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home: {
- Intent intent = new Intent(this, ContactBrowserActivity.class);
+ Intent intent = new Intent(this, PeopleActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
diff --git a/src/com/android/contacts/vcard/ExportProcessor.java b/src/com/android/contacts/vcard/ExportProcessor.java
index 7b5e001..e9697d3 100644
--- a/src/com/android/contacts/vcard/ExportProcessor.java
+++ b/src/com/android/contacts/vcard/ExportProcessor.java
@@ -16,7 +16,7 @@
package com.android.contacts.vcard;
import com.android.contacts.R;
-import com.android.contacts.activities.ContactBrowserActivity;
+import com.android.contacts.activities.PeopleActivity;
import com.android.vcard.VCardComposer;
import com.android.vcard.VCardConfig;
@@ -251,7 +251,7 @@
private void doFinishNotification(final String title, final String description) {
if (DEBUG) Log.d(LOG_TAG, "send finish notification: " + title + ", " + description);
- final Intent intent = new Intent(mService, ContactBrowserActivity.class);
+ final Intent intent = new Intent(mService, PeopleActivity.class);
final Notification notification =
VCardService.constructFinishNotification(mService, title, description, intent);
mNotificationManager.notify(mJobId, notification);
diff --git a/tests/src/com/android/contacts/activities/ContactBrowserActivityTest.java b/tests/src/com/android/contacts/activities/PeopleActivityTest.java
similarity index 96%
rename from tests/src/com/android/contacts/activities/ContactBrowserActivityTest.java
rename to tests/src/com/android/contacts/activities/PeopleActivityTest.java
index d165963..4c1bb16 100644
--- a/tests/src/com/android/contacts/activities/ContactBrowserActivityTest.java
+++ b/tests/src/com/android/contacts/activities/PeopleActivityTest.java
@@ -51,7 +51,7 @@
import android.widget.TextView;
/**
- * Tests for {@link ContactBrowserActivity}.
+ * Tests for {@link PeopleActivity}.
*
* Running all tests:
*
@@ -61,8 +61,8 @@
* -w com.android.contacts.tests/android.test.InstrumentationTestRunner
*/
@Smoke
-public class ContactBrowserActivityTest
- extends ActivityInstrumentationTestCase2<ContactBrowserActivity>
+public class PeopleActivityTest
+ extends ActivityInstrumentationTestCase2<PeopleActivity>
{
static {
// AsyncTask class needs to be initialized on the main thread.
@@ -76,8 +76,8 @@
private MockContentProvider mContactsProvider;
private MockContentProvider mSettingsProvider;
- public ContactBrowserActivityTest() {
- super(ContactBrowserActivity.class);
+ public PeopleActivityTest() {
+ super(PeopleActivity.class);
}
@Override
@@ -115,7 +115,7 @@
setActivityIntent(new Intent(Intent.ACTION_DEFAULT));
- ContactBrowserActivity activity = getActivity();
+ PeopleActivity activity = getActivity();
getInstrumentation().waitForIdleSync();