package org.softeg.slartus.forpdaplus.controls.imageview;
import android.app.Dialog;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.View;
import android.view.WindowManager;
import com.afollestad.materialdialogs.MaterialDialog;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
import org.softeg.slartus.forpdaplus.R;
import org.softeg.slartus.forpdaplus.common.AppLog;
import java.net.URI;
import java.net.URISyntaxException;
import uk.co.senab.photoview.PhotoView;
/*
* Created by slinkin on 19.02.2015.
*/
public class ImageViewDialogFragment extends DialogFragment {
public static final String PREVIEW_URL_KEY = "PREVIEW_URL_KEY";
public static final String URL_KEY = "URL_KEY";
public static final String TITLE_KEY = "TITLE_KEY";
private PhotoView m_PhotoView;
private View m_ProgressView;
private String mPreviewUrl;
private String mUrl;
private String mTitle;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
if (getArguments() != null){
mPreviewUrl=getArguments().getString(PREVIEW_URL_KEY);
mUrl=getArguments().getString(URL_KEY);
mTitle=getArguments().getString(TITLE_KEY);
}
else if (savedInstanceState != null) {
mPreviewUrl=savedInstanceState.getString(PREVIEW_URL_KEY);
mUrl=savedInstanceState.getString(URL_KEY);
mTitle=savedInstanceState.getString(TITLE_KEY);
}
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
View v = getActivity().getLayoutInflater().inflate(R.layout.image_view_dialog, null);
m_PhotoView=(PhotoView)v.findViewById(R.id.iv_photo);
//m_PhotoView.setScaleType(ImageView.ScaleType.FIT_CENTER);
m_PhotoView.setMaximumScale(10f);
m_ProgressView=v.findViewById(R.id.progressBar);
MaterialDialog builder= new MaterialDialog.Builder(getActivity())
.title(mTitle)
.customView(v,false)
.negativeText(R.string.close)
.positiveText(R.string.full_size)
.callback(new MaterialDialog.ButtonCallback() {
@Override
public void onPositive(MaterialDialog dialog) {
String url = mUrl;
try {
URI uri = new URI(mUrl);
if (!uri.isAbsolute())
url = "http://4pda.ru" + url;
} catch (URISyntaxException e) {
e.printStackTrace();
}
// ImageViewActivity.startActivity(getActivity(), url);
ImgViewer.startActivity(getActivity(), url);
}
}).build();
builder.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
builder.show();
return builder;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
try{
m_ProgressView.setVisibility(View.VISIBLE);
ImageLoader.getInstance().displayImage(mPreviewUrl, m_PhotoView, new SimpleImageLoadingListener(){
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
m_ProgressView.setVisibility(View.GONE);
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
m_ProgressView.setVisibility(View.GONE);
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
m_ProgressView.setVisibility(View.GONE);
}
});
}catch (Throwable ex){
AppLog.e(getActivity(),ex);
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putString(PREVIEW_URL_KEY, mPreviewUrl);
outState.putString(URL_KEY, mUrl);
outState.putString(TITLE_KEY, mTitle);
}
}