package com.github.jorgecastilloprz.fabprogresscircle; import android.app.Activity; import android.os.Bundle; import android.support.design.widget.Snackbar; import android.view.View; import android.widget.ImageView; import com.github.jorgecastilloprz.FABProgressCircle; import com.github.jorgecastilloprz.fabprogresscircle.executor.ThreadExecutor; import com.github.jorgecastilloprz.fabprogresscircle.interactor.MockAction; import com.github.jorgecastilloprz.fabprogresscircle.interactor.MockActionCallback; import com.github.jorgecastilloprz.fabprogresscircle.picasso.GrayscaleCircleTransform; import com.github.jorgecastilloprz.listeners.FABProgressListener; import com.squareup.picasso.Picasso; public class MainActivity extends Activity implements MockActionCallback, FABProgressListener { private FABProgressCircle fabProgressCircle; private boolean taskRunning; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); loadAvatar(); attachListeners(); } private void initViews() { fabProgressCircle = (FABProgressCircle) findViewById(R.id.fabProgressCircle); } private void loadAvatar() { ImageView avatarView = (ImageView) findViewById(R.id.avatar); Picasso.with(this) .load(R.drawable.avatar) .transform(new GrayscaleCircleTransform()) .into(avatarView); } private void attachListeners() { fabProgressCircle.attachListener(this); findViewById(R.id.fab).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (!taskRunning) { fabProgressCircle.show(); runMockInteractor(); } } }); } private void runMockInteractor() { ThreadExecutor executor = new ThreadExecutor(); executor.run(new MockAction(this)); taskRunning = true; } @Override public void onMockActionComplete() { taskRunning = false; fabProgressCircle.beginFinalAnimation(); //fabProgressCircle.hide(); } @Override public void onFABProgressAnimationEnd() { Snackbar.make(fabProgressCircle, R.string.cloud_upload_complete, Snackbar.LENGTH_LONG) .setAction("Action", null) .show(); } }