package com.quickblox.sample.groupchatwebrtc.fragments;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Chronometer;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.ToggleButton;
import com.quickblox.sample.core.utils.UiUtils;
import com.quickblox.sample.groupchatwebrtc.R;
import com.quickblox.sample.groupchatwebrtc.activities.CallActivity;
import com.quickblox.sample.groupchatwebrtc.utils.CollectionsUtils;
import com.quickblox.users.model.QBUser;
import java.util.ArrayList;
/**
* Created by tereha on 25.05.16.
*/
public class AudioConversationFragment extends BaseConversationFragment implements CallActivity.OnChangeDynamicToggle {
private static final String TAG = AudioConversationFragment.class.getSimpleName();
private ToggleButton audioSwitchToggleButton;
private TextView alsoOnCallText;
private TextView firstOpponentNameTextView;
private TextView otherOpponentsTextView;
private boolean headsetPlugged;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onStart() {
super.onStart();
conversationFragmentCallbackListener.addOnChangeDynamicToggle(this);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
protected void configureOutgoingScreen() {
outgoingOpponentsRelativeLayout.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white));
allOpponentsTextView.setTextColor(ContextCompat.getColor(getActivity(), R.color.text_color_outgoing_opponents_names_audio_call));
ringingTextView.setTextColor(ContextCompat.getColor(getActivity(), R.color.text_color_call_type));
}
@Override
protected void configureToolbar() {
toolbar.setVisibility(View.VISIBLE);
toolbar.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white));
toolbar.setTitleTextColor(ContextCompat.getColor(getActivity(), R.color.toolbar_title_color));
toolbar.setSubtitleTextColor(ContextCompat.getColor(getActivity(), R.color.toolbar_subtitle_color));
}
@Override
protected void configureActionBar() {
actionBar.setTitle(currentUser.getTags().get(0));
actionBar.setSubtitle(String.format(getString(R.string.subtitle_text_logged_in_as), currentUser.getFullName()));
}
@Override
protected void initViews(View view) {
super.initViews(view);
timerChronometer = (Chronometer) view.findViewById(R.id.chronometer_timer_audio_call);
ImageView firstOpponentAvatarImageView = (ImageView) view.findViewById(R.id.image_caller_avatar);
firstOpponentAvatarImageView.setBackgroundDrawable(UiUtils.getColorCircleDrawable(opponents.get(0).getId()));
alsoOnCallText = (TextView) view.findViewById(R.id.text_also_on_call);
setVisibilityAlsoOnCallTextView();
firstOpponentNameTextView = (TextView) view.findViewById(R.id.text_caller_name);
firstOpponentNameTextView.setText(opponents.get(0).getFullName());
otherOpponentsTextView = (TextView) view.findViewById(R.id.text_other_inc_users);
otherOpponentsTextView.setText(getOtherOpponentsNames());
audioSwitchToggleButton = (ToggleButton) view.findViewById(R.id.toggle_speaker);
audioSwitchToggleButton.setVisibility(View.VISIBLE);
actionButtonsEnabled(false);
}
private void setVisibilityAlsoOnCallTextView() {
if (opponents.size() < 2) {
alsoOnCallText.setVisibility(View.INVISIBLE);
}
}
private String getOtherOpponentsNames() {
ArrayList<QBUser> otherOpponents = new ArrayList<>();
otherOpponents.addAll(opponents);
otherOpponents.remove(0);
return CollectionsUtils.makeStringFromUsersFullNames(otherOpponents);
}
@Override
public void onStop() {
super.onStop();
conversationFragmentCallbackListener.removeOnChangeDynamicToggle(this);
}
@Override
protected void initButtonsListener() {
super.initButtonsListener();
audioSwitchToggleButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
conversationFragmentCallbackListener.onSwitchAudio();
}
});
}
@Override
protected void actionButtonsEnabled(boolean inability) {
super.actionButtonsEnabled(inability);
if (!headsetPlugged) {
audioSwitchToggleButton.setEnabled(inability);
}
audioSwitchToggleButton.setActivated(inability);
}
@Override
int getFragmentLayout() {
return R.layout.fragment_audio_conversation;
}
@Override
public void onOpponentsListUpdated(ArrayList<QBUser> newUsers) {
super.onOpponentsListUpdated(newUsers);
firstOpponentNameTextView.setText(opponents.get(0).getFullName());
otherOpponentsTextView.setText(getOtherOpponentsNames());
}
@Override
public void enableDynamicToggle(boolean plugged, boolean previousDeviceEarPiece) {
headsetPlugged = plugged;
if (isStarted) {
audioSwitchToggleButton.setEnabled(!plugged);
if (plugged) {
audioSwitchToggleButton.setChecked(true);
}else if(previousDeviceEarPiece){
audioSwitchToggleButton.setChecked(true);
} else {
audioSwitchToggleButton.setChecked(false);
}
}
}
}