package cz.destil.wearsquare.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Vibrator;
import android.support.wearable.activity.ConfirmationActivity;
import cz.destil.wearsquare.R;
import cz.destil.wearsquare.adapter.CheckInAdapter;
import cz.destil.wearsquare.adapter.EmojiAdapter;
import cz.destil.wearsquare.core.App;
import cz.destil.wearsquare.event.ExitEvent;
import cz.destil.wearsquare.event.PageChangedEvent;
/**
* Displays a timer which performs check-in after period or inactivity. Or cancels check-in when user presses the timer.
*
* @author David Vávra (david@vavra.me)
*/
public class CheckInActivity extends GridPagerActivity {
public static final int CONFIRM_ACTIVITY = 42;
public static void call(Activity activity, String venueId, String venueName) {
Intent intent = new Intent(activity, CheckInActivity.class);
intent.putExtra("VENUE_ID", venueId);
intent.putExtra("VENUE_NAME", venueName);
activity.startActivity(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setAdapter(new CheckInAdapter(this, getIntent().getStringExtra("VENUE_NAME")));
setPagerListener(new PagerListener() {
@Override
public void onPageChanged() {
App.bus().post(new PageChangedEvent());
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CONFIRM_ACTIVITY) {
finish();
App.bus().post(new ExitEvent());
}
}
public void sendCheckInMessage() {
teleport().sendMessage("check-in/" + getIntent().getStringExtra("VENUE_ID") + "/" + EmojiAdapter.getSelectedEmoji(), null);
Intent i = new Intent(this, ConfirmationActivity.class);
i.putExtra(ConfirmationActivity.EXTRA_ANIMATION_TYPE, ConfirmationActivity.SUCCESS_ANIMATION);
i.putExtra(ConfirmationActivity.EXTRA_MESSAGE, getString(R.string.checked_in));
startActivityForResult(i, CheckInActivity.CONFIRM_ACTIVITY);
vibrate();
}
private void vibrate() {
Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
long[] vibrationPattern = {0, 150, 75, 150};
vibrator.vibrate(vibrationPattern, -1 /* don't repeat */);
}
}