diff options
| author | Bananeweizen <Bananeweizen@gmx.de> | 2013-10-05 14:13:04 +0200 |
|---|---|---|
| committer | Bananeweizen <Bananeweizen@gmx.de> | 2013-10-05 14:13:04 +0200 |
| commit | e2eb5ff6b436b89e3c87cc235a58596a449d7ced (patch) | |
| tree | 1051a2decbb7761eeaf7262db9a439b8a4b3f5af /main | |
| parent | 55dc849c4c5839468c762ee2c7b7c1ee5a89d648 (diff) | |
| download | cgeo-e2eb5ff6b436b89e3c87cc235a58596a449d7ced.zip cgeo-e2eb5ff6b436b89e3c87cc235a58596a449d7ced.tar.gz cgeo-e2eb5ff6b436b89e3c87cc235a58596a449d7ced.tar.bz2 | |
new: settings for twitter message
Diffstat (limited to 'main')
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] & [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] & [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] & [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] & [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] & [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] & [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] & [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] & [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] & [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); + } +} |
