diff options
-rw-r--r-- | res/values/strings.xml | 3 | ||||
-rw-r--r-- | src/com/android/dialer/DialtactsActivity.java | 17 | ||||
-rw-r--r-- | src/com/android/dialer/list/DialerPhoneNumberListAdapter.java | 8 | ||||
-rw-r--r-- | src/com/android/dialer/list/RegularSearchListAdapter.java | 3 | ||||
-rw-r--r-- | src/com/android/dialer/list/SearchFragment.java | 40 | ||||
-rw-r--r-- | src/com/android/dialer/list/SmartDialNumberListAdapter.java | 11 |
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); + } } |