/** * Edit existing report * * @author henryaddo */ private void setSavedReport(int reportId) { // set text part of reports Report report = model.fetchPendingReportById(reportId); if (report != null) { view.mIncidentTitle.setText(report.getTitle()); view.mIncidentDesc.setText(report.getDescription()); view.mLongitude.setText(report.getLongitude()); view.mLatitude.setText(report.getLatitude()); view.mIncidentLocation.setText(report.getLocationName()); // set date and time setDateAndTime(report.getReportDate()); } // set Categories. mVectorCategories.clear(); for (ReportCategory reportCategory : model.fetchReportCategories(reportId)) { mVectorCategories.add(String.valueOf(reportCategory.getCategoryId())); } setSelectedCategories(mVectorCategories); // set the photos pendingPhoto.refresh(id); // set news List<Media> newsMedia = model.fetchReportNews(reportId); if (newsMedia != null && newsMedia.size() > 0) { view.mNews.setText(newsMedia.get(0).getLink()); } mIsReportEditable = mOgsDao.getReportState(id) != IOpenGeoSmsSchema.STATE_SENT; if (!mIsReportEditable) { View views[] = new View[] { view.mBtnAddCategory, view.mIncidentDesc, view.mIncidentLocation, view.mIncidentTitle, view.mLatitude, view.mLongitude, view.mPickDate, view.mPickTime }; for (View v : views) { v.setEnabled(false); } updateMarker( Double.parseDouble(report.getLatitude()), Double.parseDouble(report.getLongitude()), true); } }
/** * Post to local database * * @author henryaddo */ private boolean addReport() { log("Adding new reports"); File[] pendingPhotos = PhotoUtils.getPendingPhotos(this); Report report = new Report(); report.setTitle(view.mIncidentTitle.getText().toString()); report.setDescription(view.mIncidentDesc.getText().toString()); report.setLatitude(view.mLatitude.getText().toString()); report.setLongitude(view.mLongitude.getText().toString()); report.setLocationName(view.mIncidentLocation.getText().toString()); report.setReportDate(mDateToSubmit); report.setMode(String.valueOf(0)); report.setVerified(String.valueOf(0)); report.setPending(1); if (id == 0) { // Add a new pending report if (model.addPendingReport( report, mVectorCategories, pendingPhotos, view.mNews.getText().toString())) { // move saved photos log("Moving photos to fetched folder"); ImageManager.movePendingPhotos(this); id = report.getDbId(); } else { return false; } } else { // Update exisiting report List<Photo> photos = new ArrayList<Photo>(); for (int i = 0; i < pendingPhoto.getCount(); i++) { photos.add(pendingPhoto.getItem(i)); } if (model.updatePendingReport( id, report, mVectorCategories, photos, view.mNews.getText().toString())) { // move saved photos log("Moving photos to fetched folder"); ImageManager.movePendingPhotos(this); } else { return false; } } if (mSendOpenGeoSms) { mOgsDao.addReport(id); } else { mOgsDao.deleteReport(id); } return true; }
private void deleteReport() { // make sure it's an existing report if (id > 0) { if (model.deleteReport(id)) { // delete images for (int i = 0; i < pendingPhoto.getCount(); i++) { ImageManager.deletePendingPhoto(this, "/" + pendingPhoto.getItem(i).getPhoto()); } // return to report listing page. finish(); } } }