aboutsummaryrefslogtreecommitdiffstats
path: root/main
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
parent55dc849c4c5839468c762ee2c7b7c1ee5a89d648 (diff)
downloadcgeo-e2eb5ff6b436b89e3c87cc235a58596a449d7ced.zip
cgeo-e2eb5ff6b436b89e3c87cc235a58596a449d7ced.tar.gz
cgeo-e2eb5ff6b436b89e3c87cc235a58596a449d7ced.tar.bz2
new: settings for twitter message
Diffstat (limited to 'main')
-rw-r--r--main/res/layout/template_preference_dialog.xml (renamed from main/res/layout/log_signature_preference_dialog.xml)25
-rw-r--r--main/res/values-cs/strings.xml1
-rw-r--r--main/res/values-de/strings.xml1
-rw-r--r--main/res/values-es/strings.xml1
-rw-r--r--main/res/values-fr/strings.xml1
-rw-r--r--main/res/values-hu/strings.xml1
-rw-r--r--main/res/values-it/strings.xml1
-rw-r--r--main/res/values-ja/strings.xml1
-rw-r--r--main/res/values-nl/strings.xml1
-rw-r--r--main/res/values-pl/strings.xml1
-rw-r--r--main/res/values-pt/strings.xml1
-rw-r--r--main/res/values-sk/strings.xml1
-rw-r--r--main/res/values-sl/strings.xml1
-rw-r--r--main/res/values-sv/strings.xml1
-rw-r--r--main/res/values/preference_keys.xml12
-rw-r--r--main/res/values/strings.xml4
-rw-r--r--main/res/xml/preferences.xml19
-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
22 files changed, 133 insertions, 149 deletions
diff --git a/main/res/layout/log_signature_preference_dialog.xml b/main/res/layout/template_preference_dialog.xml
index a5048a4..c5fc548 100644
--- a/main/res/layout/log_signature_preference_dialog.xml
+++ b/main/res/layout/template_preference_dialog.xml
@@ -2,23 +2,15 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:padding="8dp"
- android:orientation="vertical" >
+ android:orientation="vertical"
+ android:padding="8dp" >
- <TextView
- android:text="@string/init_signature_help_text"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingBottom="8dp"
- android:textAppearance="?android:attr/textAppearanceSmall" />
-
<EditText
android:id="@+id/signature_dialog_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:hint="@string/init_signature"
- android:inputType="textMultiLine|textCapSentences"
android:gravity="top|left"
+ android:inputType="textMultiLine|textCapSentences"
android:minLines="3"
android:singleLine="false" />
@@ -26,8 +18,15 @@
android:id="@+id/signature_templates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:paddingTop="8dp"
android:layout_gravity="right"
+ android:paddingTop="8dp"
android:text="@string/init_signature_template_button" />
-</LinearLayout>
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingBottom="8dp"
+ android:text="@string/init_template_help"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/res/values-cs/strings.xml b/main/res/values-cs/strings.xml
index 13970db..d2d741e 100644
--- a/main/res/values-cs/strings.xml
+++ b/main/res/values-cs/strings.xml
@@ -361,7 +361,6 @@
<string name="init_login_popup_failed_reason">Přihlášení se nezdařilo, protože:</string>
<string name="init_login_popup_not_authorized">Neautorizováno</string>
<string name="init_signature">Podpis</string>
- <string name="init_signature_help_text">Zadej podpis k použití při logování.\nSpeciální řetězce, které můžeš použít jsou: [DATE] , [TIME], [DATETIME], [USER] &amp; [NUMBER].\nTyto řetězce budou nahrazeny při vkládání podpisu do Logu.</string>
<string name="init_signature_template_button">Vložit šablonu</string>
<string name="init_signature_template_date">Datum</string>
<string name="init_signature_template_time">Čas</string>
diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml
index 0a6e5bf..a61dee4 100644
--- a/main/res/values-de/strings.xml
+++ b/main/res/values-de/strings.xml
@@ -361,7 +361,6 @@
<string name="init_login_popup_failed_reason">Login fehlgeschlagen:</string>
<string name="init_login_popup_not_authorized">Nicht autorisiert</string>
<string name="init_signature">Signatur</string>
- <string name="init_signature_help_text">Verwendete Signatur für Logtexte.\nErlaubte Platzhalter sind: [DATE], [TIME], [DATETIME], [USER] &amp; [NUMBER]. Diese werden beim Einfügen der Signatur durch die entsprechenden Werte ersetzt.</string>
<string name="init_signature_template_button">Platzhalter einfügen</string>
<string name="init_signature_template_date">Datum</string>
<string name="init_signature_template_time">Zeit</string>
diff --git a/main/res/values-es/strings.xml b/main/res/values-es/strings.xml
index 07648b6..39a377d 100644
--- a/main/res/values-es/strings.xml
+++ b/main/res/values-es/strings.xml
@@ -281,7 +281,6 @@
<string name="init_login_popup_failed">Error en el acceso.</string>
<string name="init_login_popup_failed_reason">El acceso ha fallado debido a </string>
<string name="init_signature">Firma</string>
- <string name="init_signature_help_text">Escribe la firma que quieres usar en los registros.\nLas palabras especiales que puedes usar son: [DATE], [TIME], [USER] y [NUMBER].\nSerán reemplazados por sus valores al insertar la firma.</string>
<string name="init_signature_template_button">Insertar plantilla</string>
<string name="init_signature_template_date">Fecha</string>
<string name="init_signature_template_time">Hora</string>
diff --git a/main/res/values-fr/strings.xml b/main/res/values-fr/strings.xml
index 246a767..6e631f7 100644
--- a/main/res/values-fr/strings.xml
+++ b/main/res/values-fr/strings.xml
@@ -363,7 +363,6 @@
<string name="init_login_popup_failed_reason">Erreur de connexion: </string>
<string name="init_login_popup_not_authorized">Non autorisé</string>
<string name="init_signature">Signature</string>
- <string name="init_signature_help_text">Écrivez votre propre signature pour vos visites.\nLes codes spéciaux supportés sont : [DATE] , [TIME], [DATETIME], [USER] &amp; [NUMBER].\nAu moment de l\'insertion de la signature, ces codes seront remplacés par la valeur correspondante.</string>
<string name="init_signature_template_button">Insérer un modèle</string>
<string name="init_signature_template_date">Date</string>
<string name="init_signature_template_time">Heure</string>
diff --git a/main/res/values-hu/strings.xml b/main/res/values-hu/strings.xml
index 08b61e4..eb4a099 100644
--- a/main/res/values-hu/strings.xml
+++ b/main/res/values-hu/strings.xml
@@ -298,7 +298,6 @@
<string name="init_login_popup_failed">Belépés sikertelen.</string>
<string name="init_login_popup_failed_reason">Belépés sikertelen, mert </string>
<string name="init_signature">Aláírás</string>
- <string name="init_signature_help_text">Add meg az aláírásod amit a bejegyzés szövegében szeretnél használni.\nHasználható speciális címkék: [DATE] , [TIME], [DATETIME], [USER] &amp; [NUMBER].\nEzek az aláírás beillesztése után válnak láthatóvá.</string>
<string name="init_signature_template_button">Sablon beillesztése</string>
<string name="init_signature_template_date">Dátum</string>
<string name="init_signature_template_time">Idő</string>
diff --git a/main/res/values-it/strings.xml b/main/res/values-it/strings.xml
index adefd59..4529c2e 100644
--- a/main/res/values-it/strings.xml
+++ b/main/res/values-it/strings.xml
@@ -363,7 +363,6 @@
<string name="init_login_popup_failed_reason">Login fallito: </string>
<string name="init_login_popup_not_authorized">Non autorizzato</string>
<string name="init_signature">Firma</string>
- <string name="init_signature_help_text">Scrivi la tua firma da usare nei testi di log.\nStringhe speciali possono essere usate come: [DATE], [TIME], [DATETIME], [USER] e [NUMBER].\nSaranno espanse quando la firma viene inserita.</string>
<string name="init_signature_template_button">Stringhe speciali</string>
<string name="init_signature_template_date">Data</string>
<string name="init_signature_template_time">Ora</string>
diff --git a/main/res/values-ja/strings.xml b/main/res/values-ja/strings.xml
index b8ecfbb..e8cbdce 100644
--- a/main/res/values-ja/strings.xml
+++ b/main/res/values-ja/strings.xml
@@ -350,7 +350,6 @@
<string name="init_login_popup_failed_reason">ログインに失敗しました。原因: </string>
<string name="init_login_popup_not_authorized">認証できませんでした</string>
<string name="init_signature">署名</string>
- <string name="init_signature_help_text">ログ本文で使う署名を入力してください。\n特別な文字として、[DATE]、[TIME]、[DATETIME]、[USER]や[NUMBER]があります。\nこれらは署名の挿入時に、日付、時間、日時、ユーザ名や見つけたキャッシュ数+1に変換されます。</string>
<string name="init_signature_template_button">テンプレートを挿入</string>
<string name="init_signature_template_date">日付</string>
<string name="init_signature_template_time">時間</string>
diff --git a/main/res/values-nl/strings.xml b/main/res/values-nl/strings.xml
index 54b4dc9..5f16c67 100644
--- a/main/res/values-nl/strings.xml
+++ b/main/res/values-nl/strings.xml
@@ -361,7 +361,6 @@
<string name="init_login_popup_failed_reason">Inloggen mislukt omdat </string>
<string name="init_login_popup_not_authorized">Niet geautoriseerd</string>
<string name="init_signature">Handtekening</string>
- <string name="init_signature_help_text">Maak een handtekening om te gebruiken in logs.\nSpeciale teksten die gebruikt kunnen worden zijn: [DATE] , [TIME], [DATETIME], [USER] &amp; [NUMBER].\nDeze worden ingevuld op het moment dat de handtekening ingevoegd word.</string>
<string name="init_signature_template_button">Voeg template toe</string>
<string name="init_signature_template_date">Datum</string>
<string name="init_signature_template_time">Tijd</string>
diff --git a/main/res/values-pl/strings.xml b/main/res/values-pl/strings.xml
index ae30f59..b0b787b 100644
--- a/main/res/values-pl/strings.xml
+++ b/main/res/values-pl/strings.xml
@@ -361,7 +361,6 @@
<string name="init_login_popup_failed_reason">Logowanie nie powiodło się, ponieważ </string>
<string name="init_login_popup_not_authorized">Brak autoryzacji</string>
<string name="init_signature">Podpis</string>
- <string name="init_signature_help_text">Wprowadź Twój podpis, który będzie używany przy wpisie do dziennika.\nWyrażenia specjalne, które mogą być użyte to: [DATE] , [TIME], [DATETIME], [USER] &amp; [NUMBER].\nBędą one zastępowane w momencie wstawiania podpisu.</string>
<string name="init_signature_template_button">Wstaw szablon</string>
<string name="init_signature_template_date">Data</string>
<string name="init_signature_template_time">Czas</string>
diff --git a/main/res/values-pt/strings.xml b/main/res/values-pt/strings.xml
index 5377e0e..e37ff57 100644
--- a/main/res/values-pt/strings.xml
+++ b/main/res/values-pt/strings.xml
@@ -363,7 +363,6 @@
<string name="init_login_popup_failed_reason">Login falhado porque </string>
<string name="init_login_popup_not_authorized">Não autorizado</string>
<string name="init_signature">Assinatura</string>
- <string name="init_signature_help_text">Escreva a sua assinatura, para adicionar ao texto de registo na cache.\nPode usar algumas palavras-chave: [DATE] , [TIME], [USER] &amp; [NUMBER].\nEstas serão expandidas quando a assinatura for inserida.</string>
<string name="init_signature_template_button">Inserir modelo</string>
<string name="init_signature_template_date">Data</string>
<string name="init_signature_template_time">Hora</string>
diff --git a/main/res/values-sk/strings.xml b/main/res/values-sk/strings.xml
index c03182f..941cda7 100644
--- a/main/res/values-sk/strings.xml
+++ b/main/res/values-sk/strings.xml
@@ -299,7 +299,6 @@
<string name="init_login_popup_failed">Prihlásenie neúspešné</string>
<string name="init_login_popup_failed_reason">Prihlásenie neúspešné: </string>
<string name="init_signature">Podpis</string>
- <string name="init_signature_help_text">Zapíšte váš podpis, ktorý chcete použiť v texte záznamov.\nMôžete použiť špeciálne slová: [DATE] , [TIME], [DATETIME], [USER] a [NUMBER].\nTieto budú nahradené pri vložení podpisu.</string>
<string name="init_signature_template_button">Vložiť šablónu</string>
<string name="init_signature_template_date">Dátum</string>
<string name="init_signature_template_time">Čas</string>
diff --git a/main/res/values-sl/strings.xml b/main/res/values-sl/strings.xml
index b062804..302a9bf 100644
--- a/main/res/values-sl/strings.xml
+++ b/main/res/values-sl/strings.xml
@@ -361,7 +361,6 @@
<string name="init_login_popup_failed_reason">Prijava neuspešna:</string>
<string name="init_login_popup_not_authorized">Ni avtoriziran</string>
<string name="init_signature">Podpis</string>
- <string name="init_signature_help_text">Vnesite podpis, ki bo uporabljen b baših zapisih obiskov.\nPosebni nizi, ki jih lahko uporabite so: [DATE] - datum, [TIME] - ura, [DATETIME] - datum in ura, [USER] - uporabniško ime in [NUMBER] - število najdb.\nTi nizi bodo zamenjani s pravimi podatki ob vpisu.</string>
<string name="init_signature_template_button">Vnesi predlogo</string>
<string name="init_signature_template_date">Datum</string>
<string name="init_signature_template_time">Ura</string>
diff --git a/main/res/values-sv/strings.xml b/main/res/values-sv/strings.xml
index 3e4d7fd..7214cf6 100644
--- a/main/res/values-sv/strings.xml
+++ b/main/res/values-sv/strings.xml
@@ -333,7 +333,6 @@
<string name="init_login_popup_failed">Inloggning misslyckades</string>
<string name="init_login_popup_failed_reason">Inloggning misslyckades:</string>
<string name="init_signature">Signatur</string>
- <string name="init_signature_help_text">Skriv den signatur som du vill använda i dina loggtexter.\nDet finns några speciella texter som kan användas och som expanderas när signaturen läggs in: [DATE] , [TIME], [USER] &amp; [NUMBER].</string>
<string name="init_signature_template_button">Infoga makro</string>
<string name="init_signature_template_date">Datum</string>
<string name="init_signature_template_time">Tid</string>
diff --git a/main/res/values/preference_keys.xml b/main/res/values/preference_keys.xml
index 38012f5..3493c82 100644
--- a/main/res/values/preference_keys.xml
+++ b/main/res/values/preference_keys.xml
@@ -1,6 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
- <!-- preferences used in settings -->
+
+ <!--
+ Preferences used in settings are defined as strings here, so we can use them in the preferences.xml
+ and in the Java code as constants and avoid code duplication.
+ -->
+
<string name="pref_fakekey_main_screen">fakekey_main_screen</string>
<string name="pref_fakekey_services_screen">fakekey_services_screen</string>
<string name="pref_fakekey_basicmembers_screen">fakekey_basicmembers_screen</string>
@@ -118,4 +123,7 @@
<string name="pref_fakekey_ocpl_website">fakekey_ocpl_website</string>
<string name="pref_fakekey_gcvote_website">fakekey_gcvote_website</string>
<string name="pref_fakekey_sendtocgeo_website">fakekey_sendtocgeo_website</string>
-</resources>
+ <string name="pref_twitter_cache_message">twitter_cache_message</string>
+ <string name="pref_twitter_trackable_message">twitter_trackable_message</string>
+
+</resources> \ No newline at end of file
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml
index 9d7492e..f68829c 100644
--- a/main/res/values/strings.xml
+++ b/main/res/values/strings.xml
@@ -410,7 +410,7 @@
<string name="init_login_popup_failed_reason">Login failed:</string>
<string name="init_login_popup_not_authorized">Not authorized</string>
<string name="init_signature">Signature</string>
- <string name="init_signature_help_text">Enter a signature to be appended to your logs.\nSpecial strings that can be used are: [DATE] , [TIME], [DATETIME], [USER] &amp; [NUMBER].\nThese will be expanded when the signature is inserted.</string>
+ <string name="init_template_help">Placeholder strings like [NAME] will be expanded later when this template is used.</string>
<string name="init_signature_template_button">Insert Template</string>
<string name="init_signature_template_date">Date</string>
<string name="init_signature_template_time">Time</string>
@@ -510,6 +510,8 @@
<string name="settings_open_website">Open website</string>
<string name="settings_settings">Settings</string>
<string name="settings_information">Information</string>
+ <string name="settings_twitter_cache_message">Message for found cache</string>
+ <string name="settings_twitter_trackable_message">Message for found trackable</string>
<!-- map sources -->
<string name="map_source_google_map">Google: Map</string>
diff --git a/main/res/xml/preferences.xml b/main/res/xml/preferences.xml
index 6001783..74a6f6e 100644
--- a/main/res/xml/preferences.xml
+++ b/main/res/xml/preferences.xml
@@ -170,6 +170,17 @@
<cgeo.geocaching.settings.OAuthPreference
android:dependency="@string/pref_twitter"
android:key="@string/pref_fakekey_twitter_authorization" />
+
+ <cgeo.geocaching.settings.TemplateTextPreference
+ android:defaultValue="I found [NAME] ([URL])."
+ android:dependency="@string/pref_twitter"
+ android:key="@string/pref_twitter_cache_message"
+ android:title="@string/settings_twitter_cache_message" />
+ <cgeo.geocaching.settings.TemplateTextPreference
+ android:defaultValue="I touched [NAME] ([URL])."
+ android:dependency="@string/pref_twitter"
+ android:key="@string/pref_twitter_trackable_message"
+ android:title="@string/settings_twitter_trackable_message" />
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory android:title="@string/settings_category_browser" >
@@ -277,12 +288,12 @@
<Preference
android:key="@string/pref_renderthemepath"
android:title="@string/init_rendertheme_folder" />
+
<CheckBoxPreference
+ android:defaultValue="true"
android:key="@string/pref_mapsforge_scale_text"
- android:title="@string/settings_title_scale_map_text"
android:summary="@string/settings_summary_scale_map_text"
- android:defaultValue="true" />
-
+ android:title="@string/settings_title_scale_map_text" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/settings_title_map_content" >
<Preference
@@ -305,7 +316,7 @@
android:icon="?attr/settings_pen"
android:title="@string/settings_title_logging" >
<PreferenceCategory android:title="@string/init_signature" >
- <cgeo.geocaching.settings.LogSignaturePreference
+ <cgeo.geocaching.settings.TemplateTextPreference
android:key="@string/pref_signature"
android:title="@string/init_signature" />
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);
+ }
+}