private void shareAction() throws Exception { String form = sectionObject.toString(); float lat = (float) latitude; float lon = (float) longitude; String osmUrl = Utilities.osmUrlFromLatLong(lat, lon, true, false); // double altim = note.getAltim(); List<String> imagePaths = FormUtilities.getImages(form); File imageFile = null; if (imagePaths.size() > 0) { String imagePath = imagePaths.get(0); imageFile = new File(imagePath); if (!imageFile.exists()) { imageFile = null; } } String formText = FormUtilities.formToPlainText(form, false); formText = formText + "\n" + osmUrl; String shareNoteMsg = getResources().getString(R.string.share_note_with); if (imageFile != null) { ShareUtilities.shareTextAndImage(this, shareNoteMsg, formText, imageFile); } else { ShareUtilities.shareText(this, shareNoteMsg, formText); } }
private void saveAction() throws Exception { // if in landscape mode store last inserted info, since that fragment has not been stored if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { FragmentDetail detailFragment = (FragmentDetail) getSupportFragmentManager().findFragmentById(R.id.detailFragment); if (detailFragment != null) { detailFragment.storeFormItems(false); } } // extract and check constraints List<String> availableFormNames = TagsManager.getFormNames4Section(sectionObject); String label = null; for (String formName : availableFormNames) { JSONObject formObject = TagsManager.getForm4Name(formName, sectionObject); JSONArray formItemsArray = TagsManager.getFormItems(formObject); int length = formItemsArray.length(); String value = null; for (int i = 0; i < length; i++) { JSONObject jsonObject = formItemsArray.getJSONObject(i); String key = "-"; if (jsonObject.has(TAG_KEY)) key = jsonObject.getString(TAG_KEY).trim(); if (jsonObject.has(TAG_VALUE)) { value = jsonObject.getString(TAG_VALUE).trim(); } if (jsonObject.has(TAG_ISLABEL)) { String isLabelStr = jsonObject.getString(TAG_ISLABEL).trim(); boolean isLabel = Boolean.parseBoolean(isLabelStr); if (isLabel) label = value; } // inject latitude if (key.equals(LibraryConstants.LATITUDE)) { String latitudeString = String.valueOf(latitude); value = latitudeString; jsonObject.put(TAG_VALUE, latitudeString); } // inject longitude if (key.equals(LibraryConstants.LONGITUDE)) { String longitudeString = String.valueOf(longitude); value = longitudeString; jsonObject.put(TAG_VALUE, longitudeString); } Constraints constraints = FormUtilities.handleConstraints(jsonObject, null); if (value == null || !constraints.isValid(value)) { String constraintDescription = constraints.getDescription(); String validfieldMsg = getString(R.string.form_field_check); String msg = Utilities.format(validfieldMsg, key, formName, constraintDescription); Utilities.messageDialog(this, msg, null); return; } } } // finally store data String sectionObjectString = sectionObject.toString(); Date sqlDate = new Date(System.currentTimeMillis()); String timestamp = LibraryConstants.TIME_FORMATTER_SQLITE.format(sqlDate); if (label == null) { label = sectionName; } String[] formDataArray = { // String.valueOf(longitude), // String.valueOf(latitude), // String.valueOf(elevation), // timestamp, // label, // "POI", // sectionObjectString }; Intent intent = getIntent(); intent.putExtra(LibraryConstants.PREFS_KEY_FORM, formDataArray); setResult(Activity.RESULT_OK, intent); finish(); }