diff options
| author | SammysHP <sven@sammyshp.de> | 2012-04-09 11:04:50 +0200 |
|---|---|---|
| committer | SammysHP <sven@sammyshp.de> | 2012-04-09 13:39:08 +0200 |
| commit | 298283f1ab580f1c704f68fc51267916180511ed (patch) | |
| tree | 2b026e6e1fc1fc8cf3bf268c12b59ad928a279e6 /main/src/cgeo/geocaching/export/FieldnoteExport.java | |
| parent | e4e95a7a4660b4534427c78b1d00dd80b899a558 (diff) | |
| download | cgeo-298283f1ab580f1c704f68fc51267916180511ed.zip cgeo-298283f1ab580f1c704f68fc51267916180511ed.tar.gz cgeo-298283f1ab580f1c704f68fc51267916180511ed.tar.bz2 | |
Export package: Documentation and make activity optional
Diffstat (limited to 'main/src/cgeo/geocaching/export/FieldnoteExport.java')
| -rw-r--r-- | main/src/cgeo/geocaching/export/FieldnoteExport.java | 65 |
1 files changed, 51 insertions, 14 deletions
diff --git a/main/src/cgeo/geocaching/export/FieldnoteExport.java b/main/src/cgeo/geocaching/export/FieldnoteExport.java index e00a8b0..7677569 100644 --- a/main/src/cgeo/geocaching/export/FieldnoteExport.java +++ b/main/src/cgeo/geocaching/export/FieldnoteExport.java @@ -33,6 +33,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +/** + * Exports offline-logs in the Groundspeak Field Note format.<br> + * <br> + * + * Field Notes are simple plain text files, but poorly documented. Syntax:<br> + * <code>GCxxxxx,yyyy-mm-ddThh:mm:ssZ,Found it,"logtext"</code> + */ public class FieldnoteExport extends AbstractExport { private static final File exportLocation = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/field-notes"); private static final SimpleDateFormat fieldNoteDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); @@ -41,6 +48,11 @@ public class FieldnoteExport extends AbstractExport { super(getString(R.string.export_fieldnotes)); } + /** + * A dialog to allow the user to set options for the export. + * + * Currently available options are: upload field notes, only new logs since last export/upload + */ private class ExportOptionsDialog extends AlertDialog { public ExportOptionsDialog(final List<cgCache> caches, final Activity activity) { super(activity); @@ -65,7 +77,14 @@ public class FieldnoteExport extends AbstractExport { @Override public void export(final List<cgCache> caches, final Activity activity) { - new ExportOptionsDialog(caches, activity).show(); + if (null == activity) { + // No activity given, so no user interaction possible. + // Start export with default parameters. + new ExportTask(caches, null, false, false).execute((Void) null); + } else { + // Show configuration dialog + new ExportOptionsDialog(caches, activity).show(); + } } private class ExportTask extends AsyncTask<Void, Integer, Boolean> { @@ -78,6 +97,18 @@ public class FieldnoteExport extends AbstractExport { private static final int STATUS_UPLOAD = -1; + /** + * Instantiates and configurates the task for exporting field notes. + * + * @param caches + * The {@link List} of {@link cgCache} to be exported + * @param activity + * optional: Show a progress bar and toasts + * @param upload + * Upload the Field Note to geocaching.com + * @param onlyNew + * Upload/export only new logs since last export + */ public ExportTask(final List<cgCache> caches, final Activity activity, final boolean upload, final boolean onlyNew) { this.caches = caches; this.activity = activity; @@ -87,8 +118,10 @@ public class FieldnoteExport extends AbstractExport { @Override protected void onPreExecute() { - progress.show(activity, null, getString(R.string.export) + ": " + getName(), ProgressDialog.STYLE_HORIZONTAL, null); - progress.setMaxProgressAndReset(caches.size()); + if (null != activity) { + progress.show(activity, null, getString(R.string.export) + ": " + getName(), ProgressDialog.STYLE_HORIZONTAL, null); + progress.setMaxProgressAndReset(caches.size()); + } } @Override @@ -199,24 +232,28 @@ public class FieldnoteExport extends AbstractExport { @Override protected void onPostExecute(Boolean result) { - progress.dismiss(); + if (null != activity) { + progress.dismiss(); - if (result) { - if (onlyNew) { - // update last export time in settings + if (result) { + if (onlyNew) { + // update last export time in settings + } + ActivityMixin.showToast(activity, getName() + " " + getString(R.string.export_exportedto) + ": " + exportFile.toString()); + } else { + ActivityMixin.showToast(activity, getString(R.string.export_failed)); } - ActivityMixin.showToast(activity, getName() + " " + getString(R.string.export_exportedto) + ": " + exportFile.toString()); - } else { - ActivityMixin.showToast(activity, getString(R.string.export_failed)); } } @Override protected void onProgressUpdate(Integer... status) { - if (STATUS_UPLOAD == status[0]) { - progress.setMessage(getString(R.string.export_fieldnotes_uploading)); - } else { - progress.setProgress(status[0]); + if (null != activity) { + if (STATUS_UPLOAD == status[0]) { + progress.setMessage(getString(R.string.export_fieldnotes_uploading)); + } else { + progress.setProgress(status[0]); + } } } } |
