summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/values/strings.xml3
-rw-r--r--src/com/android/dialer/DialtactsActivity.java17
-rw-r--r--src/com/android/dialer/list/DialerPhoneNumberListAdapter.java8
-rw-r--r--src/com/android/dialer/list/RegularSearchListAdapter.java3
-rw-r--r--src/com/android/dialer/list/SearchFragment.java40
-rw-r--r--src/com/android/dialer/list/SmartDialNumberListAdapter.java11
6 files changed, 64 insertions, 18 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 517045946..2c3b13c10 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -592,6 +592,9 @@
<!-- Shortcut item used to add a number directly from search -->
<string name="search_shortcut_add_to_contacts">Add to contacts</string>
+ <!-- Shortcut item used to make a video call directly from search. -->
+ <string name="search_shortcut_make_video_call">Make video call</string>
+
<!-- Title for the recent calls footer that brings users to the full call history when clicked -->
<string name="recents_footer_text">View full call history</string>
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 014ea7e77..414135178 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -1105,8 +1105,21 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
@Override
public void onCallNumberDirectly(String phoneNumber) {
- final PhoneAccount account = mAccountManager != null?
- mAccountManager.getCurrentAccount(): null;
+ onCallNumberDirectly(phoneNumber, false /* isVideoCall */);
+ }
+
+ @Override
+ public void onCallNumberDirectly(String phoneNumber, boolean isVideoCall) {
+ if (isVideoCall) {
+ //TODO: Dispatch intent with video call extras specified, then remove this toast.
+ Toast toast = Toast.makeText(getApplicationContext(),
+ "Feature development in progress.", Toast.LENGTH_SHORT);
+ toast.show();
+ return;
+ }
+
+ final PhoneAccount account = mAccountManager != null ?
+ mAccountManager.getCurrentAccount() : null;
Intent intent = CallUtil.getCallIntent(phoneNumber, getCallOrigin(), account);
DialerUtils.startActivityWithErrorToast(this, intent);
mClearSearchOnPause = true;
diff --git a/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
index abceda407..9fb223903 100644
--- a/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
+++ b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
@@ -28,8 +28,9 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
public final static int SHORTCUT_INVALID = -1;
public final static int SHORTCUT_DIRECT_CALL = 0;
public final static int SHORTCUT_ADD_NUMBER_TO_CONTACTS = 1;
+ public final static int SHORTCUT_MAKE_VIDEO_CALL = 2;
- public final static int SHORTCUT_COUNT = 2;
+ public final static int SHORTCUT_COUNT = 3;
private final boolean[] mShortcutEnabled = new boolean[SHORTCUT_COUNT];
@@ -145,12 +146,17 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
text = resources.getString(R.string.search_shortcut_add_to_contacts);
drawableId = R.drawable.ic_search_add_contact;
break;
+ case SHORTCUT_MAKE_VIDEO_CALL:
+ text = resources.getString(R.string.search_shortcut_make_video_call);
+ drawableId = R.drawable.ic_videocam;
+ break;
default:
throw new IllegalArgumentException("Invalid shortcut type");
}
v.setDrawableResource(R.drawable.search_shortcut_background, drawableId);
v.setDisplayName(text);
v.setPhotoPosition(super.getPhotoPosition());
+ v.setAdjustSelectionBoundsEnabled(false);
}
public void setShortcutEnabled(int shortcutType, boolean visible) {
diff --git a/src/com/android/dialer/list/RegularSearchListAdapter.java b/src/com/android/dialer/list/RegularSearchListAdapter.java
index d0617b7dc..2bceaf9ed 100644
--- a/src/com/android/dialer/list/RegularSearchListAdapter.java
+++ b/src/com/android/dialer/list/RegularSearchListAdapter.java
@@ -73,6 +73,9 @@ public class RegularSearchListAdapter extends DialerPhoneNumberListAdapter {
// a dialable number, then clicking add to contact should add it as a number.
// Otherwise, it should add it to a new contact as a name.
setShortcutEnabled(SHORTCUT_ADD_NUMBER_TO_CONTACTS, showNumberShortcuts);
+ // TODO: Write utility method to check subscriptions and settings, and use it to determine
+ // whether to enable or disable video call shortcut.
+ setShortcutEnabled(SHORTCUT_MAKE_VIDEO_CALL, showNumberShortcuts);
super.setQueryString(queryString);
}
}
diff --git a/src/com/android/dialer/list/SearchFragment.java b/src/com/android/dialer/list/SearchFragment.java
index 03d22429c..e2cea418f 100644
--- a/src/com/android/dialer/list/SearchFragment.java
+++ b/src/com/android/dialer/list/SearchFragment.java
@@ -147,21 +147,31 @@ public class SearchFragment extends PhoneNumberPickerFragment {
protected void onItemClick(int position, long id) {
final DialerPhoneNumberListAdapter adapter = (DialerPhoneNumberListAdapter) getAdapter();
final int shortcutType = adapter.getShortcutTypeFromPosition(position);
-
- if (shortcutType == DialerPhoneNumberListAdapter.SHORTCUT_INVALID) {
- super.onItemClick(position, id);
- } else if (shortcutType == DialerPhoneNumberListAdapter.SHORTCUT_DIRECT_CALL) {
- final OnPhoneNumberPickerActionListener listener =
- getOnPhoneNumberPickerListener();
- if (listener != null) {
- listener.onCallNumberDirectly(getQueryString());
- }
- } else if (shortcutType == DialerPhoneNumberListAdapter.SHORTCUT_ADD_NUMBER_TO_CONTACTS) {
- final String number = TextUtils.isEmpty(mAddToContactNumber) ?
- adapter.getFormattedQueryString() : mAddToContactNumber;
- final Intent intent = DialtactsActivity.getAddNumberToContactIntent(number);
- DialerUtils.startActivityWithErrorToast(getActivity(), intent,
- R.string.add_contact_not_available);
+ final OnPhoneNumberPickerActionListener listener;
+
+ switch (shortcutType) {
+ case DialerPhoneNumberListAdapter.SHORTCUT_INVALID:
+ super.onItemClick(position, id);
+ break;
+ case DialerPhoneNumberListAdapter.SHORTCUT_DIRECT_CALL:
+ listener = getOnPhoneNumberPickerListener();
+ if (listener != null) {
+ listener.onCallNumberDirectly(getQueryString());
+ }
+ break;
+ case DialerPhoneNumberListAdapter.SHORTCUT_ADD_NUMBER_TO_CONTACTS:
+ final String number = TextUtils.isEmpty(mAddToContactNumber) ?
+ adapter.getFormattedQueryString() : mAddToContactNumber;
+ final Intent intent = DialtactsActivity.getAddNumberToContactIntent(number);
+ DialerUtils.startActivityWithErrorToast(getActivity(), intent,
+ R.string.add_contact_not_available);
+ break;
+ case DialerPhoneNumberListAdapter.SHORTCUT_MAKE_VIDEO_CALL:
+ listener = getOnPhoneNumberPickerListener();
+ if (listener != null) {
+ listener.onCallNumberDirectly(getQueryString(), true /* isVideoCall */);
+ }
+ break;
}
}
diff --git a/src/com/android/dialer/list/SmartDialNumberListAdapter.java b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
index 25d442e0c..d9aa84674 100644
--- a/src/com/android/dialer/list/SmartDialNumberListAdapter.java
+++ b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
@@ -22,6 +22,7 @@ import android.net.Uri;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Callable;
import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
import android.util.Log;
import com.android.contacts.common.list.ContactListItemView;
@@ -112,4 +113,14 @@ public class SmartDialNumberListAdapter extends DialerPhoneNumberListAdapter {
return null;
}
}
+
+ @Override
+ public void setQueryString(String queryString) {
+ final boolean showNumberShortcuts = !TextUtils.isEmpty(getFormattedQueryString());
+ setShortcutEnabled(SHORTCUT_ADD_NUMBER_TO_CONTACTS, showNumberShortcuts);
+ // TODO: Write utility method to check subscriptions and settings, and use it to determine
+ // whether to enable or disable video call shortcut.
+ setShortcutEnabled(SHORTCUT_MAKE_VIDEO_CALL, showNumberShortcuts);
+ super.setQueryString(queryString);
+ }
}