summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/contacts/activities/PeopleActivity.java14
-rw-r--r--src/com/android/contacts/incall/InCallPluginUtils.java32
-rw-r--r--src/com/android/contacts/list/PluginContactBrowseListFragment.java7
3 files changed, 40 insertions, 13 deletions
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 4528eab98..3beabd47d 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -72,6 +72,7 @@ import com.android.contacts.common.editor.SelectAccountDialogFragment;
import com.android.contacts.group.GroupBrowseListFragment;
import com.android.contacts.group.GroupBrowseListFragment.OnGroupBrowserActionListener;
import com.android.contacts.group.GroupDetailFragment;
+import com.android.contacts.incall.InCallPluginUtils;
import com.android.contacts.interactions.ContactDeletionInteraction;
import com.android.contacts.common.interactions.ImportExportDialogFragment;
import com.android.contacts.common.interactions.ImportExportDialogFragment.ExportToSimThread;
@@ -1796,16 +1797,9 @@ public class PeopleActivity extends ContactsActivity implements
// plugin tab
int pluginIndex = tabPosition - TabState.GROUPS;
InCallPluginInfo pluginInfo = mPluginTabInfo.get(pluginIndex);
- if (pluginInfo.mCallMethodInfo.mDefaultDirectorySearchIntent != null) {
- try {
- pluginInfo.mCallMethodInfo.mDefaultDirectorySearchIntent.send();
- } catch (PendingIntent.CanceledException e) {
- Log.d(TAG, "directory search exception: ", e);
- }
- InCallMetricsHelper.increaseCount(this,
- InCallMetricsHelper.Events.DIRECTORY_SEARCH,
- pluginInfo.mCallMethodInfo.mComponent.flattenToString());
- }
+ InCallPluginUtils.startDirectoryDefaultSearch(this,
+ ContactsDataSubscription.get(this).mClient,
+ pluginInfo.mCallMethodInfo.mComponent);
} else {
Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
Bundle extras = getIntent().getExtras();
diff --git a/src/com/android/contacts/incall/InCallPluginUtils.java b/src/com/android/contacts/incall/InCallPluginUtils.java
index bb0e71fed..29e162ddf 100644
--- a/src/com/android/contacts/incall/InCallPluginUtils.java
+++ b/src/com/android/contacts/incall/InCallPluginUtils.java
@@ -16,6 +16,7 @@
package com.android.contacts.incall;
+import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.ContentUris;
import android.content.ContentValues;
@@ -39,9 +40,14 @@ import com.android.contacts.common.util.DataStatus;
import com.android.contacts.common.util.UriUtils;
import com.android.phone.common.incall.CallMethodInfo;
import com.android.phone.common.incall.ContactsDataSubscription;
+import com.android.phone.common.incall.api.InCallQueries;
import com.android.phone.common.incall.utils.CallMethodFilters;
+import com.cyanogen.ambient.common.api.AmbientApiClient;
+import com.cyanogen.ambient.common.api.Result;
+import com.cyanogen.ambient.common.api.ResultCallback;
import com.cyanogen.ambient.incall.extension.InCallContactInfo;
+import com.cyanogen.ambient.incall.results.PendingIntentResult;
import com.cyngn.uicommon.view.Snackbar;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -228,4 +234,30 @@ public class InCallPluginUtils {
}
return pluginMap;
}
+
+ public static void startDirectoryDefaultSearch(final Context context, AmbientApiClient client,
+ final ComponentName componentName) {
+
+ InCallQueries.getDefaultDirectorySearchIntent(client, componentName).setResultCallback(
+ new ResultCallback() {
+ @Override
+ public void onResult(Result result) {
+ PendingIntentResult pendingIntentResult = (PendingIntentResult) result;
+ if (pendingIntentResult == null) {
+ Log.d(TAG, "directory search null");
+ return;
+ }
+ try {
+ if (pendingIntentResult.intent != null) {
+ pendingIntentResult.intent.send();
+ InCallMetricsHelper.increaseCount(context,
+ InCallMetricsHelper.Events.DIRECTORY_SEARCH,
+ componentName.flattenToString());
+ }
+ } catch (PendingIntent.CanceledException e) {
+ Log.d(TAG, "directory search exception: ", e);
+ }
+ }
+ });
+ }
}
diff --git a/src/com/android/contacts/list/PluginContactBrowseListFragment.java b/src/com/android/contacts/list/PluginContactBrowseListFragment.java
index eb313d588..442d4e8c8 100644
--- a/src/com/android/contacts/list/PluginContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/PluginContactBrowseListFragment.java
@@ -58,6 +58,7 @@ import com.android.contacts.common.list.ContactListItemView;
import com.android.contacts.common.list.DefaultContactListAdapter;
import com.android.contacts.common.list.ProfileAndContactsLoader;
import com.android.contacts.incall.InCallPluginUtils;
+import com.android.phone.common.incall.ContactsDataSubscription;
import com.android.phone.common.incall.utils.CallMethodUtils;
import java.util.List;
@@ -662,9 +663,9 @@ public class PluginContactBrowseListFragment extends ContactEntryListFragment<Co
.mCallMethodInfo.mLoginSubtitle));
}
} else if (view == mEmptyView) {
- if (mInCallPluginInfo.mCallMethodInfo.mDefaultDirectorySearchIntent != null) {
- mInCallPluginInfo.mCallMethodInfo.mDefaultDirectorySearchIntent.send();
- }
+ InCallPluginUtils.startDirectoryDefaultSearch(getActivity(),
+ ContactsDataSubscription.get(getActivity()).mClient,
+ mInCallPluginInfo.mCallMethodInfo.mComponent);
}
} catch (PendingIntent.CanceledException e) {
Log.e(TAG, "PendingIntent exception", e);