package com.quickblox.sample.chat.ui.activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
import com.quickblox.sample.chat.R;
import com.quickblox.sample.chat.utils.Consts;
public class AttachmentImageActivity extends BaseActivity {
private static final String EXTRA_URL = "url";
private ImageView imageView;
private ProgressBar progressBar;
public static void start(Context context, String url) {
Intent intent = new Intent(context, AttachmentImageActivity.class);
intent.putExtra(EXTRA_URL, url);
context.startActivity(intent);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_image);
initUI();
loadImage();
}
@Override
protected View getSnackbarAnchorView() {
return _findViewById(R.id.layout_root);
}
private void initUI() {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
imageView = _findViewById(R.id.image_full_view);
progressBar = _findViewById(R.id.progress_bar_show_image);
}
private void loadImage() {
String url = getIntent().getStringExtra(EXTRA_URL);
if (TextUtils.isEmpty(url)) {
imageView.setImageResource(R.drawable.ic_error_white);
return;
}
progressBar.setVisibility(View.VISIBLE);
Glide.with(this)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model,
Target<GlideDrawable> target, boolean isFirstResource) {
e.printStackTrace();
progressBar.setVisibility(View.GONE);
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model,
Target<GlideDrawable> target, boolean isFromMemoryCache,
boolean isFirstResource) {
progressBar.setVisibility(View.GONE);
return false;
}
})
.error(R.drawable.ic_error_white)
.dontTransform()
.override(Consts.PREFERRED_IMAGE_SIZE_FULL, Consts.PREFERRED_IMAGE_SIZE_FULL)
.into(imageView);
}
}