package wearable.android.zaim.net.activities; import android.app.Activity; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.view.GestureDetectorCompat; import android.support.wearable.activity.ConfirmationActivity; import android.support.wearable.view.DismissOverlayView; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; import android.widget.TextView; import com.squareup.otto.Subscribe; import wearable.android.zaim.net.R; import wearable.android.zaim.net.common.utils.PreferenceUtils; import wearable.android.zaim.net.common.utils.ToastUtils; import wearable.android.zaim.net.events.BusProvider; import wearable.android.zaim.net.events.FailurePaymentEvent; import wearable.android.zaim.net.events.SuccessPaymentEvent; import wearable.android.zaim.net.helpers.IntentHelper; import wearable.android.zaim.net.services.CreatePaymentService; import wearable.android.zaim.net.views.SeekArc; public class MainActivity extends Activity implements SeekArc.OnSeekArcChangeListener, View.OnClickListener { private TextView mAmountTextView; private GestureDetectorCompat mGestureDetector; private DismissOverlayView mDismissOverlayView; private boolean mIsLogin; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); BusProvider.getInstance().register(this); mIsLogin = PreferenceUtils.isLogin(getApplicationContext()); if (!mIsLogin) { setContentView(R.layout.activity_main_not_login); return; } setContentView(R.layout.activity_main); setUpLayout(); } @Override protected void onDestroy() { super.onDestroy(); BusProvider.getInstance().unregister(this); } @Override public void onProgressChanged(SeekArc seekArc, int progress, boolean fromUser) { mAmountTextView.setText(String.valueOf(progress)); } @Override public void onStartTrackingTouch(SeekArc seekArc) { } @Override public void onStopTrackingTouch(SeekArc seekArc) { } @Override public void onClick(View v) { String payment = mAmountTextView.getText().toString(); startService(CreatePaymentService.createIntent(this, payment)); } @Subscribe public void onSuccessPayment(SuccessPaymentEvent event) { startActivity(IntentHelper.createConfirmationIntent(this, R.string.message_success_pay, ConfirmationActivity.SUCCESS_ANIMATION)); finish(); } @Subscribe public void onFailurePayment(FailurePaymentEvent event) { startActivity(IntentHelper.createConfirmationIntent(this, R.string.message_failure_pay, ConfirmationActivity.FAILURE_ANIMATION)); ToastUtils.show(this, R.string.message_try_again); } private void setUpLayout() { SeekArc mSeekArc = (SeekArc) findViewById(R.id.seekarc); mSeekArc.setOnSeekArcChangeListener(this); mAmountTextView = (TextView) findViewById(R.id.amount); mAmountTextView.setOnClickListener(this); mDismissOverlayView = (DismissOverlayView) findViewById(R.id.dismiss_overlay); mGestureDetector = new GestureDetectorCompat(this, new LongPressListener()); } @Override public boolean dispatchTouchEvent(@NonNull MotionEvent event) { if (mIsLogin) { return mGestureDetector.onTouchEvent(event) || super.dispatchTouchEvent(event); } else { return super.dispatchTouchEvent(event); } } private class LongPressListener extends GestureDetector.SimpleOnGestureListener { @Override public void onLongPress(MotionEvent event) { mDismissOverlayView.show(); } } }