Merge "Make Contact app works can open work contacts" into ub-contactsdialer-b-dev
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index f03f1eb..14849e1 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -35,6 +35,7 @@
import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.ProviderStatus;
+import android.provider.ContactsContract.QuickContact;
import android.provider.Settings;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
@@ -955,10 +956,17 @@
}
@Override
- public void onViewContactAction(Uri contactLookupUri) {
- final Intent intent = ImplicitIntentsUtil.composeQuickContactIntent(contactLookupUri,
- QuickContactActivity.MODE_FULLY_EXPANDED);
- ImplicitIntentsUtil.startActivityInApp(PeopleActivity.this, intent);
+ public void onViewContactAction(Uri contactLookupUri, boolean isEnterpriseContact) {
+ if (isEnterpriseContact) {
+ // No implicit intent as user may have a different contacts app in work profile.
+ QuickContact.showQuickContact(PeopleActivity.this, new Rect(), contactLookupUri,
+ QuickContactActivity.MODE_FULLY_EXPANDED, null);
+ } else {
+ final Intent intent = ImplicitIntentsUtil.composeQuickContactIntent(
+ contactLookupUri,
+ QuickContactActivity.MODE_FULLY_EXPANDED);
+ ImplicitIntentsUtil.startActivityInApp(PeopleActivity.this, intent);
+ }
}
@Override
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
index 2381ea5..923208c 100644
--- a/src/com/android/contacts/list/ContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -600,9 +600,9 @@
mListener = listener;
}
- public void viewContact(Uri contactUri) {
+ public void viewContact(Uri contactUri, boolean isEnterpriseContact) {
setSelectedContactUri(contactUri, false, false, true, false);
- if (mListener != null) mListener.onViewContactAction(contactUri);
+ if (mListener != null) mListener.onViewContactAction(contactUri, isEnterpriseContact);
}
public void deleteContact(Uri contactUri) {
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index fefe28b..9ea8a1d 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -92,7 +92,7 @@
if (uri == null) {
return;
}
- viewContact(uri);
+ viewContact(uri, getAdapter().isEnterpriseContact(position));
}
@Override
diff --git a/src/com/android/contacts/list/OnContactBrowserActionListener.java b/src/com/android/contacts/list/OnContactBrowserActionListener.java
index d91fee4..59fc611 100644
--- a/src/com/android/contacts/list/OnContactBrowserActionListener.java
+++ b/src/com/android/contacts/list/OnContactBrowserActionListener.java
@@ -33,7 +33,7 @@
*
* @param contactLookupUri The lookup-uri of the Contact that should be opened
*/
- void onViewContactAction(Uri contactLookupUri);
+ void onViewContactAction(Uri contactLookupUri, boolean isEnterpriseContact);
/**
* Initiates the contact deletion process.