aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/export/ExportFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/export/ExportFactory.java')
-rw-r--r--main/src/cgeo/geocaching/export/ExportFactory.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/export/ExportFactory.java b/main/src/cgeo/geocaching/export/ExportFactory.java
new file mode 100644
index 0000000..01343c3
--- /dev/null
+++ b/main/src/cgeo/geocaching/export/ExportFactory.java
@@ -0,0 +1,58 @@
+package cgeo.geocaching.export;
+
+import cgeo.geocaching.R;
+import cgeo.geocaching.cgCache;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+import java.util.List;
+
+public class ExportFactory {
+ public enum Exporters {
+ FIELDNOTES(new FieldnoteExport()),
+ GPX(new GpxExport());
+
+ Exporters(Export exporter) {
+ this.exporter = exporter;
+ }
+
+ public final Export exporter;
+ }
+
+ public static void showExportMenu(final List<cgCache> caches, final Activity activity) {
+ final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+ builder.setTitle(R.string.export).setIcon(android.R.drawable.ic_menu_share);
+
+ final ArrayAdapter<Exporters> adapter = new ArrayAdapter<Exporters>(activity, android.R.layout.select_dialog_item, Exporters.values()) {
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ TextView textView = (TextView) super.getView(position, convertView, parent);
+ textView.setText(getItem(position).exporter.getName());
+ return textView;
+ }
+
+ @Override
+ public View getDropDownView(int position, View convertView, ViewGroup parent) {
+ TextView textView = (TextView) super.getDropDownView(position, convertView, parent);
+ textView.setText(getItem(position).exporter.getName());
+ return textView;
+ }
+ };
+ adapter.setDropDownViewResource(android.R.layout.select_dialog_item);
+
+ builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int item) {
+ Exporters selectedItem = adapter.getItem(item);
+ selectedItem.exporter.export(caches, activity);
+ }
+ });
+
+ builder.create().show();
+ }
+}