From 79e215c4f78316dcdb2a2ab87931e72e67acc473 Mon Sep 17 00:00:00 2001 From: Chiao Cheng Date: Thu, 18 Jul 2013 12:42:48 -0700 Subject: Adding fragment and listener for answering calls. Created mvp pattern for answer fragment. Change-Id: Ibe0c3b5ce2b61a098c2237aab549238fd4518e9b --- InCallUI/InCallUI.iml | 26 ++++++++ InCallUI/res/layout/answer_fragment.xml | 44 +++++++++++++ InCallUI/res/layout/incall_screen.xml | 26 +------- .../src/com/android/incallui/AnswerFragment.java | 40 ++++++++++++ .../src/com/android/incallui/AnswerPresenter.java | 31 ++++++++++ InCallUI/src/com/android/incallui/AnswerUi.java | 72 ++++++++++++++++++++++ 6 files changed, 214 insertions(+), 25 deletions(-) create mode 100644 InCallUI/InCallUI.iml create mode 100644 InCallUI/res/layout/answer_fragment.xml create mode 100644 InCallUI/src/com/android/incallui/AnswerFragment.java create mode 100644 InCallUI/src/com/android/incallui/AnswerPresenter.java create mode 100644 InCallUI/src/com/android/incallui/AnswerUi.java diff --git a/InCallUI/InCallUI.iml b/InCallUI/InCallUI.iml new file mode 100644 index 000000000..2dc7d7ee2 --- /dev/null +++ b/InCallUI/InCallUI.iml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/InCallUI/res/layout/answer_fragment.xml b/InCallUI/res/layout/answer_fragment.xml new file mode 100644 index 000000000..bfe2303af --- /dev/null +++ b/InCallUI/res/layout/answer_fragment.xml @@ -0,0 +1,44 @@ + + + + + diff --git a/InCallUI/res/layout/incall_screen.xml b/InCallUI/res/layout/incall_screen.xml index 32159a688..01180ee34 100644 --- a/InCallUI/res/layout/incall_screen.xml +++ b/InCallUI/res/layout/incall_screen.xml @@ -26,30 +26,6 @@ android:layout_weight="1" android:background="#ddd"/> - - + diff --git a/InCallUI/src/com/android/incallui/AnswerFragment.java b/InCallUI/src/com/android/incallui/AnswerFragment.java new file mode 100644 index 000000000..a80fa93b1 --- /dev/null +++ b/InCallUI/src/com/android/incallui/AnswerFragment.java @@ -0,0 +1,40 @@ +/* + * 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.app.Fragment; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +/** + * + */ +public class AnswerFragment extends Fragment { + + AnswerPresenter mPresenter; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + final AnswerUi ui = (AnswerUi) inflater.inflate(R.layout.answer_fragment, container, + false); + mPresenter = new AnswerPresenter(ui); + return ui; + } +} diff --git a/InCallUI/src/com/android/incallui/AnswerPresenter.java b/InCallUI/src/com/android/incallui/AnswerPresenter.java new file mode 100644 index 000000000..237719591 --- /dev/null +++ b/InCallUI/src/com/android/incallui/AnswerPresenter.java @@ -0,0 +1,31 @@ +package com.android.incallui; + +/** + * + */ +public class AnswerPresenter { + + private Ui mUi; + + public AnswerPresenter(Ui ui) { + this.mUi = ui; + + mUi.setPresenter(this); + } + + public void onAnswer() { + + } + + public void onDecline() { + + } + + public void onText() { + + } + + public interface Ui { + void setPresenter(AnswerPresenter presenter); + } +} diff --git a/InCallUI/src/com/android/incallui/AnswerUi.java b/InCallUI/src/com/android/incallui/AnswerUi.java new file mode 100644 index 000000000..f50115393 --- /dev/null +++ b/InCallUI/src/com/android/incallui/AnswerUi.java @@ -0,0 +1,72 @@ +package com.android.incallui; + +import android.content.Context; +import android.util.AttributeSet; +import android.util.Log; +import android.view.View; + +import com.android.incallui.widget.multiwaveview.GlowPadView; + +/** + * + */ +public class AnswerUi extends GlowPadView implements AnswerPresenter.Ui, + GlowPadView.OnTriggerListener { + + private static final String TAG = AnswerUi.class.getSimpleName(); + + private AnswerPresenter mPresenter; + + public AnswerUi(Context context) { + super(context); + } + + public AnswerUi(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public void onGrabbed(View v, int handle) { + + } + + @Override + public void onReleased(View v, int handle) { + + } + + @Override + public void onTrigger(View v, int target) { + final int resId = getResourceIdForTarget(target); + switch (resId) { + case R.drawable.ic_lockscreen_answer: + mPresenter.onAnswer(); + break; + case R.drawable.ic_lockscreen_decline: + mPresenter.onDecline(); + break; + case R.drawable.ic_lockscreen_text: + mPresenter.onText(); + break; + default: + // Code should never reach here. + Log.e(TAG, "Trigger detected on unhandled resource. Skipping."); + } + } + + @Override + public void onGrabbedStateChange(View v, int handle) { + + } + + @Override + public void onFinishFinalAnimation() { + + } + + @Override + public void setPresenter(AnswerPresenter listener) { + mPresenter = listener; + } + +} -- cgit v1.2.3