diff options
Diffstat (limited to 'main')
| -rw-r--r-- | main/res/values-de/strings.xml | 2 | ||||
| -rw-r--r-- | main/res/values/preference_keys.xml | 2 | ||||
| -rw-r--r-- | main/res/values/strings.xml | 2 | ||||
| -rw-r--r-- | main/res/xml/preferences.xml | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/network/OAuthAuthorizationActivity.java | 1 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/settings/AuthorizeOcDePreference.java | 7 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/settings/AuthorizeTwitterPreference.java | 7 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/settings/Settings.java | 12 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/settings/SettingsActivity.java | 26 |
9 files changed, 57 insertions, 6 deletions
diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml index 9e7b886..7945f16 100644 --- a/main/res/values-de/strings.xml +++ b/main/res/values-de/strings.xml @@ -387,6 +387,7 @@ <string name="settings_activate_oc">Aktivieren</string> <string name="init_oc_de_description">Autorisiere c:geo auf opencaching.de zuzugreifen um Caches zu suchen und nach deinen Funden zu filtern.</string> <string name="init_register_oc_de">c:geo autorisieren</string> + <string name="init_reregister_oc_de">c:geo neu autorisieren</string> <string name="init_gcvote">GCvote.com</string> <string name="init_twitter">Twitter</string> <string name="settings_activate_twitter">Aktivieren</string> @@ -400,6 +401,7 @@ <string name="init_login_popup_failed_reason">Login fehlgeschlagen:</string> <string name="init_login_popup_not_authorized">Nicht autorisiert</string> <string name="init_twitter_authorize">c:geo autorisieren</string> + <string name="init_twitter_reauthorize">c:geo neu autorisieren</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> diff --git a/main/res/values/preference_keys.xml b/main/res/values/preference_keys.xml index 10aceb5..eb851bf 100644 --- a/main/res/values/preference_keys.xml +++ b/main/res/values/preference_keys.xml @@ -4,6 +4,8 @@ <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> + <string name="pref_fakekey_ocde_authorization">fakekey_ocde_authorization</string> + <string name="pref_fakekey_twitter_authorization">fakekey_twitter_authorization</string> <string name="pref_connectorGCActive">connectorGCActive</string> <string name="pref_username">username</string> <string name="pref_password">password</string> diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index 22e5fbe..db6c1c5 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -389,6 +389,7 @@ <string name="settings_activate_oc">Activate</string> <string name="init_oc_de_description">Authorize c:geo with opencaching.de to search for caches and access/filter your found caches.</string> <string name="init_register_oc_de">Authorize c:geo</string> + <string name="init_reregister_oc_de">Authorize c:geo again</string> <string name="init_gcvote">GCvote.com</string> <string name="init_twitter">Twitter</string> <string name="settings_activate_twitter">Activate</string> @@ -402,6 +403,7 @@ <string name="init_login_popup_failed_reason">Login failed:</string> <string name="init_login_popup_not_authorized">Not authorized</string> <string name="init_twitter_authorize">Authorize c:geo</string> + <string name="init_twitter_reauthorize">Authorize c:geo again</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_signature_template_button">Insert Template</string> diff --git a/main/res/xml/preferences.xml b/main/res/xml/preferences.xml index 6a7c638..c0158da 100644 --- a/main/res/xml/preferences.xml +++ b/main/res/xml/preferences.xml @@ -71,7 +71,7 @@ android:text="@string/init_oc_de_description" android:dependency="@string/pref_connectorOCActive" /> <cgeo.geocaching.settings.AuthorizeOcDePreference - android:title="@string/init_register_oc_de" + android:key="@string/pref_fakekey_ocde_authorization" android:dependency="@string/pref_connectorOCActive" /> </PreferenceCategory> @@ -100,7 +100,7 @@ android:text="@string/about_twitter" android:dependency="@string/pref_twitter" /> <cgeo.geocaching.settings.AuthorizeTwitterPreference - android:title="@string/init_twitter_authorize" + android:key="@string/pref_fakekey_twitter_authorization" android:dependency="@string/pref_twitter" /> </PreferenceCategory> diff --git a/main/src/cgeo/geocaching/network/OAuthAuthorizationActivity.java b/main/src/cgeo/geocaching/network/OAuthAuthorizationActivity.java index 751443e..8dc8b03 100644 --- a/main/src/cgeo/geocaching/network/OAuthAuthorizationActivity.java +++ b/main/src/cgeo/geocaching/network/OAuthAuthorizationActivity.java @@ -82,6 +82,7 @@ public abstract class OAuthAuthorizationActivity extends AbstractActivity { pinEntryButton.setVisibility(View.GONE); + setResult(RESULT_OK); finish(); } else { showToast(getErrAuthProcess()); diff --git a/main/src/cgeo/geocaching/settings/AuthorizeOcDePreference.java b/main/src/cgeo/geocaching/settings/AuthorizeOcDePreference.java index 4ef3086..28807eb 100644 --- a/main/src/cgeo/geocaching/settings/AuthorizeOcDePreference.java +++ b/main/src/cgeo/geocaching/settings/AuthorizeOcDePreference.java @@ -25,16 +25,21 @@ public class AuthorizeOcDePreference extends Preference { @Override protected View onCreateView(ViewGroup parent) { + final SettingsActivity activity = (SettingsActivity) getContext(); + setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { Intent authIntent = new Intent(preference.getContext(), OCAuthorizationActivity.class); - preference.getContext().startActivity(authIntent); + activity.startActivityForResult(authIntent, + SettingsActivity.OAUTH_OCDE_REQUEST); return false; // no shared preference has to be changed } }); + + activity.setOCDEAuthTitle(); return super.onCreateView(parent); } } diff --git a/main/src/cgeo/geocaching/settings/AuthorizeTwitterPreference.java b/main/src/cgeo/geocaching/settings/AuthorizeTwitterPreference.java index 1a6d908..ed3e159 100644 --- a/main/src/cgeo/geocaching/settings/AuthorizeTwitterPreference.java +++ b/main/src/cgeo/geocaching/settings/AuthorizeTwitterPreference.java @@ -25,16 +25,21 @@ public class AuthorizeTwitterPreference extends Preference { @Override protected View onCreateView(ViewGroup parent) { + final SettingsActivity activity = (SettingsActivity) getContext(); + setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { Intent authIntent = new Intent(preference.getContext(), TwitterAuthorizationActivity.class); - preference.getContext().startActivity(authIntent); + activity.startActivityForResult(authIntent, + SettingsActivity.OAUTH_TWITTER_REQUEST); return false; // no shared preference has to be changed } }); + + activity.setTwitterAuthTitle(); return super.onCreateView(parent); } } diff --git a/main/src/cgeo/geocaching/settings/Settings.java b/main/src/cgeo/geocaching/settings/Settings.java index e44f9c0..aabb13a 100644 --- a/main/src/cgeo/geocaching/settings/Settings.java +++ b/main/src/cgeo/geocaching/settings/Settings.java @@ -316,6 +316,11 @@ public final class Settings { return getString(R.string.pref_ocde_tokensecret, ""); } + public static boolean hasOCDEAuthorization() { + return StringUtils.isNotBlank(getOCDETokenPublic()) + && StringUtils.isNotBlank(getOCDETokenSecret()); + } + public static void setOCDETokens(final String tokenPublic, final String tokenSecret, boolean enableOcDe) { putString(R.string.pref_ocde_tokenpublic, tokenPublic); @@ -735,6 +740,11 @@ public final class Settings { } + public static boolean hasTwitterAuthorization() { + return StringUtils.isNotBlank(getTokenPublic()) + && StringUtils.isNotBlank(getTokenSecret()); + } + public static void setTwitterTokens(final String tokenPublic, final String tokenSecret, boolean enableTwitter) { putString(R.string.pref_twitter_token_public, tokenPublic); @@ -753,7 +763,7 @@ public final class Settings { } public static ImmutablePair<String, String> getTempToken() { - String tokenPublic = getString(R.string.pref_twitter_token_public, null); + String tokenPublic = getString(R.string.pref_temp_twitter_token_public, null); String tokenSecret = getString(R.string.pref_temp_twitter_token_secret, null); return new ImmutablePair<String, String>(tokenPublic, tokenSecret); } diff --git a/main/src/cgeo/geocaching/settings/SettingsActivity.java b/main/src/cgeo/geocaching/settings/SettingsActivity.java index 1fc2ba4..61046b3 100644 --- a/main/src/cgeo/geocaching/settings/SettingsActivity.java +++ b/main/src/cgeo/geocaching/settings/SettingsActivity.java @@ -64,6 +64,8 @@ public class SettingsActivity extends PreferenceActivity { 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; @@ -377,7 +379,7 @@ public class SettingsActivity extends PreferenceActivity { redrawScreen(R.string.pref_fakekey_services_screen); } - private void redrawScreen(int key) { + void redrawScreen(int key) { PreferenceScreen screen = (PreferenceScreen) SettingsActivity .findPreference(this, getKey(key)); if (screen == null) { @@ -393,6 +395,20 @@ public class SettingsActivity extends PreferenceActivity { Settings.putString(R.string.pref_webDeviceName, Settings.getWebDeviceName()); } + void setOCDEAuthTitle() { + SettingsActivity.findPreference(this, getKey(R.string.pref_fakekey_ocde_authorization)) + .setTitle(getString(Settings.hasOCDEAuthorization() + ? R.string.init_reregister_oc_de + : R.string.init_register_oc_de)); + } + + void setTwitterAuthTitle() { + SettingsActivity.findPreference(this, getKey(R.string.pref_fakekey_twitter_authorization)) + .setTitle(getString(Settings.hasTwitterAuthorization() + ? R.string.init_twitter_reauthorize + : R.string.init_twitter_authorize)); + } + public static void jumpToServicesPage(final Context fromActivity) { final Intent intent = new Intent(fromActivity, SettingsActivity.class); intent.putExtra(INTENT_GOTO, INTENT_GOTO_SERVICES); @@ -426,6 +442,14 @@ public class SettingsActivity extends PreferenceActivity { SettingsActivity.findPreference(this, getKey(R.string.pref_mapDirectory)).setSummary( Settings.getMapFileDirectory()); break; + case OAUTH_OCDE_REQUEST: + setOCDEAuthTitle(); + redrawScreen(R.string.pref_fakekey_services_screen); + break; + case OAUTH_TWITTER_REQUEST: + setTwitterAuthTitle(); + redrawScreen(R.string.pref_fakekey_services_screen); + break; default: throw new IllegalArgumentException(); } |
