package im.actor.core.viewmodel;
import im.actor.core.api.ApiCallMemberState;
import im.actor.core.api.ApiCallMemberStateHolder;
public enum CallMemberState {
RINGING, RINGING_REACHED, CONNECTING, IN_PROGRESS, ENDED;
public static CallMemberState from(ApiCallMemberStateHolder state) {
switch (state.getState()) {
case RINGING:
return CallMemberState.RINGING;
case RINGING_REACHED:
return CallMemberState.RINGING_REACHED;
case CONNECTING:
return CallMemberState.CONNECTING;
case CONNECTED:
return CallMemberState.IN_PROGRESS;
case ENDED:
return CallMemberState.ENDED;
default:
if (state.fallbackIsRingingReached() != null && state.fallbackIsRingingReached()) {
return CallMemberState.RINGING_REACHED;
}
if (state.fallbackIsEnded() != null && state.fallbackIsEnded()) {
return CallMemberState.ENDED;
}
if (state.fallbackIsRinging() != null && state.fallbackIsRinging()) {
return CallMemberState.RINGING;
}
if (state.fallbackIsConnecting() != null && state.fallbackIsConnecting()) {
return CallMemberState.CONNECTING;
}
if (state.fallbackIsConnected() != null && state.fallbackIsConnected()) {
return CallMemberState.IN_PROGRESS;
}
return CallMemberState.RINGING;
}
}
}