diff options
Diffstat (limited to 'main/src/cgeo/geocaching/settings/SettingsActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/settings/SettingsActivity.java | 102 |
1 files changed, 38 insertions, 64 deletions
diff --git a/main/src/cgeo/geocaching/settings/SettingsActivity.java b/main/src/cgeo/geocaching/settings/SettingsActivity.java index 38b9932..629debd 100644 --- a/main/src/cgeo/geocaching/settings/SettingsActivity.java +++ b/main/src/cgeo/geocaching/settings/SettingsActivity.java @@ -1,21 +1,20 @@ package cgeo.geocaching.settings; +import cgeo.geocaching.CgeoApplication; import cgeo.geocaching.Intents; import cgeo.geocaching.R; import cgeo.geocaching.SelectMapfileActivity; -import cgeo.geocaching.cgeoapplication; import cgeo.geocaching.activity.ActivityMixin; import cgeo.geocaching.apps.cache.navi.NavigationAppFactory; import cgeo.geocaching.apps.cache.navi.NavigationAppFactory.NavigationAppsEnum; import cgeo.geocaching.compatibility.Compatibility; +import cgeo.geocaching.connector.gc.GCConnector; import cgeo.geocaching.connector.gc.Login; import cgeo.geocaching.files.SimpleDirChooser; 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; @@ -33,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; @@ -63,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 @@ -72,18 +62,20 @@ public class SettingsActivity extends PreferenceActivity { */ private enum DirChooserType { GPX_IMPORT_DIR(1, R.string.pref_gpxImportDir, - Environment.getExternalStorageDirectory().getPath() + "/gpx"), + Environment.getExternalStorageDirectory().getPath() + "/gpx", false), GPX_EXPORT_DIR(2, R.string.pref_gpxExportDir, - Environment.getExternalStorageDirectory().getPath() + "/gpx"), - THEMES_DIR(3, R.string.pref_renderthemepath, ""); + Environment.getExternalStorageDirectory().getPath() + "/gpx", true), + THEMES_DIR(3, R.string.pref_renderthemepath, "", false); public final int requestCode; public final int keyId; public final String defaultValue; + public final boolean writeMode; - DirChooserType(final int requestCode, final int keyId, final String defaultValue) { + DirChooserType(final int requestCode, final int keyId, final String defaultValue, final boolean writeMode) { this.requestCode = requestCode; this.keyId = keyId; this.defaultValue = defaultValue; + this.writeMode = writeMode; } } @@ -130,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()); @@ -151,52 +143,30 @@ public class SettingsActivity extends PreferenceActivity { getPreference(R.string.pref_connectorOCActive).setOnPreferenceChangeListener(VALUE_CHANGE_LISTENER); getPreference(R.string.pref_connectorOCPLActive).setOnPreferenceChangeListener(VALUE_CHANGE_LISTENER); getPreference(R.string.pref_connectorGCActive).setOnPreferenceChangeListener(VALUE_CHANGE_LISTENER); + setWebsite(R.string.pref_fakekey_gc_website, GCConnector.getInstance().getHost()); + setWebsite(R.string.pref_fakekey_ocde_website, "opencaching.de"); + setWebsite(R.string.pref_fakekey_ocpl_website, "opencaching.pl"); + setWebsite(R.string.pref_fakekey_gcvote_website, "gcvote.com"); + setWebsite(R.string.pref_fakekey_sendtocgeo_website, "send2.cgeo.org"); } - private static String getKey(final int prefKeyId) { - return cgeoapplication.getInstance().getString(prefKeyId); - } - - private Preference getPreference(final int keyId) { - 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); + private void setWebsite(final int preferenceKey, final String host) { + Preference preference = getPreference(preferenceKey); + preference.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(final Preference preference) { + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://" + host))); 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 static String getKey(final int prefKeyId) { + return CgeoApplication.getInstance().getString(prefKeyId); } - private void insertSignatureTemplate(final LogTemplate template) { - String insertText = "[" + template.getTemplateString() + "]"; - ActivityMixin.insertAtPosition(signatureText, insertText, true); + private Preference getPreference(final int keyId) { + return SettingsActivity.findPreference(this, getKey(keyId)); } /** @@ -289,6 +259,7 @@ public class SettingsActivity extends PreferenceActivity { // OI file manager not available final Intent dirChooser = new Intent(this, SimpleDirChooser.class); dirChooser.putExtra(Intents.EXTRA_START_DIR, startDirectory); + dirChooser.putExtra(SimpleDirChooser.EXTRA_CHOOSE_FOR_WRITING, dct.writeMode); startActivityForResult(dirChooser, dct.requestCode); } } @@ -337,7 +308,7 @@ public class SettingsActivity extends PreferenceActivity { @Override public boolean onPreferenceClick(final Preference preference) { boolean oldValue = Settings.isDbOnSDCard(); - ((cgeoapplication) SettingsActivity.this.getApplication()) + ((CgeoApplication) SettingsActivity.this.getApplication()) .moveDatabase(SettingsActivity.this); return oldValue != Settings.isDbOnSDCard(); } @@ -390,6 +361,9 @@ public class SettingsActivity extends PreferenceActivity { case R.string.pref_fakekey_ocpl_authorization: setOCPLAuthTitle(); break; + case R.string.pref_fakekey_twitter_authorization: + setTwitterAuthTitle(); + break; default: Log.e(String.format(Locale.ENGLISH, "Invalid key %d in SettingsActivity.setTitle()", prefKeyId)); } @@ -398,22 +372,22 @@ public class SettingsActivity extends PreferenceActivity { void setOCDEAuthTitle() { getPreference(R.string.pref_fakekey_ocde_authorization) .setTitle(getString(Settings.hasOCAuthorization(R.string.pref_ocde_tokenpublic, R.string.pref_ocde_tokensecret) - ? R.string.init_reregister_oc_de - : R.string.init_register_oc_de)); + ? R.string.settings_reauthorize + : R.string.settings_authorize)); } void setOCPLAuthTitle() { getPreference(R.string.pref_fakekey_ocpl_authorization) .setTitle(getString(Settings.hasOCAuthorization(R.string.pref_ocpl_tokenpublic, R.string.pref_ocpl_tokensecret) - ? R.string.init_reregister_oc_pl - : R.string.init_register_oc_pl)); + ? R.string.settings_reauthorize + : R.string.settings_authorize)); } void setTwitterAuthTitle() { getPreference(R.string.pref_fakekey_twitter_authorization) .setTitle(getString(Settings.hasTwitterAuthorization() - ? R.string.init_twitter_reauthorize - : R.string.init_twitter_authorize)); + ? R.string.settings_reauthorize + : R.string.settings_authorize)); } public static void jumpToServicesPage(final Context fromActivity) { @@ -518,7 +492,7 @@ public class SettingsActivity extends PreferenceActivity { preference.setSummary(mapSource.getName()); } else if (isPreference(preference, R.string.pref_connectorOCActive) || isPreference(preference, R.string.pref_connectorOCPLActive) || isPreference(preference, R.string.pref_connectorGCActive)) { // // reset log-in status if connector activation was changed - cgeoapplication.getInstance().checkLogin = true; + CgeoApplication.getInstance().checkLogin = true; } else if (preference instanceof ListPreference) { // For list preferences, look up the correct display value in // the preference's 'entries' list. @@ -549,7 +523,7 @@ public class SettingsActivity extends PreferenceActivity { if (Login.isActualLoginStatus()) { Login.logout(); } - cgeoapplication.getInstance().checkLogin = true; + CgeoApplication.getInstance().checkLogin = true; } return true; } |
