diff options
Diffstat (limited to 'main/src/cgeo/geocaching/settings/SettingsActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/settings/SettingsActivity.java | 43 |
1 files changed, 33 insertions, 10 deletions
diff --git a/main/src/cgeo/geocaching/settings/SettingsActivity.java b/main/src/cgeo/geocaching/settings/SettingsActivity.java index 7c0da1e..daef9af 100644 --- a/main/src/cgeo/geocaching/settings/SettingsActivity.java +++ b/main/src/cgeo/geocaching/settings/SettingsActivity.java @@ -46,6 +46,7 @@ import android.widget.ListAdapter; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.Locale; /** * A {@link PreferenceActivity} that presents a set of application settings. On @@ -64,10 +65,6 @@ public class SettingsActivity extends PreferenceActivity { private static final String INTENT_GOTO = "GOTO"; private static final int INTENT_GOTO_SERVICES = 1; - private static final int DIR_CHOOSER_MAPS_DIRECTORY_REQUEST = 4; - static final int OAUTH_OCDE_REQUEST = 5; - static final int OAUTH_TWITTER_REQUEST = 6; - private EditText signatureText; /** @@ -140,6 +137,7 @@ public class SettingsActivity extends PreferenceActivity { private void initServicePreferences() { 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); } @@ -247,7 +245,7 @@ public class SettingsActivity extends PreferenceActivity { public boolean onPreferenceClick(final Preference preference) { Intent i = new Intent(SettingsActivity.this, SelectMapfileActivity.class); - startActivityForResult(i, DIR_CHOOSER_MAPS_DIRECTORY_REQUEST); + startActivityForResult(i, R.string.pref_mapDirectory); return false; } }); @@ -398,13 +396,34 @@ public class SettingsActivity extends PreferenceActivity { Settings.putString(R.string.pref_webDeviceName, Settings.getWebDeviceName()); } + public void setOcAuthTitle(int prefKeyId) { + //TODO: Generalize! + switch (prefKeyId) { + case R.string.pref_fakekey_ocde_authorization: + setOCDEAuthTitle(); + break; + case R.string.pref_fakekey_ocpl_authorization: + setOCPLAuthTitle(); + break; + default: + Log.e(String.format(Locale.ENGLISH, "Invalid key %d in SettingsActivity.setTitle()", prefKeyId)); + } + } + void setOCDEAuthTitle() { getPreference(R.string.pref_fakekey_ocde_authorization) - .setTitle(getString(Settings.hasOCDEAuthorization() + .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)); } + 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)); + } + void setTwitterAuthTitle() { getPreference(R.string.pref_fakekey_twitter_authorization) .setTitle(getString(Settings.hasTwitterAuthorization() @@ -433,7 +452,7 @@ public class SettingsActivity extends PreferenceActivity { } switch (requestCode) { - case DIR_CHOOSER_MAPS_DIRECTORY_REQUEST: + case R.string.pref_mapDirectory: if (data.hasExtra(Intents.EXTRA_MAP_FILE)) { final String mapFile = data.getStringExtra(Intents.EXTRA_MAP_FILE); Settings.setMapFile(mapFile); @@ -445,11 +464,15 @@ public class SettingsActivity extends PreferenceActivity { getPreference(R.string.pref_mapDirectory).setSummary( Settings.getMapFileDirectory()); break; - case OAUTH_OCDE_REQUEST: + case R.string.pref_fakekey_ocde_authorization: setOCDEAuthTitle(); redrawScreen(R.string.pref_fakekey_services_screen); break; - case OAUTH_TWITTER_REQUEST: + case R.string.pref_fakekey_ocpl_authorization: + setOCPLAuthTitle(); + redrawScreen(R.string.pref_fakekey_services_screen); + break; + case R.string.pref_fakekey_twitter_authorization: setTwitterAuthTitle(); redrawScreen(R.string.pref_fakekey_services_screen); break; @@ -508,7 +531,7 @@ public class SettingsActivity extends PreferenceActivity { cgeoapplication.getInstance().checkLogin = true; } // reset log-in status if connector activation was changed - if (isPreference(preference, R.string.pref_connectorOCActive) || isPreference(preference, R.string.pref_connectorGCActive)) { + if (isPreference(preference, R.string.pref_connectorOCActive) || isPreference(preference, R.string.pref_connectorOCPLActive) || isPreference(preference, R.string.pref_connectorGCActive)) { cgeoapplication.getInstance().checkLogin = true; } return true; |
