package cz.destil.wearsquare.fragment;
import android.os.Bundle;
import android.support.wearable.view.CircledImageView;
import android.support.wearable.view.DelayedConfirmationView;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.squareup.otto.Subscribe;
import butterknife.Bind;
import cz.destil.wearsquare.R;
import cz.destil.wearsquare.activity.CheckInActivity;
import cz.destil.wearsquare.core.BaseFragment;
import cz.destil.wearsquare.event.PageChangedEvent;
/**
* Fragment which actually performs a check-in after timeout.
*
* @author David Vávra (david@vavra.me)
*/
public class CheckInFragment extends BaseFragment {
@Bind(R.id.confirmation)
DelayedConfirmationView vConfirmation;
@Bind(R.id.name)
TextView vName;
@Bind(R.id.checking_in)
TextView vCheckinIn;
@Bind(R.id.delayed_box)
LinearLayout vDelayedBox;
@Bind(R.id.confirm_box)
RelativeLayout vConfirmBox;
@Bind(R.id.cancel)
CircledImageView vCancel;
@Bind(R.id.ok)
CircledImageView vOk;
private boolean mTimerInvalid;
public static CheckInFragment create(String venueName) {
CheckInFragment fragment = new CheckInFragment();
Bundle args = new Bundle();
args.putString("VENUE_NAME", venueName);
fragment.setArguments(args);
return fragment;
}
@Override
public int getLayoutResId() {
return R.layout.fragment_check_in;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
vName.setText(getArguments().getString("VENUE_NAME"));
setupListeners();
vConfirmBox.setVisibility(View.GONE);
vDelayedBox.setVisibility(View.VISIBLE);
startConfirmation();
}
private void setupListeners() {
vConfirmation.setListener(new DelayedConfirmationView.DelayedConfirmationListener() {
@Override
public void onTimerFinished(View view) {
if (!mTimerInvalid) {
vCheckinIn.setVisibility(View.INVISIBLE);
((CheckInActivity)getActivity()).sendCheckInMessage();
}
}
@Override
public void onTimerSelected(View view) {
mTimerInvalid = true;
getActivity().finish();
}
});
vCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().finish();
}
});
vOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((CheckInActivity)getActivity()).sendCheckInMessage();
}
});
}
private void startConfirmation() {
vConfirmation.setTotalTimeMs(3000);
vConfirmation.start();
mTimerInvalid = false;
vCheckinIn.setVisibility(View.VISIBLE);
}
@Subscribe
public void onPageChanged(PageChangedEvent e) {
vConfirmBox.setVisibility(View.VISIBLE);
vDelayedBox.setVisibility(View.GONE);
mTimerInvalid = true;
}
}