package uni.projecte.ui.multiphoto;
import java.io.File;
import java.util.Date;
import uni.projecte.dataTypes.ProjectField;
import uni.projecte.dataTypes.Utilities;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.inputmethod.EditorInfo;
import android.widget.ImageButton;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ImageView.ScaleType;
public class SimplePhotoFieldForm extends PhotoFieldForm {
/* View elements */
private ImageButton rmPhotoButton;
private EditText etPhotoPath;
private ImageView photoView;
/* Main container */
private LinearLayout lPhoto;
private LinearLayout lButtons;
private static int PHOTO_SAMPLE_SIZE=5;
public SimplePhotoFieldForm(Context baseContext, long projId, ProjectField field, LinearLayout llField){
super(baseContext,projId,field,llField);
photoView=(ImageView) new ImageView(baseContext);
etPhotoPath= (EditText) new EditText(baseContext);
createLayoutButtons();
setPhotoPathAttributes();
addViewsToLayout();
llField.addView(lButtons);
//Show photo Event
photoView.setOnClickListener(viewPhoto);
}
private void addViewsToLayout() {
lPhoto=new LinearLayout(baseContext);
lPhoto.setOrientation(LinearLayout.VERTICAL);
lPhoto.setGravity(Gravity.CENTER);
lPhoto.addView(etPhotoPath);
lPhoto.addView(photoView);
}
private void createLayoutButtons() {
//buttons
photoButton=(ImageButton) new ImageButton(baseContext);
photoButton.setBackgroundResource(android.R.drawable.ic_menu_camera);
rmPhotoButton=(ImageButton) new ImageButton(baseContext);
rmPhotoButton.setBackgroundResource(android.R.drawable.ic_input_delete);
//by default rmButton is gone
rmPhotoButton.setVisibility(View.GONE);
rmPhotoButton.setTag(field.getName());
photoButton.setTag(field.getName());
lButtons=new LinearLayout(baseContext);
lButtons.setGravity(Gravity.RIGHT);
LayoutParams param = new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT, 0.0f);
lButtons.setLayoutParams(param);
lButtons.addView(photoButton);
lButtons.addView(rmPhotoButton);
}
public void removePhoto(){
etPhotoPath.setText("");
photoView.setVisibility(View.GONE);
etPhotoPath.setVisibility(View.GONE);
rmPhotoButton.setVisibility(View.GONE);
photoButton.setVisibility(View.VISIBLE);
}
private void setPhotoPathAttributes() {
/* etPhotoPath.setLayoutParams(new LayoutParams
(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.
WRAP_CONTENT));*/
etPhotoPath.setId((int)field.getId());
etPhotoPath.setTag(field.getName());
etPhotoPath.setImeOptions(EditorInfo.IME_ACTION_NEXT);
etPhotoPath.setEnabled(false);
etPhotoPath.setVisibility(View.GONE);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, 1.0f);
etPhotoPath.setLayoutParams(param);
}
public void clearForm() {
photoView.setVisibility(View.GONE);
etPhotoPath.setVisibility(View.GONE);
photoButton.setVisibility(View.VISIBLE);
rmPhotoButton.setVisibility(View.GONE);
}
public void addPhoto(String photoPath) {
etPhotoPath.setText(photoPath);
photoView.setTag(photoPath);
LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
llp.setMargins(5, 5, 5, 5);
photoView.setLayoutParams(llp);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = PHOTO_SAMPLE_SIZE;
Bitmap PhotoFromCamera = BitmapFactory.decodeFile(photoPath, options );
MediaStore.Images.Media.insertImage(baseContext.getContentResolver(), PhotoFromCamera, photoPath, "");
photoView.setImageBitmap(PhotoFromCamera);
photoView.setScaleType(ScaleType.CENTER_CROP);
photoButton.setVisibility(View.GONE);
rmPhotoButton.setVisibility(View.VISIBLE);
photoView.setVisibility(View.VISIBLE);
etPhotoPath.setVisibility(View.VISIBLE);
photoView.invalidate();
}
public EditText getEtPhotoPath() {
return etPhotoPath;
}
public ImageView getPhotoView() {
return photoView;
}
public void setRemoveEvent(OnClickListener onClick){
rmPhotoButton.setOnClickListener(onClick);
}
public LinearLayout getlPhoto() {
return lPhoto;
}
}