package com.quickblox.sample.content.activities; import android.content.Context; import android.content.Intent; import android.os.Bundle; 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.content.model.QBFile; import com.quickblox.sample.content.R; import com.quickblox.sample.content.helper.DataHolder; import com.quickblox.sample.content.utils.Consts; import com.quickblox.sample.content.utils.QBContentUtils; public class ShowImageActivity extends BaseActivity { private static final String EXTRA_QB_FILE_ID = "qb_file_id"; private static final int NO_ID = -1; private ImageView imageView; private ProgressBar progressBar; public static void start(Context context, int id) { Intent intent = new Intent(context, ShowImageActivity.class); intent.putExtra(EXTRA_QB_FILE_ID, id); context.startActivity(intent); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_show_image); initUI(); loadImage(); } 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() { int id = getIntent().getIntExtra(EXTRA_QB_FILE_ID, NO_ID); QBFile qbFile = DataHolder.getInstance().getQBFile(id); if (qbFile == null) { imageView.setImageResource(R.drawable.ic_error); return; } progressBar.setVisibility(View.VISIBLE); Glide.with(this) .load(QBContentUtils.getUrl(qbFile)) .diskCacheStrategy(DiskCacheStrategy.ALL) .listener(new RequestListener<String, GlideDrawable>() { @Override public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { 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_WIDTH_FULL, Consts.PREFERRED_IMAGE_HEIGHT_FULL) .into(imageView); } }