diff options
Diffstat (limited to 'java/com/android/dialer/searchfragment/list/SearchActionViewHolder.java')
-rw-r--r-- | java/com/android/dialer/searchfragment/list/SearchActionViewHolder.java | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/java/com/android/dialer/searchfragment/list/SearchActionViewHolder.java b/java/com/android/dialer/searchfragment/list/SearchActionViewHolder.java index b557a8259..76c71d6ac 100644 --- a/java/com/android/dialer/searchfragment/list/SearchActionViewHolder.java +++ b/java/com/android/dialer/searchfragment/list/SearchActionViewHolder.java @@ -20,6 +20,7 @@ import android.content.Context; import android.content.Intent; import android.support.annotation.IntDef; import android.support.annotation.StringRes; +import android.support.annotation.VisibleForTesting; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.View.OnClickListener; @@ -49,7 +50,8 @@ final class SearchActionViewHolder extends RecyclerView.ViewHolder implements On Action.CREATE_NEW_CONTACT, Action.ADD_TO_CONTACT, Action.SEND_SMS, - Action.MAKE_VILTE_CALL + Action.MAKE_VILTE_CALL, + Action.MAKE_VOICE_CALL }) @interface Action { int INVALID = 0; @@ -61,6 +63,8 @@ final class SearchActionViewHolder extends RecyclerView.ViewHolder implements On int SEND_SMS = 3; /** Attempts to make a VILTE call to the number. */ int MAKE_VILTE_CALL = 4; + /** Places a voice call to the number. */ + int MAKE_VOICE_CALL = 5; } private final Context context; @@ -70,6 +74,7 @@ final class SearchActionViewHolder extends RecyclerView.ViewHolder implements On private @Action int action; private int position; private String query; + private CallInitiationType.Type callInitiationType; SearchActionViewHolder(View view) { super(view); @@ -79,10 +84,11 @@ final class SearchActionViewHolder extends RecyclerView.ViewHolder implements On view.setOnClickListener(this); } - void setAction(@Action int action, int position, String query) { + void setAction(@Action int action, int position, String query, CallInitiationType.Type type) { this.action = action; this.position = position; this.query = query; + this.callInitiationType = type; switch (action) { case Action.ADD_TO_CONTACT: actionText.setText(R.string.search_shortcut_add_to_contact); @@ -100,12 +106,23 @@ final class SearchActionViewHolder extends RecyclerView.ViewHolder implements On actionText.setText(R.string.search_shortcut_send_sms_message); actionImage.setImageResource(R.drawable.quantum_ic_message_vd_theme_24); break; + case Action.MAKE_VOICE_CALL: + actionText.setText(context.getString(R.string.search_shortcut_make_voice_call, query)); + actionImage.setImageResource(R.drawable.quantum_ic_phone_vd_theme_24); + break; case Action.INVALID: default: throw Assert.createIllegalStateFailException("Invalid action: " + action); + } } + @VisibleForTesting + @Action + int getAction() { + return action; + } + @Override public void onClick(View v) { switch (action) { @@ -123,14 +140,14 @@ final class SearchActionViewHolder extends RecyclerView.ViewHolder implements On break; case Action.MAKE_VILTE_CALL: - CallSpecificAppData callSpecificAppData = + CallSpecificAppData videoCallSpecificAppData = CallSpecificAppData.newBuilder() - .setCallInitiationType(CallInitiationType.Type.DIALPAD) + .setCallInitiationType(callInitiationType) .setPositionOfSelectedSearchResult(position) .setCharactersInSearchString(query.length()) .build(); PreCall.start( - context, new CallIntentBuilder(query, callSpecificAppData).setIsVideoCall(true)); + context, new CallIntentBuilder(query, videoCallSpecificAppData).setIsVideoCall(true)); break; case Action.SEND_SMS: @@ -138,6 +155,16 @@ final class SearchActionViewHolder extends RecyclerView.ViewHolder implements On DialerUtils.startActivityWithErrorToast(context, intent); break; + case Action.MAKE_VOICE_CALL: + CallSpecificAppData voiceCallSpecificAppData = + CallSpecificAppData.newBuilder() + .setCallInitiationType(callInitiationType) + .setPositionOfSelectedSearchResult(position) + .setCharactersInSearchString(query.length()) + .build(); + PreCall.start(context, new CallIntentBuilder(query, voiceCallSpecificAppData)); + break; + case Action.INVALID: default: throw Assert.createIllegalStateFailException("Invalid action: " + action); |