summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorke Lee <yorkelee@google.com>2015-04-10 14:51:57 -0700
committerYorke Lee <yorkelee@google.com>2015-04-10 15:02:48 -0700
commite700d3a392ed803d3102ab3f94a3bebec4e6e991 (patch)
treefb662fbbdce638bb6ced34e97b0f8ad8f8264047
parent55576e529a3fa7183a698669374b9c2dd28ad5c5 (diff)
Initial refactoring for call buttons
Create common functions to show/enable call buttons Bug: 20127747 Change-Id: I22d45597a73a75954448cb3bd5b906af06d7d690
-rw-r--r--InCallUI/src/com/android/incallui/CallButtonFragment.java155
-rw-r--r--InCallUI/src/com/android/incallui/CallButtonPresenter.java85
2 files changed, 107 insertions, 133 deletions
diff --git a/InCallUI/src/com/android/incallui/CallButtonFragment.java b/InCallUI/src/com/android/incallui/CallButtonFragment.java
index 8682d65e5..a6ea334b3 100644
--- a/InCallUI/src/com/android/incallui/CallButtonFragment.java
+++ b/InCallUI/src/com/android/incallui/CallButtonFragment.java
@@ -16,6 +16,8 @@
package com.android.incallui;
+import static com.android.incallui.CallButtonFragment.Buttons.*;
+
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
@@ -44,7 +46,6 @@ import android.widget.Toast;
import android.widget.PopupMenu.OnDismissListener;
import android.widget.PopupMenu.OnMenuItemClickListener;
-import com.android.contacts.common.util.MaterialColorMapUtils;
import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
import java.util.ArrayList;
@@ -55,8 +56,26 @@ public class CallButtonFragment
extends BaseFragment<CallButtonPresenter, CallButtonPresenter.CallButtonUi>
implements CallButtonPresenter.CallButtonUi, OnMenuItemClickListener, OnDismissListener,
View.OnClickListener {
- private CompoundButton mAudioButton;
private static final int INVALID_INDEX = -1;
+
+ public interface Buttons {
+ public static final int BUTTON_AUDIO = 1;
+ public static final int BUTTON_DOWNGRADE_TO_VOICE = 2;
+ public static final int BUTTON_MUTE = 3;
+ public static final int BUTTON_DIALPAD = 4;
+ public static final int BUTTON_HOLD = 5;
+ public static final int BUTTON_SWAP = 6;
+ public static final int BUTTON_UPGRADE_TO_VIDEO = 7;
+ public static final int BUTTON_SWITCH_CAMERA = 8;
+ public static final int BUTTON_ADD_CALL = 9;
+ public static final int BUTTON_MERGE = 10;
+ public static final int BUTTON_PAUSE_VIDEO = 11;
+ public static final int BUTTON_MANAGE_VIDEO_CONFERENCE = 12;
+ public static final int BUTTON_OVERFLOW = 13;
+ }
+
+
+ private CompoundButton mAudioButton;
private ImageButton mChangeToVoiceButton;
private CompoundButton mMuteButton;
private CompoundButton mShowDialpadButton;
@@ -157,7 +176,6 @@ public class CallButtonFragment
int id = view.getId();
Log.d(this, "onClick(View " + view + ", id " + id + ")...");
- boolean isClickHandled = true;
switch(id) {
case R.id.audioButton:
onAudioButtonClicked();
@@ -206,16 +224,13 @@ public class CallButtonFragment
onManageVideoCallConferenceClicked();
break;
default:
- isClickHandled = false;
Log.wtf(this, "onClick: unexpected");
- break;
+ return;
}
- if (isClickHandled) {
- view.performHapticFeedback(
- HapticFeedbackConstants.VIRTUAL_KEY,
- HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
- }
+ view.performHapticFeedback(
+ HapticFeedbackConstants.VIRTUAL_KEY,
+ HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
}
public void updateColors() {
@@ -355,23 +370,53 @@ public class CallButtonFragment
}
@Override
- public void showAudioButton(boolean show) {
- mAudioButton.setVisibility(show ? View.VISIBLE : View.GONE);
- }
-
- @Override
- public void showChangeToVoiceButton(boolean show) {
- mChangeToVoiceButton.setVisibility(show ? View.VISIBLE : View.GONE);
+ public void showButton(int buttonId, boolean show) {
+ final View button = getButtonById(buttonId);
+ if (button != null) {
+ button.setVisibility(show ? View.VISIBLE : View.GONE);
+ }
}
@Override
- public void enableMute(boolean enabled) {
- mMuteButton.setEnabled(enabled);
+ public void enableButton(int buttonId, boolean enable) {
+ final View button = getButtonById(buttonId);
+ if (button != null) {
+ button.setEnabled(enable);
+ }
}
- @Override
- public void showDialpadButton(boolean show) {
- mShowDialpadButton.setVisibility(show ? View.VISIBLE : View.GONE);
+ private View getButtonById(int id) {
+ switch (id) {
+ case BUTTON_AUDIO:
+ return mAudioButton;
+ case BUTTON_DOWNGRADE_TO_VOICE:
+ return mChangeToVoiceButton;
+ case BUTTON_MUTE:
+ return mMuteButton;
+ case BUTTON_DIALPAD:
+ return mShowDialpadButton;
+ case BUTTON_HOLD:
+ return mHoldButton;
+ case BUTTON_SWAP:
+ return mSwapButton;
+ case BUTTON_UPGRADE_TO_VIDEO:
+ return mChangeToVideoButton;
+ case BUTTON_SWITCH_CAMERA:
+ return mSwitchCameraButton;
+ case BUTTON_ADD_CALL:
+ return mAddCallButton;
+ case BUTTON_MERGE:
+ return mMergeButton;
+ case BUTTON_PAUSE_VIDEO:
+ return mPauseVideoButton;
+ case BUTTON_MANAGE_VIDEO_CONFERENCE:
+ return mManageVideoCallConferenceButton;
+ case BUTTON_OVERFLOW:
+ return mOverflowButton;
+ default:
+ Log.w(this, "Invalid button id");
+ return null;
+ }
}
@Override
@@ -382,75 +427,15 @@ public class CallButtonFragment
}
@Override
- public void showHoldButton(boolean show) {
- mHoldButton.setVisibility(show ? View.VISIBLE : View.GONE);
- }
-
- @Override
- public void enableHold(boolean enabled) {
- mHoldButton.setEnabled(enabled);
- }
-
- @Override
- public void showSwapButton(boolean show) {
- mSwapButton.setVisibility(show ? View.VISIBLE : View.GONE);
- }
-
- @Override
- public void showChangeToVideoButton(boolean show) {
- mChangeToVideoButton.setVisibility(show ? View.VISIBLE : View.GONE);
- }
-
- @Override
- public void enableChangeToVideoButton(boolean enable) {
- mChangeToVideoButton.setEnabled(enable);
- }
-
- @Override
- public void showSwitchCameraButton(boolean show) {
- mSwitchCameraButton.setVisibility(show ? View.VISIBLE : View.GONE);
- }
-
- @Override
- public void setSwitchCameraButton(boolean isBackFacingCamera) {
+ public void setCameraSwitched(boolean isBackFacingCamera) {
mSwitchCameraButton.setSelected(isBackFacingCamera);
}
@Override
- public void showAddCallButton(boolean show) {
- Log.d(this, "show Add call button: " + show);
- mAddCallButton.setVisibility(show ? View.VISIBLE : View.GONE);
- }
-
- public void showManageConferenceVideoCallButton(boolean show) {
- mManageVideoCallConferenceButton.setVisibility(show ? View.VISIBLE : View.GONE);
- }
-
- @Override
- public void showMergeButton(boolean show) {
- mMergeButton.setVisibility(show ? View.VISIBLE : View.GONE);
-
- // If the merge button was disabled, re-enable it when hiding it.
- if (!show) {
- mMergeButton.setEnabled(true);
- }
- }
-
- @Override
- public void showPauseVideoButton(boolean show) {
- mPauseVideoButton.setVisibility(show ? View.VISIBLE : View.GONE);
- }
-
- @Override
- public void setPauseVideoButton(boolean isPaused) {
+ public void setVideoPaused(boolean isPaused) {
mPauseVideoButton.setSelected(isPaused);
}
- @Override
- public void showOverflowButton(boolean show) {
- mOverflowButton.setVisibility(show ? View.VISIBLE : View.GONE);
- }
-
/**The function is called when Modify Call button gets pressed. The function creates and
* displays modify call options.
*/
@@ -526,7 +511,7 @@ public class CallButtonFragment
@Override
public void configureOverflowMenu(boolean showMergeMenuOption, boolean showAddMenuOption,
- boolean showHoldMenuOption, boolean showSwapMenuOption,
+ boolean showHoldMenuOption, boolean showSwapMenuOption,
boolean showManageConferenceVideoCallOption) {
if (mOverflowPopup == null) {
final ContextThemeWrapper contextWrapper = new ContextThemeWrapper(getActivity(),
diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
index 4e840be9f..0faebfd29 100644
--- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
@@ -16,6 +16,8 @@
package com.android.incallui;
+import static com.android.incallui.CallButtonFragment.Buttons.*;
+
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
@@ -321,7 +323,7 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
mCall.getVideoState() & ~VideoProfile.VideoState.PAUSED);
videoCall.sendSessionModifyRequest(videoProfile);
}
- getUi().setPauseVideoButton(pause);
+ getUi().setVideoPaused(pause);
}
private void updateUi(InCallState state, Call call) {
@@ -342,7 +344,7 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
updateCallButtons(call, ui.getContext());
- ui.enableMute(call.can(android.telecom.Call.Details.CAPABILITY_MUTE));
+ ui.enableButton(BUTTON_MUTE, call.can(android.telecom.Call.Details.CAPABILITY_MUTE));
}
private static int toInteger(boolean b) {
@@ -367,13 +369,13 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
final CallButtonUi ui = getUi();
// Show all video-call-related buttons.
- ui.showSwitchCameraButton(true);
- ui.showPauseVideoButton(true);
+ ui.showButton(BUTTON_SWITCH_CAMERA, true);
+ ui.showButton(BUTTON_PAUSE_VIDEO, true);
final boolean supportHold = call.can(android.telecom.Call.Details.CAPABILITY_SUPPORT_HOLD);
final boolean enableHoldOption = call.can(android.telecom.Call.Details.CAPABILITY_HOLD);
- ui.showHoldButton(supportHold);
- ui.enableHold(enableHoldOption);
+ ui.showButton(BUTTON_HOLD, supportHold);
+ ui.enableButton(BUTTON_HOLD, enableHoldOption);
ui.setHold(call.getState() == Call.State.ONHOLD);
}
@@ -382,13 +384,13 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
final CallButtonUi ui = getUi();
// Hide all video-call-related buttons.
- ui.showChangeToVoiceButton(false);
- ui.showSwitchCameraButton(false);
- ui.showPauseVideoButton(false);
+ ui.showButton(BUTTON_DOWNGRADE_TO_VOICE, false);
+ ui.showButton(BUTTON_SWITCH_CAMERA, false);
+ ui.showButton(BUTTON_PAUSE_VIDEO, false);
// Show all voice-call-related buttons.
- ui.showAudioButton(true);
- ui.showDialpadButton(true);
+ ui.showButton(BUTTON_AUDIO, true);
+ ui.showButton(BUTTON_DIALPAD, true);
Log.v(this, "Show hold ", call.can(android.telecom.Call.Details.CAPABILITY_SUPPORT_HOLD));
Log.v(this, "Enable hold", call.can(android.telecom.Call.Details.CAPABILITY_HOLD));
@@ -410,7 +412,7 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
boolean canVideoCall = call.can(android.telecom.Call.Details.CAPABILITY_SUPPORTS_VT_LOCAL)
&& call.can(android.telecom.Call.Details.CAPABILITY_SUPPORTS_VT_REMOTE);
- ui.showChangeToVideoButton(canVideoCall);
+ ui.showButton(BUTTON_UPGRADE_TO_VIDEO, canVideoCall);
final boolean showMergeOption = call.can(
android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE);
@@ -447,11 +449,11 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
final boolean isOverflowScenario = !canVideoCall && showOverflowMenu;
if (isVideoOverflowScenario) {
- ui.showHoldButton(false);
- ui.showSwapButton(false);
- ui.showAddCallButton(false);
- ui.showMergeButton(false);
- ui.showManageConferenceVideoCallButton(false);
+ ui.showButton(BUTTON_HOLD, false);
+ ui.showButton(BUTTON_SWAP, false);
+ ui.showButton(BUTTON_ADD_CALL, false);
+ ui.showButton(BUTTON_MERGE, false);
+ ui.showButton(BUTTON_MANAGE_VIDEO_CONFERENCE, false);
ui.configureOverflowMenu(
showMergeOption,
@@ -459,12 +461,12 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
showHoldOption && enableHoldOption /* showHoldMenuOption */,
showSwapOption,
showManageVideoCallConferenceOption);
- ui.showOverflowButton(true);
+ ui.showButton(BUTTON_OVERFLOW, true);
} else {
if (isOverflowScenario) {
- ui.showAddCallButton(false);
- ui.showMergeButton(false);
- ui.showManageConferenceVideoCallButton(false);
+ ui.showButton(BUTTON_ADD_CALL, false);
+ ui.showButton(BUTTON_MERGE, false);
+ ui.showButton(BUTTON_MANAGE_VIDEO_CONFERENCE, false);
ui.configureOverflowMenu(
showMergeOption,
@@ -473,15 +475,15 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
false /* showSwapMenuOption */,
showManageVideoCallConferenceOption);
} else {
- ui.showMergeButton(showMergeOption);
- ui.showAddCallButton(showAddCallOption);
- ui.showManageConferenceVideoCallButton(showManageVideoCallConferenceOption);
+ ui.showButton(BUTTON_MERGE, showMergeOption);
+ ui.showButton(BUTTON_ADD_CALL, showAddCallOption);
+ ui.showButton(BUTTON_MANAGE_VIDEO_CONFERENCE, showManageVideoCallConferenceOption);
}
- ui.showOverflowButton(isOverflowScenario);
- ui.showHoldButton(showHoldOption);
- ui.enableHold(enableHoldOption);
- ui.showSwapButton(showSwapOption);
+ ui.showButton(BUTTON_OVERFLOW, isOverflowScenario);
+ ui.showButton(BUTTON_HOLD, showHoldOption);
+ ui.enableButton(BUTTON_HOLD, enableHoldOption);
+ ui.showButton(BUTTON_SWAP, showSwapOption);
}
}
@@ -514,31 +516,18 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
}
public interface CallButtonUi extends Ui {
+ void showButton(int buttonId, boolean show);
+ void enableButton(int buttonId, boolean enable);
void setEnabled(boolean on);
void setMute(boolean on);
- void enableMute(boolean enabled);
- void showAudioButton(boolean show);
- void showChangeToVoiceButton(boolean show);
- void showDialpadButton(boolean show);
void setHold(boolean on);
- void showHoldButton(boolean show);
- void enableHold(boolean enabled);
- void showSwapButton(boolean show);
- void showChangeToVideoButton(boolean show);
- void enableChangeToVideoButton(boolean enable);
- void showSwitchCameraButton(boolean show);
- void setSwitchCameraButton(boolean isBackFacingCamera);
- void showAddCallButton(boolean show);
- void showManageConferenceVideoCallButton(boolean show);
- void showMergeButton(boolean show);
- void showPauseVideoButton(boolean show);
- void setPauseVideoButton(boolean isPaused);
- void showOverflowButton(boolean show);
+ void setCameraSwitched(boolean isBackFacingCamera);
+ void setVideoPaused(boolean isPaused);
+ void setAudio(int mode);
+ void setSupportedAudio(int mask);
void displayDialpad(boolean on, boolean animate);
void displayModifyCallOptions();
boolean isDialpadVisible();
- void setAudio(int mode);
- void setSupportedAudio(int mask);
void configureOverflowMenu(boolean showMergeMenuOption, boolean showAddMenuOption,
boolean showHoldMenuOption, boolean showSwapMenuOption,
boolean showManageConferenceVideoCallOption);
@@ -550,6 +539,6 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
if (getUi() == null) {
return;
}
- getUi().setSwitchCameraButton(!isUsingFrontFacingCamera);
+ getUi().setCameraSwitched(!isUsingFrontFacingCamera);
}
}