diff options
Diffstat (limited to 'main/src/cgeo/geocaching/export/ExportFactory.java')
-rw-r--r-- | main/src/cgeo/geocaching/export/ExportFactory.java | 58 |
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(); + } +} |