package org.cnodejs.android.md.ui.activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.widget.Toolbar;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
import com.pnikosis.materialishprogress.ProgressWheel;
import org.cnodejs.android.md.R;
import org.cnodejs.android.md.ui.base.StatusBarActivity;
import org.cnodejs.android.md.ui.listener.NavigationFinishClickListener;
import butterknife.BindView;
import butterknife.ButterKnife;
import uk.co.senab.photoview.PhotoView;
public class ImagePreviewActivity extends StatusBarActivity {
private static final String EXTRA_IMAGE_URL = "imageUrl";
public static void start(@NonNull Context context, String imageUrl) {
Intent intent = new Intent(context, ImagePreviewActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(EXTRA_IMAGE_URL, imageUrl);
context.startActivity(intent);
}
@BindView(R.id.toolbar)
protected Toolbar toolbar;
@BindView(R.id.photo_view)
protected PhotoView photoView;
@BindView(R.id.progress_wheel)
protected ProgressWheel progressWheel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_preview);
ButterKnife.bind(this);
toolbar.setNavigationOnClickListener(new NavigationFinishClickListener(this));
loadImageAsyncTask();
}
private void loadImageAsyncTask() {
progressWheel.spin();
Glide.with(this).load(getIntent().getStringExtra(EXTRA_IMAGE_URL)).error(R.drawable.image_error).dontAnimate().listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
progressWheel.stopSpinning();
return false;
}
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
progressWheel.stopSpinning();
return false;
}
}).into(photoView);
}
}