diff options
Diffstat (limited to 'main/src')
5 files changed, 93 insertions, 116 deletions
diff --git a/main/src/cgeo/geocaching/export/FieldnoteExport.java b/main/src/cgeo/geocaching/export/FieldnoteExport.java index 1d3e85d..b910220 100644 --- a/main/src/cgeo/geocaching/export/FieldnoteExport.java +++ b/main/src/cgeo/geocaching/export/FieldnoteExport.java @@ -42,9 +42,9 @@ import java.util.Locale; import java.util.TimeZone; /** - * Exports offline-logs in the Groundspeak Field Note format.<br> + * 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> */ diff --git a/main/src/cgeo/geocaching/settings/LogSignaturePreference.java b/main/src/cgeo/geocaching/settings/LogSignaturePreference.java deleted file mode 100644 index d0c9739..0000000 --- a/main/src/cgeo/geocaching/settings/LogSignaturePreference.java +++ /dev/null @@ -1,60 +0,0 @@ -package cgeo.geocaching.settings; - -import cgeo.geocaching.R; - -import android.content.Context; -import android.preference.DialogPreference; -import android.util.AttributeSet; -import android.view.View; -import android.widget.Button; -import android.widget.EditText; - -public class LogSignaturePreference extends DialogPreference { - - private SettingsActivity settingsActivity; - private EditText editText; - - public LogSignaturePreference(Context context, AttributeSet attrs) { - super(context, attrs); - init(); - } - - public LogSignaturePreference(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - init(); - } - - private void init() { - setDialogLayoutResource(R.layout.log_signature_preference_dialog); - } - - @Override - protected void onBindDialogView(View view) { - settingsActivity = (SettingsActivity) this.getContext(); - - editText = (EditText) view.findViewById(R.id.signature_dialog_text); - editText.setText(getPersistedString("")); - settingsActivity.setSignatureTextView(editText); - - Button templates = (Button) view.findViewById(R.id.signature_templates); - settingsActivity.registerForContextMenu(templates); - templates.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View templates) { - settingsActivity.openContextMenu(templates); - } - }); - - super.onBindDialogView(view); - } - - @Override - protected void onDialogClosed(boolean positiveResult) { - if (positiveResult) { - String text = editText.getText().toString(); - persistString(text); - callChangeListener(text); - } - super.onDialogClosed(positiveResult); - } -} diff --git a/main/src/cgeo/geocaching/settings/Settings.java b/main/src/cgeo/geocaching/settings/Settings.java index 947fa12..ad5ca46 100644 --- a/main/src/cgeo/geocaching/settings/Settings.java +++ b/main/src/cgeo/geocaching/settings/Settings.java @@ -925,13 +925,11 @@ public final class Settings { } public static String getCacheTwitterMessage() { - // TODO make customizable from UI - return "I found [NAME] ([URL])"; + return getString(R.string.pref_twitter_cache_message, "I found [NAME] ([URL])."); } public static String getTrackableTwitterMessage() { - // TODO make customizable from UI - return "I touched [NAME] ([URL])!"; + return getString(R.string.pref_twitter_trackable_message, "I touched [NAME] ([URL])."); } public static int getLogImageScale() { diff --git a/main/src/cgeo/geocaching/settings/SettingsActivity.java b/main/src/cgeo/geocaching/settings/SettingsActivity.java index 6ba3e04..5afd817 100644 --- a/main/src/cgeo/geocaching/settings/SettingsActivity.java +++ b/main/src/cgeo/geocaching/settings/SettingsActivity.java @@ -15,8 +15,6 @@ import cgeo.geocaching.maps.MapProviderFactory; import cgeo.geocaching.maps.interfaces.MapSource; import cgeo.geocaching.utils.DatabaseBackupUtils; import cgeo.geocaching.utils.Log; -import cgeo.geocaching.utils.LogTemplateProvider; -import cgeo.geocaching.utils.LogTemplateProvider.LogTemplate; import org.apache.commons.lang3.StringUtils; import org.openintents.intents.FileManagerIntents; @@ -34,17 +32,10 @@ import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; import android.preference.PreferenceScreen; -import android.view.ContextMenu; -import android.view.ContextMenu.ContextMenuInfo; -import android.view.MenuItem; -import android.view.MenuItem.OnMenuItemClickListener; -import android.view.View; import android.widget.BaseAdapter; -import android.widget.EditText; import android.widget.ListAdapter; import java.io.File; -import java.util.ArrayList; import java.util.List; import java.util.Locale; @@ -64,8 +55,6 @@ public class SettingsActivity extends PreferenceActivity { private static final String INTENT_GOTO = "GOTO"; private static final int INTENT_GOTO_SERVICES = 1; - private EditText signatureText; - /** * Enumeration for directory choosers. This is how we can retrieve information about the * directory and preference key in onActivityResult() easily just by knowing @@ -133,7 +122,7 @@ public class SettingsActivity extends PreferenceActivity { R.string.pref_gpxExportDir, R.string.pref_gpxImportDir, R.string.pref_mapDirectory, R.string.pref_defaultNavigationTool, R.string.pref_defaultNavigationTool2, R.string.pref_webDeviceName, - R.string.pref_fakekey_preference_backup_info, }) { + R.string.pref_fakekey_preference_backup_info, R.string.pref_twitter_cache_message, R.string.pref_twitter_trackable_message }) { bindSummaryToStringValue(k); } getPreference(R.string.pref_units).setDefaultValue(Settings.getImperialUnitsDefault()); @@ -180,44 +169,6 @@ public class SettingsActivity extends PreferenceActivity { return SettingsActivity.findPreference(this, getKey(keyId)); } - // workaround, because OnContextItemSelected nor onMenuItemSelected is never called - OnMenuItemClickListener TEMPLATE_CLICK = new OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(final MenuItem item) { - LogTemplate template = LogTemplateProvider.getTemplate(item.getItemId()); - if (template != null) { - insertSignatureTemplate(template); - return true; - } - return false; - } - }; - - // workaround, because OnContextItemSelected and onMenuItemSelected are never called - void setSignatureTextView(final EditText view) { - this.signatureText = view; - } - - @Override - public void onCreateContextMenu(final ContextMenu menu, final View v, - final ContextMenuInfo menuInfo) { - // context menu for signature templates - if (v.getId() == R.id.signature_templates) { - menu.setHeaderTitle(R.string.init_signature_template_button); - ArrayList<LogTemplate> templates = LogTemplateProvider.getTemplates(); - for (int i = 0; i < templates.size(); ++i) { - menu.add(0, templates.get(i).getItemId(), 0, templates.get(i).getResourceId()); - menu.getItem(i).setOnMenuItemClickListener(TEMPLATE_CLICK); - } - } - super.onCreateContextMenu(menu, v, menuInfo); - } - - private void insertSignatureTemplate(final LogTemplate template) { - String insertText = "[" + template.getTemplateString() + "]"; - ActivityMixin.insertAtPosition(signatureText, insertText, true); - } - /** * Fill the choice list for map sources. */ diff --git a/main/src/cgeo/geocaching/settings/TemplateTextPreference.java b/main/src/cgeo/geocaching/settings/TemplateTextPreference.java new file mode 100644 index 0000000..bcbb871 --- /dev/null +++ b/main/src/cgeo/geocaching/settings/TemplateTextPreference.java @@ -0,0 +1,88 @@ +package cgeo.geocaching.settings; + +import cgeo.geocaching.R; +import cgeo.geocaching.activity.ActivityMixin; +import cgeo.geocaching.utils.LogTemplateProvider; +import cgeo.geocaching.utils.LogTemplateProvider.LogTemplate; + +import org.apache.commons.lang3.StringUtils; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.preference.DialogPreference; +import android.util.AttributeSet; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; + +import java.util.ArrayList; + +public class TemplateTextPreference extends DialogPreference { + + private SettingsActivity settingsActivity; + private EditText editText; + + public TemplateTextPreference(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + public TemplateTextPreference(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + private void init() { + setDialogLayoutResource(R.layout.template_preference_dialog); + } + + @Override + protected void onBindDialogView(View view) { + settingsActivity = (SettingsActivity) this.getContext(); + + editText = (EditText) view.findViewById(R.id.signature_dialog_text); + editText.setText(getPersistedString(StringUtils.EMPTY)); + + Button button = (Button) view.findViewById(R.id.signature_templates); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View button) { + AlertDialog.Builder alert = new AlertDialog.Builder(TemplateTextPreference.this.getContext()); + alert.setTitle(R.string.init_signature_template_button); + final ArrayList<LogTemplate> templates = LogTemplateProvider.getTemplates(); + String[] items = new String[templates.size()]; + for (int i = 0; i < templates.size(); i++) { + items[i] = settingsActivity.getResources().getString(templates.get(i).getResourceId()); + } + alert.setItems(items, new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int position) { + dialog.dismiss(); + final LogTemplate template = templates.get(position); + insertSignatureTemplate(template); + } + }); + alert.create().show(); + } + }); + + super.onBindDialogView(view); + } + + private void insertSignatureTemplate(final LogTemplate template) { + String insertText = "[" + template.getTemplateString() + "]"; + ActivityMixin.insertAtPosition(editText, insertText, true); + } + + @Override + protected void onDialogClosed(boolean positiveResult) { + if (positiveResult) { + String text = editText.getText().toString(); + persistString(text); + callChangeListener(text); + } + super.onDialogClosed(positiveResult); + } +} |
