package com.basic.views;
import java.net.URL;
import java.util.HashMap;
import com.custom.items.Item;
import com.custom.items.ItemFeed;
import com.custom.items.ItemFeedGif;
import com.custom.items.RowType;
import com.mycom.customcontrol.CustomButtonTouchListener;
import com.mycom.data.Global;
import com.mycom.lib.gesture.imageview.GestureImageView;
import com.mycom.lib.gesture.imageview.PanAndZoomListener;
import com.mycom.lib.gesture.imageview.PanAndZoomListener.Anchor;
import com.mycom.lib.gesture.imageview.PanZoomView;
import com.mycom.lib.gifimageview.GifImageView;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.ImageLoadingProgressListener;
import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
import com.oxi.idivertido.HomeActivity;
import com.oxi.idivertido.R;
import com.parse.GetDataCallback;
import com.parse.ParseException;
import com.parse.ParseFile;
import com.parse.ParseObject;
import com.parse.ProgressCallback;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.text.Editable;
import android.text.Html;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.webkit.WebView;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView.ScaleType;
public class PhotoDetailView extends BaseView {
public HomeActivity m_context;
public static PhotoDetailView g_PhotoDetailView = null;
ProgressDialog progress = null;
boolean m_isFullMode = false;
private FrameLayout layoutTitle = null;
GestureImageView ivPhoto = null;
GifImageView gifPhoto = null;
TextView tvTitle = null;
boolean isGifImg = false;
public PhotoDetailView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs);
initView(context);
}
public PhotoDetailView(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context);
}
public PhotoDetailView(Context context) {
super(context);
initView(context);
}
private void initView(Context context){
m_context = (HomeActivity)context;
View.inflate(context, R.layout.view_photo_detail, this);
}
public void init(ParseObject feed) {
g_PhotoDetailView = this;
m_context.addHistory(getClass().getSimpleName(), this);
final Button btnBack = (Button) findViewById(R.id.btnBack);
btnBack.setOnTouchListener(CustomButtonTouchListener.getInstance());
btnBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
btnBack.setEnabled(false);
onBack();
}
});
layoutTitle = (FrameLayout) findViewById(R.id.titleLayout);
ivPhoto = (GestureImageView) findViewById(R.id.imagePhoto);
gifPhoto = (GifImageView) findViewById(R.id.gifPhoto);
final ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressPhoto);
final ParseFile imageFile = (ParseFile)feed.get("picture");
String imgUrl = imageFile.getUrl();
if (imgUrl.contains(".gif")) {
isGifImg = true;
ivPhoto.setVisibility(View.GONE);
gifPhoto.setVisibility(View.VISIBLE);
}
else {
isGifImg = false;
ivPhoto.setVisibility(View.VISIBLE);
gifPhoto.setVisibility(View.GONE);
}
imageFile.getDataInBackground(new GetDataCallback() {
@Override
public void done(byte[] data, ParseException e) {
// TODO Auto-generated method stub
if (e == null) {
// data has the bytes for the image
// Decode the Byte[] into
// Bitmap
Bitmap bmp = BitmapFactory
.decodeByteArray(
data, 0,
data.length);
progressBar.setVisibility(View.GONE);
if (isGifImg) {
gifPhoto.setBytes(data);
gifPhoto.startAnimation();
} else {
ivPhoto.setImageBitmap(bmp);
}
} else {
// something went wrong
}
}
}, new ProgressCallback() {
@Override
public void done(Integer arg0) {
// TODO Auto-generated method stub
progressBar.setProgress(arg0);
}
});
/*
String imgUrl = imageFile.getUrl();
m_context.imageLoader.displayImage(imgUrl, ivPhoto, m_context.optFull, new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
progressBar.setProgress(0);
progressBar.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
progressBar.setVisibility(View.GONE);
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
progressBar.setVisibility(View.GONE);
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current,
int total) {
progressBar.setProgress(Math.round(100.0f * current / total));
}
}
);
*/
ivPhoto.setClickable(true);
ivPhoto.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (m_isFullMode) {
layoutTitle.setVisibility(View.VISIBLE);
m_isFullMode = false;
}
else {
layoutTitle.setVisibility(View.GONE);
m_isFullMode = true;
}
}
});
}
public void getExtraInfo () {
progress = new ProgressDialog(m_context);
progress.setCancelable(false);
progress.setMessage("Loading....");
progress.show();
new Thread(new Runnable() {
public void run() {
}
}).start();
}
public void onBack() {
m_context.removeHistory(getClass().getSimpleName());
Animation in = AnimationUtils.loadAnimation(m_context, R.anim.slide_right);
g_PhotoDetailView.startAnimation(in);
in.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
// m_context.boardLayout.removeView(g_PhotoDetailView);
ViewGroup vg = (ViewGroup)(g_PhotoDetailView.getParent());
vg.removeView(g_PhotoDetailView);
}
});
}
}