package com.jwzhangjie.andbase.popup;

import java.io.File;

import com.jwzhangjie.andbase.JieApp;
import com.jwzhangjie.andbase.R;
import com.jwzhangjie.andbase.ui.base.JieBasePopup;
import com.jwzhangjie.andbase.util.JieContant;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.v4.app.Fragment;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.TextView;

/**
 * title: AddPicturePopup.java
 * @author jwzhangjie
 * Date: 2014-12-7 下午9:45:15
 * version 1.0
 * {@link http://blog.csdn.net/jwzhangjie}
 * Description:作为添加图片弹出框
 */
public class AddPicturePopup extends JieBasePopup implements OnClickListener {

	@ViewInject(R.id.pop_add_pic_from_camera)
	private TextView addCamera;
	@ViewInject(R.id.pop_add_pic_from_photo)
	private TextView addPhoto;
	@ViewInject(R.id.pop_add_pic_cancel)
	private TextView addCancel;
	private Fragment fragment;
	private Activity activity;

	public AddPicturePopup(Fragment fragment) {
		super();
		this.fragment = fragment;
	}

	public AddPicturePopup(Activity activity) {
		super();
		this.activity = activity;
	}

	@Override
	public void initPopView(View parent) {
		super.initPopView(parent);
		view = (View) JieApp.instance.getInflater().inflate(
				R.layout.item_pop_add_picture, null);
		ViewUtils.inject(this, view);
		initPopWindow(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
		startPop(Gravity.BOTTOM, 0, 0);
	}

	@OnClick({ R.id.pop_add_pic_from_camera, R.id.pop_add_pic_from_photo,
			R.id.pop_add_pic_cancel })
	@Override
	public void onClick(View v) {
		int id = v.getId();
		switch (id) {
		case R.id.pop_add_pic_from_camera:
			String status = Environment.getExternalStorageState();
			if (status.equals(Environment.MEDIA_MOUNTED)) {
				try {
					File dir = new File(
							Environment.getExternalStorageDirectory()
									+ "/localTempImgDir");
					if (!dir.exists())
						dir.mkdirs();
					File f = new File(dir, "pickImg.jpg");
					Uri u = Uri.fromFile(f);
					Intent intent1 = new Intent();
					intent1 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
					intent1.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
					intent1.putExtra(MediaStore.Images.Media.ORIENTATION, 0);
					intent1.putExtra(MediaStore.EXTRA_OUTPUT, u);
					if (fragment != null) {
						fragment.startActivityForResult(intent1,
								JieContant.POP_ADD_PICTURE_FROM_CAMERA);
					} else if (activity != null) {
						activity.startActivityForResult(intent1,
								JieContant.POP_ADD_PICTURE_FROM_CAMERA);
					}
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			mPopupWindow.dismiss();
			break;
		case R.id.pop_add_pic_from_photo:
			Intent intent = new Intent(
					Intent.ACTION_PICK,
					android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
			if (fragment != null) {
				fragment.startActivityForResult(intent,
						JieContant.POP_ADD_PICTURE_FROM_PHOTO);
			} else if (activity != null) {
				activity.startActivityForResult(intent,
						JieContant.POP_ADD_PICTURE_FROM_PHOTO);
			}
			mPopupWindow.dismiss();
			break;
		case R.id.pop_add_pic_cancel:
			mPopupWindow.dismiss();
			break;
		default:
			break;
		}
	}

}