package what.whatandroid.views;
import android.app.Dialog;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ProgressBar;
import com.bumptech.glide.Glide;
import what.whatandroid.R;
import what.whatandroid.WhatApplication;
/**
* Basic dialog to display a full image, similar to how the site does when you
* click on some album art
*/
public class ImageDialog extends DialogFragment implements View.OnClickListener {
public static final String IMAGE_URL = "what.whatandroid.IMAGE_URL";
private String imageUrl;
/**
* Use this factory method to create an image dialog displaying the image at some url
* In typical usage of the app this image will already be cached by UIL so we won't
* actually need to do any downloading
*/
public static ImageDialog newInstance(String imgUrl) {
ImageDialog dialog = new ImageDialog();
Bundle args = new Bundle();
args.putString(IMAGE_URL, imgUrl);
dialog.setArguments(args);
return dialog;
}
public ImageDialog() {
//Required empty ctor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
imageUrl = getArguments().getString(IMAGE_URL);
// setStyle(STYLE_NORMAL, R.style.MY_DIALOG);
setStyle(STYLE_NO_FRAME, R.style.ImageDialog);
// setStyle(STYLE_NORMAL, android.R.style.Theme_Translucent_NoTitleBar);
}
@Override
public void onStart() {
super.onStart();
Dialog d = getDialog();
if (d != null) {
int width = ViewGroup.LayoutParams.MATCH_PARENT;
int height = ViewGroup.LayoutParams.MATCH_PARENT;
d.getWindow().setLayout(width, height);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_image, null);
TouchImageView imageView = (TouchImageView) view.findViewById(R.id.image);
final ProgressBar spinner = (ProgressBar) view.findViewById(R.id.loading_indicator);
WhatApplication.loadImage(getActivity(), imageUrl, imageView, spinner, null, null);
imageView.setOnClickListener(this);
return view;
}
@Override
public void onClick(View v) {
getDialog().dismiss();
}
}