diff options
author | Andrew Lee <anwlee@google.com> | 2014-07-11 15:50:00 -0700 |
---|---|---|
committer | Andrew Lee <anwlee@google.com> | 2014-07-15 10:54:02 -0700 |
commit | c0be1faf6fa10b7b4ab025012cdffd98a5be7148 (patch) | |
tree | 47926d4f151c6cd9a35a7533846623bcbc9dde61 /InCallUI/src/com | |
parent | a39948564946dabae36a7201eb5c28d8941b96c3 (diff) |
Show different glowpad options for incoming video call.
- Refactor code be more flexibile/specific in specifying the targets
for the glow pad; went from "n-way" labeling of different target sets
to more explicit labeling of scenarios, such as "audio without sms".
- Add target sets and cases for showing targest in AnswerFragment.
- Added new drawable for the target to answer a video call.
- Add method to GlowPadView to allow changing the handle (now it may
be either a videocamera or phone icon, depending on the scenario).
- Add a new video handle for incoming video calls.
- TODO: Hook this up to show these glowpads if there is an incoming
video call.
- Deleted some unused resource files.
Bug: 16015750
Change-Id: I77ff08f45f57cd2817866b5d78648af8891bb675
Diffstat (limited to 'InCallUI/src/com')
3 files changed, 67 insertions, 27 deletions
diff --git a/InCallUI/src/com/android/incallui/AnswerFragment.java b/InCallUI/src/com/android/incallui/AnswerFragment.java index dfc902dc8..371a3ca25 100644 --- a/InCallUI/src/com/android/incallui/AnswerFragment.java +++ b/InCallUI/src/com/android/incallui/AnswerFragment.java @@ -44,6 +44,11 @@ import java.util.List; public class AnswerFragment extends BaseFragment<AnswerPresenter, AnswerPresenter.AnswerUi> implements GlowPadWrapper.AnswerListener, AnswerPresenter.AnswerUi { + public static final int TARGET_SET_FOR_AUDIO_WITHOUT_SMS = 0; + public static final int TARGET_SET_FOR_AUDIO_WITH_SMS = 1; + public static final int TARGET_SET_FOR_VIDEO_WITHOUT_SMS = 2; + public static final int TARGET_SET_FOR_VIDEO_WITH_SMS = 3; + /** * The popup showing the list of canned responses. * @@ -112,29 +117,58 @@ public class AnswerFragment extends BaseFragment<AnswerPresenter, AnswerPresente } } + /** + * Sets targets on the glowpad according to target set identified by the parameter. + * @param targetSet Integer identifying the set of targets to use. + */ @Override - public void showTextButton(boolean show) { - final int targetResourceId = show - ? R.array.incoming_call_widget_3way_targets - : R.array.incoming_call_widget_2way_targets; + public void showTargets(int targetSet) { + final int targetResourceId; + final int targetDescriptionsResourceId; + final int directionDescriptionsResourceId; + final int handleDrawableResourceId; + + switch (targetSet) { + case TARGET_SET_FOR_AUDIO_WITH_SMS: + targetResourceId = R.array.incoming_call_widget_audio_with_sms_targets; + targetDescriptionsResourceId = + R.array.incoming_call_widget_audio_with_sms_target_descriptions; + directionDescriptionsResourceId = + R.array.incoming_call_widget_audio_with_sms_direction_descriptions; + handleDrawableResourceId = R.drawable.ic_incall_audio_handle; + break; + case TARGET_SET_FOR_VIDEO_WITHOUT_SMS: + targetResourceId = R.array.incoming_call_widget_video_without_sms_targets; + targetDescriptionsResourceId = + R.array.incoming_call_widget_video_without_sms_target_descriptions; + directionDescriptionsResourceId = + R.array.incoming_call_widget_video_without_sms_direction_descriptions; + handleDrawableResourceId = R.drawable.ic_incall_video_handle; + break; + case TARGET_SET_FOR_VIDEO_WITH_SMS: + targetResourceId = R.array.incoming_call_widget_video_with_sms_targets; + targetDescriptionsResourceId = + R.array.incoming_call_widget_video_with_sms_target_descriptions; + directionDescriptionsResourceId = + R.array.incoming_call_widget_video_with_sms_direction_descriptions; + handleDrawableResourceId = R.drawable.ic_incall_video_handle; + break; + case TARGET_SET_FOR_AUDIO_WITHOUT_SMS: + default: + targetResourceId = R.array.incoming_call_widget_audio_without_sms_targets; + targetDescriptionsResourceId = + R.array.incoming_call_widget_audio_without_sms_target_descriptions; + directionDescriptionsResourceId = + R.array.incoming_call_widget_audio_without_sms_direction_descriptions; + handleDrawableResourceId = R.drawable.ic_incall_audio_handle; + break; + } if (targetResourceId != mGlowpad.getTargetResourceId()) { - if (show) { - // Answer, Decline, and Respond via SMS. - mGlowpad.setTargetResources(targetResourceId); - mGlowpad.setTargetDescriptionsResourceId( - R.array.incoming_call_widget_3way_target_descriptions); - mGlowpad.setDirectionDescriptionsResourceId( - R.array.incoming_call_widget_3way_direction_descriptions); - } else { - // Answer or Decline. - mGlowpad.setTargetResources(targetResourceId); - mGlowpad.setTargetDescriptionsResourceId( - R.array.incoming_call_widget_2way_target_descriptions); - mGlowpad.setDirectionDescriptionsResourceId( - R.array.incoming_call_widget_2way_direction_descriptions); - } - + mGlowpad.setTargetResources(targetResourceId); + mGlowpad.setTargetDescriptionsResourceId(targetDescriptionsResourceId); + mGlowpad.setDirectionDescriptionsResourceId(directionDescriptionsResourceId); + mGlowpad.setHandleDrawable(handleDrawableResourceId); mGlowpad.reset(false); } } diff --git a/InCallUI/src/com/android/incallui/AnswerPresenter.java b/InCallUI/src/com/android/incallui/AnswerPresenter.java index 5c7188e28..188fabb52 100644 --- a/InCallUI/src/com/android/incallui/AnswerPresenter.java +++ b/InCallUI/src/com/android/incallui/AnswerPresenter.java @@ -94,14 +94,13 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi> getUi().showAnswerUi(true); if (call.can(CallCapabilities.RESPOND_VIA_TEXT) && textMsgs != null) { - getUi().showTextButton(true); + getUi().showTargets(AnswerFragment.TARGET_SET_FOR_AUDIO_WITH_SMS); getUi().configureMessageDialog(textMsgs); } else { - getUi().showTextButton(false); + getUi().showTargets(AnswerFragment.TARGET_SET_FOR_AUDIO_WITHOUT_SMS); } } - @Override public void onCallChanged(Call call) { Log.d(this, "onCallStateChange() " + call + " " + this); @@ -154,7 +153,7 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi> interface AnswerUi extends Ui { public void showAnswerUi(boolean show); - public void showTextButton(boolean show); + public void showTargets(int targetSet); public void showMessageDialog(); public void configureMessageDialog(List<String> textResponses); } diff --git a/InCallUI/src/com/android/incallui/widget/multiwaveview/GlowPadView.java b/InCallUI/src/com/android/incallui/widget/multiwaveview/GlowPadView.java index e97691bb8..a5733de2c 100644 --- a/InCallUI/src/com/android/incallui/widget/multiwaveview/GlowPadView.java +++ b/InCallUI/src/com/android/incallui/widget/multiwaveview/GlowPadView.java @@ -223,8 +223,7 @@ public class GlowPadView extends View { mFeedbackCount); mAllowScaling = a.getBoolean(R.styleable.GlowPadView_allowScaling, false); TypedValue handle = a.peekValue(R.styleable.GlowPadView_handleDrawable); - mHandleDrawable = new TargetDrawable(res, handle != null ? handle.resourceId : 0, 2); - mHandleDrawable.setState(TargetDrawable.STATE_INACTIVE); + setHandleDrawable(handle != null ? handle.resourceId : R.drawable.ic_incall_audio_handle); mOuterRing = new TargetDrawable(res, getResourceId(a, R.styleable.GlowPadView_outerRingDrawable), 1); @@ -620,7 +619,6 @@ public class GlowPadView extends View { updatePointCloudPosition(mWaveCenterX, mWaveCenterY); } } - /** * Loads an array of drawables from the given resourceId. * @@ -640,6 +638,15 @@ public class GlowPadView extends View { } /** + * Sets teh handle drawable to the drawable specified by the resource ID. + * @param resourceId + */ + public void setHandleDrawable(int resourceId) { + mHandleDrawable = new TargetDrawable(getResources(), resourceId, 2); + mHandleDrawable.setState(TargetDrawable.STATE_INACTIVE); + } + + /** * Sets the resource id specifying the target descriptions for accessibility. * * @param resourceId The resource id. |