Highlighting of incall call.

This commit is contained in:
Guillaume Beraudo 2011-12-01 08:49:29 +01:00
parent d953b11fa2
commit 817c80c046

View file

@ -23,6 +23,7 @@ import static android.view.View.VISIBLE;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
@ -405,15 +406,12 @@ public class IncallActivity extends AbstractCalleesActivity implements
return false; return false;
} }
private boolean highlightCall(LinphoneCall call) { private Collection<State> mStatesToHighlight = Arrays.asList(
final State state = call.getState(); State.StreamsRunning,
return state == State.StreamsRunning State.OutgoingRinging,
|| state == State.OutgoingRinging State.OutgoingEarlyMedia,
|| state == State.OutgoingEarlyMedia State.OutgoingInit,
|| state == State.OutgoingInit State.OutgoingProgress);
|| state == State.OutgoingProgress
;
}
public View getView(int position, View v, ViewGroup parent) { public View getView(int position, View v, ViewGroup parent) {
if (v == null) { if (v == null) {
@ -438,7 +436,7 @@ public class IncallActivity extends AbstractCalleesActivity implements
((TextView) v.findViewById(R.id.address)).setText(statusLabel); ((TextView) v.findViewById(R.id.address)).setText(statusLabel);
boolean highlighted = highlightCall(call); boolean highlighted = mStatesToHighlight.contains(state);
int bgDrawableId = R.drawable.conf_callee_selector_normal; int bgDrawableId = R.drawable.conf_callee_selector_normal;
if (state == State.IncomingReceived) { if (state == State.IncomingReceived) {
@ -513,16 +511,16 @@ public class IncallActivity extends AbstractCalleesActivity implements
v.setOnClickListener(new OnClickListener() { v.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (lc().soundResourcesLocked()) {
return;
}
State actualState = call.getState(); State actualState = call.getState();
if (State.StreamsRunning == actualState) { if (State.StreamsRunning == actualState) {
lc().pauseCall(call); lc().pauseCall(call);
} else if (State.PausedByRemote == actualState) {
String msg = getString(R.string.cannot_resume_paused_by_remote_call);
Toast.makeText(IncallActivity.this, msg, Toast.LENGTH_SHORT).show();
} else if (lc().soundResourcesLocked()) {
return;
} else if (State.Paused == actualState) { } else if (State.Paused == actualState) {
lc().resumeCall(call); lc().resumeCall(call);
} else if (State.PausedByRemote == actualState) {
Toast.makeText(IncallActivity.this, getString(R.string.cannot_resume_paused_by_remote_call), Toast.LENGTH_SHORT).show();
} }
} }
}); });