aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo
diff options
context:
space:
mode:
authorBananeweizen <Bananeweizen@gmx.de>2013-10-05 14:13:04 +0200
committerBananeweizen <Bananeweizen@gmx.de>2013-10-05 14:13:04 +0200
commite2eb5ff6b436b89e3c87cc235a58596a449d7ced (patch)
tree1051a2decbb7761eeaf7262db9a439b8a4b3f5af /main/src/cgeo
parent55dc849c4c5839468c762ee2c7b7c1ee5a89d648 (diff)
downloadcgeo-e2eb5ff6b436b89e3c87cc235a58596a449d7ced.zip
cgeo-e2eb5ff6b436b89e3c87cc235a58596a449d7ced.tar.gz
cgeo-e2eb5ff6b436b89e3c87cc235a58596a449d7ced.tar.bz2
new: settings for twitter message
Diffstat (limited to 'main/src/cgeo')
-rw-r--r--main/src/cgeo/geocaching/export/FieldnoteExport.java4
-rw-r--r--main/src/cgeo/geocaching/settings/LogSignaturePreference.java60
-rw-r--r--main/src/cgeo/geocaching/settings/Settings.java6
-rw-r--r--main/src/cgeo/geocaching/settings/SettingsActivity.java51
-rw-r--r--main/src/cgeo/geocaching/settings/TemplateTextPreference.java88
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);
+ }
+}