summaryrefslogtreecommitdiff
path: root/InCallUI/src/com/android/incallui/GlowPadAnswerFragment.java
diff options
context:
space:
mode:
authorTa-wei Yen <twyen@google.com>2015-11-12 14:23:00 -0800
committerTa-wei Yen <twyen@google.com>2015-11-13 16:10:50 -0800
commit37adc9854ae78a0dd358b8e129417c142b83cf1c (patch)
tree461fcb039af1140e78981b6152b6466e958abbb6 /InCallUI/src/com/android/incallui/GlowPadAnswerFragment.java
parenta1bccb179974a821a989b459326b182cd07b772e (diff)
Use separate AnswerFragment for Talkback
+ Split AnswerFragment into GlowpadAnswerFragment and AccessibleAnswerFragment, with the refactored AnswerFragment as base class. + InCallActivity will select GlowpadAnswerFragment and AccessibleAnswerFragment base on if any touch exploration accessibility service is active. + Removed AnswerListener from GlowPadWrapper, as it is only implemented in one class and made the code more complex. + Changed answer icon's color into green. Bug:24101341 Change-Id: Ida2b07986d64d6442ff87a2258180846a092942e
Diffstat (limited to 'InCallUI/src/com/android/incallui/GlowPadAnswerFragment.java')
-rw-r--r--InCallUI/src/com/android/incallui/GlowPadAnswerFragment.java155
1 files changed, 155 insertions, 0 deletions
diff --git a/InCallUI/src/com/android/incallui/GlowPadAnswerFragment.java b/InCallUI/src/com/android/incallui/GlowPadAnswerFragment.java
new file mode 100644
index 000000000..62a8e7829
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/GlowPadAnswerFragment.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.os.Bundle;
+import android.telecom.VideoProfile;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.dialer.R;
+
+public class GlowPadAnswerFragment extends AnswerFragment {
+
+ private GlowPadWrapper mGlowpad;
+
+ public GlowPadAnswerFragment() {
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ mGlowpad = (GlowPadWrapper) inflater.inflate(R.layout.answer_fragment,
+ container, false);
+
+ Log.d(this, "Creating view for answer fragment ", this);
+ Log.d(this, "Created from activity", getActivity());
+ mGlowpad.setAnswerFragment(this);
+
+ return mGlowpad;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ mGlowpad.requestFocus();
+ }
+
+ @Override
+ public void onDestroyView() {
+ Log.d(this, "onDestroyView");
+ if (mGlowpad != null) {
+ mGlowpad.stopPing();
+ mGlowpad = null;
+ }
+ super.onDestroyView();
+ }
+
+ @Override
+ public void onShowAnswerUi(boolean shown) {
+ Log.d(this, "Show answer UI: " + shown);
+ if (shown) {
+ mGlowpad.startPing();
+ } else {
+ mGlowpad.stopPing();
+ }
+ }
+
+ /**
+ * Sets targets on the glowpad according to target set identified by the parameter.
+ *
+ * @param targetSet Integer identifying the set of targets to use.
+ */
+ public void showTargets(int targetSet) {
+ showTargets(targetSet, VideoProfile.STATE_BIDIRECTIONAL);
+ }
+
+ /**
+ * 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 showTargets(int targetSet, int videoState) {
+ final int targetResourceId;
+ final int targetDescriptionsResourceId;
+ final int directionDescriptionsResourceId;
+ final int handleDrawableResourceId;
+ mGlowpad.setVideoState(videoState);
+
+ 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_VIDEO_ACCEPT_REJECT_REQUEST:
+ targetResourceId =
+ R.array.incoming_call_widget_video_request_targets;
+ targetDescriptionsResourceId =
+ R.array.incoming_call_widget_video_request_target_descriptions;
+ directionDescriptionsResourceId = R.array
+ .incoming_call_widget_video_request_target_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()) {
+ mGlowpad.setTargetResources(targetResourceId);
+ mGlowpad.setTargetDescriptionsResourceId(targetDescriptionsResourceId);
+ mGlowpad.setDirectionDescriptionsResourceId(directionDescriptionsResourceId);
+ mGlowpad.setHandleDrawable(handleDrawableResourceId);
+ mGlowpad.reset(false);
+ }
+ }
+
+ @Override
+ protected void onMessageDialogCancel() {
+ if (mGlowpad != null) {
+ mGlowpad.startPing();
+ }
+ }
+}