/* * Geopaparazzi - Digital field mapping on Android based devices * Copyright (C) 2016 HydroloGIS (www.hydrologis.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package eu.geopaparazzi.library.sketch;//package eu.geopaparazzi.library.sketch; // //import java.io.BufferedWriter; //import java.io.File; //import java.io.FileWriter; //import java.util.Date; // //import android.app.Activity; //import android.content.Intent; //import android.graphics.Paint; //import android.graphics.Path; //import android.os.Bundle; //import android.view.KeyEvent; //import android.view.Menu; //import android.view.MenuItem; //import android.view.MotionEvent; //import android.view.View; //import android.widget.AdapterView; //import android.widget.AdapterView.OnItemSelectedListener; //import android.widget.ArrayAdapter; //import android.widget.ImageButton; //import android.widget.Spinner; //import eu.geopaparazzi.library.R; //import eu.geopaparazzi.library.sketch.brush.Brush; //import eu.geopaparazzi.library.sketch.brush.PenBrush; //import eu.geopaparazzi.library.sketch.commands.DrawingPath; //import eu.geopaparazzi.library.color.ColorUtilities; //import eu.geopaparazzi.library.util.FileUtilities; //import eu.geopaparazzi.library.util.LibraryConstants; //import eu.geopaparazzi.library.core.ResourcesManager; //import eu.geopaparazzi.library.util.TimeUtilities; //import eu.geopaparazzi.library.util.Utilities; // ///** // * Main drawing activity. // * // * <p>Adapted for geopaparazzi.</p> // * // * @author almondmendoza (http://www.tutorialforandroid.com/) // * @author Andrea Antonello (www.hydrologis.com) // */ //public class DrawingActivity extends Activity implements View.OnTouchListener { // private static final int MENU_SAVE = Menu.FIRST; // private static final int MENU_CANCEL = 2; // // private DrawingSurface drawingSurface; // private DrawingPath currentDrawingPath; // private Paint currentPaint; // private Paint previewPaint; // // private ImageButton redoBtn; // private ImageButton undoBtn; // // private Brush currentBrush; // private int currentColor; // private float currentWidth; // // private Spinner colorSpinner; // private Spinner widthSpinner; // private String imageSavePath; // private double lon = -9999.0; // private double lat = -9999.0; // private double elevation = -9999.0; // private File imageFile; // // public void onCreate( Bundle savedInstanceState ) { // super.onCreate(savedInstanceState); // setContentView(R.layout.drawing_activity); // // Bundle extras = getIntent().getExtras(); // if (extras != null) { // imageSavePath = extras.getString(LibraryConstants.PREFS_KEY_PATH); // lon = extras.getDouble(LibraryConstants.LONGITUDE); // lat = extras.getDouble(LibraryConstants.LATITUDE); // elevation = extras.getDouble(LibraryConstants.ELEVATION); // } else { // throw new RuntimeException("Not implemented yet..."); // } // // currentBrush = new PenBrush(); // currentWidth = 3f; // // drawingSurface = (DrawingSurface) findViewById(R.id.drawingSurface); // drawingSurface.setOnTouchListener(this); // drawingSurface.previewPath = new DrawingPath(); // drawingSurface.previewPath.path = new Path(); // // redoBtn = (ImageButton) findViewById(R.id.redoButton); // undoBtn = (ImageButton) findViewById(R.id.undoButton); // // colorSpinner = (Spinner) findViewById(R.id.colorspinner); // ArrayAdapter< ? > colorSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.array_colornames, // android.R.layout.simple_spinner_item); // colorSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // colorSpinner.setAdapter(colorSpinnerAdapter); // colorSpinner.setSelection(0); // colorSpinner.setOnItemSelectedListener(new OnItemSelectedListener(){ // public void onItemSelected( AdapterView< ? > arg0, View arg1, int arg2, long arg3 ) { // onClick(colorSpinner); // } // public void onNothingSelected( AdapterView< ? > arg0 ) { // // ignore // } // }); // // widthSpinner = (Spinner) findViewById(R.id.widthspinner); // ArrayAdapter< ? > widthSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.array_widths, // android.R.layout.simple_spinner_item); // widthSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // widthSpinner.setAdapter(widthSpinnerAdapter); // widthSpinner.setSelection(2); // widthSpinner.setOnItemSelectedListener(new OnItemSelectedListener(){ // public void onItemSelected( AdapterView< ? > arg0, View arg1, int arg2, long arg3 ) { // onClick(widthSpinner); // } // public void onNothingSelected( AdapterView< ? > arg0 ) { // // ignore // } // }); // // setCurrentPaint(); // drawingSurface.previewPath.paint = previewPaint; // // redoBtn.setEnabled(false); // undoBtn.setEnabled(false); // } // // public boolean onCreateOptionsMenu( Menu menu ) { // super.onCreateOptionsMenu(menu); // menu.add(Menu.NONE, MENU_SAVE, 1, R.string.save).setIcon(android.R.drawable.ic_menu_save); // menu.add(Menu.NONE, MENU_CANCEL, 2, R.string.cancel).setIcon(android.R.drawable.ic_menu_close_clear_cancel); // return true; // } // // public boolean onMenuItemSelected( int featureId, MenuItem item ) { // switch( item.getItemId() ) { // case MENU_SAVE: // try { // saveImage(); // } catch (Exception e) { // e.printStackTrace(); // } // return true; // case MENU_CANCEL: // doFinish(); // return true; // } // return super.onMenuItemSelected(featureId, item); // } // // private void doFinish() { // if (drawingSurface != null) // drawingSurface.dispose(); // finish(); // } // // private void saveImage() throws Exception { // Date currentDate = new Date(); // String currentDatestring = TimeUtilities.INSTANCE.TIMESTAMPFORMATTER_UTC.format(currentDate); // String imageName = "SKETCH_" + currentDatestring + ".png"; // String imagePropertiesName = "SKETCH_" + currentDatestring + ".properties"; // // FIXME // File imageSaveFolder = ResourcesManager.getInstance(this).getApplicationSupporterDir(); // // if (imageSavePath == null || imageSavePath.length() == 0) { // imageFile = new File(imageSaveFolder, imageName); // } else { // imageFile = new File(imageSavePath); // imageSaveFolder = imageFile.getParentFile(); // } // // if (!imageSaveFolder.exists()) { // if (!imageSaveFolder.mkdirs()) { // Runnable runnable = new Runnable(){ // public void run() { // finish(); // } // }; // Utilities.messageDialog(this, getString(R.string.cantcreate_img_folder), runnable); // return; // } // } // // drawingSurface.dumpImage(imageFile); // int count = 0; // while( !imageFile.exists() ) { // Thread.sleep(300); // if (count++ > 50) { // throw new RuntimeException("An error occurred during the saving of the image."); // } // } // // Intent intent = getIntent(); // intent.putExtra(LibraryConstants.PREFS_KEY_PATH, imageFile.getAbsolutePath()); // intent.putExtra(LibraryConstants.LATITUDE, lat); // intent.putExtra(LibraryConstants.LONGITUDE, lon); // intent.putExtra(LibraryConstants.ELEVATION, elevation); // setResult(Activity.RESULT_OK, intent); // // doFinish(); // } // // private void setCurrentPaint() { // checkColor(); // checkWidth(); // // currentPaint = new Paint(); // currentPaint.setDither(true); // currentPaint.setColor(currentColor); // currentPaint.setAlpha(255); // currentPaint.setStyle(Paint.Style.STROKE); // currentPaint.setStrokeJoin(Paint.Join.ROUND); // currentPaint.setStrokeCap(Paint.Cap.ROUND); // currentPaint.setStrokeWidth(currentWidth); // // previewPaint = new Paint(); // previewPaint.setDither(true); // previewPaint.setColor(currentColor); // previewPaint.setAlpha(255); // previewPaint.setStyle(Paint.Style.STROKE); // previewPaint.setStrokeJoin(Paint.Join.ROUND); // previewPaint.setStrokeCap(Paint.Cap.ROUND); // previewPaint.setStrokeWidth(currentWidth); // // } // // public boolean onTouch( View view, MotionEvent motionEvent ) { // float x = motionEvent.getX(); // float y = motionEvent.getY(); // if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { // DrawingSurface.isDrawing = true; // // currentDrawingPath = new DrawingPath(); // currentDrawingPath.paint = currentPaint; // currentDrawingPath.path = new Path(); // currentBrush.mouseDown(currentDrawingPath.path, x, y); // currentBrush.mouseDown(drawingSurface.previewPath.path, x, y); // // } else if (motionEvent.getAction() == MotionEvent.ACTION_MOVE) { // DrawingSurface.isDrawing = true; // currentBrush.mouseMove(currentDrawingPath.path, x, y); // currentBrush.mouseMove(drawingSurface.previewPath.path, x, y); // // } else if (motionEvent.getAction() == MotionEvent.ACTION_UP) { // // currentBrush.mouseUp(drawingSurface.previewPath.path, x, y); // drawingSurface.previewPath.path = new Path(); // drawingSurface.addDrawingPath(currentDrawingPath); // // currentBrush.mouseUp(currentDrawingPath.path, x, y); // // undoBtn.setEnabled(true); // redoBtn.setEnabled(false); // // } // // return true; // } // // /** // * Click action. // * // * @param view parent. // */ // public void onClick( View view ) { // int id = view.getId(); // if (id == R.id.colorspinner || id == R.id.widthspinner) { // setCurrentPaint(); // drawingSurface.previewPath.paint = previewPaint; // } else if (id == R.id.undoButton) { // drawingSurface.undo(); // if (drawingSurface.hasMoreUndo() == false) { // undoBtn.setEnabled(false); // } // redoBtn.setEnabled(true); // } else if (id == R.id.redoButton) { // drawingSurface.redo(); // if (drawingSurface.hasMoreRedo() == false) { // redoBtn.setEnabled(false); // } // // undoBtn.setEnabled(true); // } // } // // public boolean onKeyDown( int keyCode, KeyEvent event ) { // // force to exit through the exit button // switch( keyCode ) { // case KeyEvent.KEYCODE_BACK: // return true; // } // return super.onKeyDown(keyCode, event); // } // // private void checkWidth() { // Object selectedItem = widthSpinner.getSelectedItem(); // float newWidth = Float.parseFloat(selectedItem.toString()); // currentWidth = newWidth; // } // // private void checkColor() { // Object selectedItem = colorSpinner.getSelectedItem(); // String newColorStr = selectedItem.toString(); // currentColor = ColorUtilities.toColor(newColorStr.trim()); // } // //}