Commit d7dfd909 by German Callejas

Nueva forma para añadir pictos nuevos hecha (Arreglar tema del path, no lo crea el picto)

parent 3120a70c
...@@ -2,6 +2,8 @@ package com.yottacode.pictogram.dao; ...@@ -2,6 +2,8 @@ package com.yottacode.pictogram.dao;
import android.graphics.Color; import android.graphics.Color;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.Log; import android.util.Log;
import com.yottacode.pictogram.action.VocabularyAction; import com.yottacode.pictogram.action.VocabularyAction;
...@@ -12,6 +14,8 @@ import com.yottacode.pictogram.tools.PCBcontext; ...@@ -12,6 +14,8 @@ import com.yottacode.pictogram.tools.PCBcontext;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.io.Serializable;
/** /**
* A object which represents a pictogram * A object which represents a pictogram
...@@ -19,9 +23,7 @@ import org.json.JSONObject; ...@@ -19,9 +23,7 @@ import org.json.JSONObject;
* @author Fernando Martinez Santiago * @author Fernando Martinez Santiago
* @version 1.0 * @version 1.0
*/ */
public class public class Picto extends Img {
Picto extends Img {
public final static class JSON_ATTTRS { public final static class JSON_ATTTRS {
public static String CATEGORY = "id_cat"; public static String CATEGORY = "id_cat";
......
...@@ -253,10 +253,8 @@ public class CropImageView extends ImageView { ...@@ -253,10 +253,8 @@ public class CropImageView extends ImageView {
* Gets the cropped image based on the current crop window. * Gets the cropped image based on the current crop window.
* *
* @return a new Bitmap representing the cropped image * @return a new Bitmap representing the cropped image
* @param origin
* @param orientation
*/ */
public Bitmap getCroppedImage(int origin, int orientation) { public Bitmap getCroppedImage() {
final Drawable drawable = this.getDrawable(); final Drawable drawable = this.getDrawable();
if (drawable == null || !(drawable instanceof BitmapDrawable)) { if (drawable == null || !(drawable instanceof BitmapDrawable)) {
return null; return null;
...@@ -271,8 +269,8 @@ public class CropImageView extends ImageView { ...@@ -271,8 +269,8 @@ public class CropImageView extends ImageView {
final float scaleY = matrixValues[Matrix.MSCALE_Y]; //==1 final float scaleY = matrixValues[Matrix.MSCALE_Y]; //==1
// Extract the translation values. // Extract the translation values.
final float transX = (origin == CAMERA_PIC_REQUEST && orientation== HORIZONTAL_ORIENTATION ) ? matrixValues[Matrix.MTRANS_Y] : matrixValues[Matrix.MTRANS_X]; final float transX = matrixValues[Matrix.MTRANS_X];
final float transY = (origin == CAMERA_PIC_REQUEST && orientation== HORIZONTAL_ORIENTATION ) ? matrixValues[Matrix.MTRANS_X] : matrixValues[Matrix.MTRANS_Y]; final float transY = matrixValues[Matrix.MTRANS_Y];
final Bitmap originalBitmap = ((BitmapDrawable) drawable).getBitmap(); final Bitmap originalBitmap = ((BitmapDrawable) drawable).getBitmap();
/*Log.i("DETALLES","ScaleX: "+scaleX + "- ScaleY: "+scaleY); /*Log.i("DETALLES","ScaleX: "+scaleX + "- ScaleY: "+scaleY);
......
package com.yottacode.pictogram.tabletlibrary.cropper; package com.yottacode.pictogram.tabletlibrary.cropper;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
import android.graphics.Color; import android.graphics.Color;
import android.media.effect.Effect;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.provider.MediaStore;
import android.text.InputType;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
...@@ -13,7 +19,16 @@ import android.widget.Button; ...@@ -13,7 +19,16 @@ import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import com.yottacode.pictogram.dao.Picto;
import com.yottacode.pictogram.grammar.Vocabulary;
import com.yottacode.pictogram.grammar.iLocalPicto;
import com.yottacode.pictogram.net.PictoUploader;
import com.yottacode.pictogram.tabletlibrary.R; import com.yottacode.pictogram.tabletlibrary.R;
import com.yottacode.pictogram.tabletlibrary.gui.communicator.PictogramActivity;
import com.yottacode.pictogram.tools.PCBcontext;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
/** /**
* Created by German on 06/02/2017. * Created by German on 06/02/2017.
...@@ -23,13 +38,14 @@ public class EditPictoActivity extends Activity { ...@@ -23,13 +38,14 @@ public class EditPictoActivity extends Activity {
// Private Constants /////////////////////////////////////////////////////////////////////////// // Private Constants ///////////////////////////////////////////////////////////////////////////
public static final int EDIT_PICTO_REQUEST = 2288; public static final int EDIT_PICTO_REQUEST = 2288;
public static final int UPLOAD_NEW_PICTO = 200;
public static final String TRANSCRIPTION = "textPicto"; public static final String TRANSCRIPTION = "textPicto";
public static final String PATH = "pathImage";
public static final String IMAGE_PICTO = "imagePicto"; public static final String IMAGE_PICTO = "imagePicto";
public static final String IMAGE_ORIGIN = "imageOrigin";
public static final String IMAGE_ORIENTATION = "imageOrientation";
// Activity Methods //////////////////////////////////////////////////////////////////////////// // Activity Methods ////////////////////////////////////////////////////////////////////////////
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
...@@ -38,25 +54,20 @@ public class EditPictoActivity extends Activity { ...@@ -38,25 +54,20 @@ public class EditPictoActivity extends Activity {
setContentView(R.layout.edit_picto_layout); setContentView(R.layout.edit_picto_layout);
// Initialize Views. // Initialize Views.
final CropImageView cropImageView = (CropImageView) findViewById(R.id.CropImageView); final CropImageView cropImageView = (CropImageView) findViewById(R.id.CropImageView);
final EditText legend = (EditText) findViewById(R.id.legend); final EditText legend = (EditText) findViewById(R.id.legend);
final Button okButton = (Button) findViewById(R.id.okButton); final Button okButton = (Button) findViewById(R.id.okButton);
final Button cancelButton = (Button) findViewById(R.id.cancelButton); final Button cancelButton = (Button) findViewById(R.id.cancelButton);
//final ImageView backgroundImage = (ImageView) findViewById(R.id.backgroundImage);
cropImageView.setFixedAspectRatio(true); cropImageView.setFixedAspectRatio(true);
cropImageView.setGuidelines(2); cropImageView.setGuidelines(2);
cropImageView.setAspectRatio(1,1); cropImageView.setAspectRatio(1,1);
final int orientation = getIntent().getExtras().getInt(EditPictoActivity.IMAGE_ORIENTATION); //Obtener leyenda
final int origin = getIntent().getExtras().getInt(EditPictoActivity.IMAGE_ORIGIN);
String legendText = getIntent().getExtras().getString(EditPictoActivity.TRANSCRIPTION); String legendText = getIntent().getExtras().getString(EditPictoActivity.TRANSCRIPTION);
if(legendText != null) { if(legendText != null) { //Si tenia leyenda(editarlo)
Log.i("DETALLES","Llega el intent al layout recortar, con texto: " + legendText);
legend.setText(legendText); legend.setText(legendText);
}else{ }else{ //Si no tenia el picto leyenda
legend.setTextColor(Color.GRAY); legend.setTextColor(Color.GRAY);
legend.setOnClickListener(new View.OnClickListener() { legend.setOnClickListener(new View.OnClickListener() {
@Override @Override
...@@ -65,27 +76,39 @@ public class EditPictoActivity extends Activity { ...@@ -65,27 +76,39 @@ public class EditPictoActivity extends Activity {
} }
}); });
} }
//Obtener imagen del intent
byte[] byteArray = getIntent().getByteArrayExtra(EditPictoActivity.IMAGE_PICTO); byte[] byteArray = getIntent().getByteArrayExtra(EditPictoActivity.IMAGE_PICTO);
Bitmap imagePicto = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); Bitmap imagePicto = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
cropImageView.setImageBitmap(imagePicto); cropImageView.setImageBitmap(imagePicto);
/*byteArray = getIntent().getByteArrayExtra("imageBackground");
Bitmap imageBackground = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
backgroundImage.setImageBitmap(imageBackground);*/
//Gestion de botones
okButton.setOnClickListener(new View.OnClickListener() { okButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
final Bitmap croppedImage = cropImageView.getCroppedImage(origin,orientation); final Bitmap croppedImage = cropImageView.getCroppedImage();
//Escalar y guardarla al server //Escalar imagen
Bitmap finalImage = null; Bitmap finalImage = croppedImage.createScaledBitmap(croppedImage,96,96,true);
finalImage.createScaledBitmap(croppedImage,96,96,true);
Intent intent = getIntent(); //Guardar imagen en galeria y obtener la ruta
intent.putExtra(EditPictoActivity.TRANSCRIPTION,legend.getText().toString()); ByteArrayOutputStream bytes = new ByteArrayOutputStream();
Log.i("DETALLES","sale el intent al layout recortar, con texto: " + legend.getText().toString()); finalImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(PCBcontext.getContext().getContentResolver(), finalImage, legend.getText()+"-recorte", null);
Uri pathImage = Uri.parse(path);
Intent intent = new Intent(EditPictoActivity.this,PictogramActivity.class); //Mandar a pictogram activity el path y el texto de la imagen
intent.putExtra(PATH,pathImage.toString());
intent.putExtra(TRANSCRIPTION,legend.getText().toString());
cropImageView.setImageBitmap(finalImage); cropImageView.setImageBitmap(finalImage);
setResult(RESULT_OK,intent);
finish(); finish(); //Termina la actividad de editar
startActivityForResult(intent,UPLOAD_NEW_PICTO); //Llama a pictogramActivity de nuevo
//setResult(RESULT_OK,intent);
} }
}); });
...@@ -93,7 +116,9 @@ public class EditPictoActivity extends Activity { ...@@ -93,7 +116,9 @@ public class EditPictoActivity extends Activity {
cancelButton.setOnClickListener(new View.OnClickListener() { cancelButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
Intent intent = new Intent(EditPictoActivity.this,PictogramActivity.class);
finish(); finish();
startActivity(intent);
} }
}); });
} }
...@@ -125,6 +150,4 @@ public class EditPictoActivity extends Activity { ...@@ -125,6 +150,4 @@ public class EditPictoActivity extends Activity {
legend.setText(text.toString()); legend.setText(text.toString());
} }
} }
...@@ -14,7 +14,6 @@ import android.widget.ArrayAdapter; ...@@ -14,7 +14,6 @@ import android.widget.ArrayAdapter;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.Toast;
import com.yottacode.pictogram.dao.Picto; import com.yottacode.pictogram.dao.Picto;
import com.yottacode.pictogram.grammar.Vocabulary; import com.yottacode.pictogram.grammar.Vocabulary;
...@@ -23,7 +22,6 @@ import com.yottacode.pictogram.net.PictoUploader; ...@@ -23,7 +22,6 @@ import com.yottacode.pictogram.net.PictoUploader;
import com.yottacode.pictogram.tabletlibrary.R; import com.yottacode.pictogram.tabletlibrary.R;
import com.yottacode.pictogram.tools.PCBcontext; import com.yottacode.pictogram.tools.PCBcontext;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
...@@ -58,7 +56,7 @@ public class PictoMenu { ...@@ -58,7 +56,7 @@ public class PictoMenu {
* @param row * @param row
* @param col * @param col
*/ */
public void addPicto(int row, int col) { public void addPicto(final int row,final int col, final int cat) {
final String [] items = new String [] {activity.getString(R.string.dialogCamera), activity.getString(R.string.dialogGallery)}; final String [] items = new String [] {activity.getString(R.string.dialogCamera), activity.getString(R.string.dialogGallery)};
ArrayAdapter<String> adapter = new ArrayAdapter<>(activity, android.R.layout.select_dialog_item, items); ArrayAdapter<String> adapter = new ArrayAdapter<>(activity, android.R.layout.select_dialog_item, items);
...@@ -76,6 +74,17 @@ public class PictoMenu { ...@@ -76,6 +74,17 @@ public class PictoMenu {
intent.setAction(Intent.ACTION_GET_CONTENT); intent.setAction(Intent.ACTION_GET_CONTENT);
activity.startActivityForResult(intent,GALLERY_PIC_REQUEST); activity.startActivityForResult(intent,GALLERY_PIC_REQUEST);
} }
//Enviar al PictogramActivity los datos necesarios para crear el picto despues
if (PCBcontext.getPcbdb().getCurrentUser().has_categories()) {
activity.getIntent().putExtra("cat", cat);
activity.getIntent().putExtra(Picto.JSON_ATTTRS.ROW, row);
activity.getIntent().putExtra(Picto.JSON_ATTTRS.COLUMN, col);
} else {
activity.getIntent().putExtra(Picto.JSON_ATTTRS.FREE_ROW, row);
activity.getIntent().putExtra(Picto.JSON_ATTTRS.FREE_COLUMN, col);
}
} }
} ); } );
builder.setNegativeButton(activity.getString(R.string.dialogCancel),new DialogInterface.OnClickListener() { builder.setNegativeButton(activity.getString(R.string.dialogCancel),new DialogInterface.OnClickListener() {
...@@ -86,10 +95,11 @@ public class PictoMenu { ...@@ -86,10 +95,11 @@ public class PictoMenu {
} }
}); });
final AlertDialog dialog = builder.create(); final AlertDialog dialog = builder.create();
dialog.show(); dialog.show();
/*Intent intent = new Intent(Intent.ACTION_PICK); /*Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image*//*"); intent.setType("image*//*");
if (PCBcontext.getPcbdb().getCurrentUser().has_categories()) { if (PCBcontext.getPcbdb().getCurrentUser().has_categories()) {
...@@ -103,10 +113,11 @@ public class PictoMenu { ...@@ -103,10 +113,11 @@ public class PictoMenu {
} }
/** /**
* función para la edición de un texto asociado a una nueva imagen y guardar el nuevo picto * función para la edición de un texto asociado a una nueva imagen y guardar el nuevo picto
*/ */
public void chooseTextAndSavePicto(final String selectedImagePath, final int row, final int col, final int freeRow, final int freeColumn) { /*public void chooseTextAndSavePicto(final String selectedImagePath, final int row, final int col, final int freeRow, final int freeColumn) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity); AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle(activity.getResources().getString(R.string.enterImgLabel)); builder.setTitle(activity.getResources().getString(R.string.enterImgLabel));
...@@ -121,8 +132,8 @@ public class PictoMenu { ...@@ -121,8 +132,8 @@ public class PictoMenu {
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
int cat = activity.currentCategory != null int cat = activity.getCurrentCategory() != null
? activity.currentCategory.get_id() ? activity.getCurrentCategory().get_id()
: Picto.NO_CATEGORY; : Picto.NO_CATEGORY;
PCBcontext.getVocabulary().saveLocalPicto( PCBcontext.getVocabulary().saveLocalPicto(
selectedImagePath, selectedImagePath,
...@@ -149,7 +160,7 @@ public class PictoMenu { ...@@ -149,7 +160,7 @@ public class PictoMenu {
builder.show(); builder.show();
} }*/
/** /**
* Función para la selección de una foto del carrete * Función para la selección de una foto del carrete
...@@ -174,7 +185,7 @@ public class PictoMenu { ...@@ -174,7 +185,7 @@ public class PictoMenu {
activity.getIntent().removeExtra(Picto.JSON_ATTTRS.COLUMN); activity.getIntent().removeExtra(Picto.JSON_ATTTRS.COLUMN);
activity.getIntent().removeExtra(Picto.JSON_ATTTRS.FREE_ROW); activity.getIntent().removeExtra(Picto.JSON_ATTTRS.FREE_ROW);
activity.getIntent().removeExtra(Picto.JSON_ATTTRS.FREE_COLUMN); activity.getIntent().removeExtra(Picto.JSON_ATTTRS.FREE_COLUMN);
chooseTextAndSavePicto(selectedImagePath, row, col, freeRow, freeColumn); //chooseTextAndSavePicto(selectedImagePath, row, col, freeRow, freeColumn);
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment