aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2014-01-11 08:29:40 +0100
committerBananeweizen <bananeweizen@gmx.de>2014-01-11 08:29:40 +0100
commit8ce9c63b11781276d5c1de7250744d4b9eea1e08 (patch)
tree107a0537112f5fd51dca9067393ca116a1cfa0d2
parent7e5adaa53286d51ab79b6b56208cd0cf03c568b0 (diff)
downloadcgeo-8ce9c63b11781276d5c1de7250744d4b9eea1e08.zip
cgeo-8ce9c63b11781276d5c1de7250744d4b9eea1e08.tar.gz
cgeo-8ce9c63b11781276d5c1de7250744d4b9eea1e08.tar.bz2
wrong settings screen refreshed after oauth finishes
-rw-r--r--main/res/values/preference_keys.xml11
-rw-r--r--main/res/xml/preferences.xml44
-rw-r--r--main/src/cgeo/geocaching/settings/SettingsActivity.java32
3 files changed, 53 insertions, 34 deletions
diff --git a/main/res/values/preference_keys.xml b/main/res/values/preference_keys.xml
index ad08ec9..f542c33 100644
--- a/main/res/values/preference_keys.xml
+++ b/main/res/values/preference_keys.xml
@@ -6,13 +6,16 @@
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>
+ <string name="preference_screen_main">fakekey_main_screen</string>
+ <string name="preference_screen_services">fakekey_services_screen</string>
+ <string name="preference_screen_basicmembers">fakekey_basicmembers_screen</string>
+ <string name="preference_screen_ocde">preference_screen_ocde</string>
+ <string name="preference_screen_ocpl">preference_screen_ocpl</string>
+ <string name="preference_screen_twitter">preference_screen_twitter</string>
+ <string name="preference_screen_navigation_menu">fakekey_navigation_menu_screen</string>
<string name="pref_fakekey_ocde_authorization">fakekey_ocde_authorization</string>
<string name="pref_fakekey_ocpl_authorization">fakekey_ocpl_authorization</string>
<string name="pref_fakekey_twitter_authorization">fakekey_twitter_authorization</string>
- <string name="pref_fakekey_navigation_menu_screen">fakekey_navigation_menu_screen</string>
<string name="pref_connectorGCActive">connectorGCActive</string>
<string name="pref_username">username</string>
<string name="pref_password">password</string>
diff --git a/main/res/xml/preferences.xml b/main/res/xml/preferences.xml
index 2cef219..c574eb4 100644
--- a/main/res/xml/preferences.xml
+++ b/main/res/xml/preferences.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cgeo="http://schemas.android.com/apk/res/cgeo.geocaching"
- android:key="@string/pref_fakekey_main_screen" >
+ android:key="@string/preference_screen_main" >
<PreferenceScreen
android:icon="?attr/settings_cloud"
- android:key="@string/pref_fakekey_services_screen"
+ android:key="@string/preference_screen_services"
android:title="@string/settings_title_services" >
<PreferenceCategory android:title="@string/settings_category_geocaching" >
<PreferenceScreen android:title="@string/settings_title_gc" >
@@ -44,7 +44,7 @@
<PreferenceScreen
android:dependency="@string/pref_connectorGCActive"
- android:key="@string/pref_fakekey_basicmembers_screen"
+ android:key="@string/preference_screen_basicmembers"
android:title="@string/settings_title_basicmembers" >
<CheckBoxPreference
android:defaultValue="false"
@@ -74,7 +74,9 @@
android:title="@string/settings_open_website" />
</PreferenceCategory>
</PreferenceScreen>
- <PreferenceScreen android:title="@string/init_oc" >
+ <PreferenceScreen
+ android:key="@string/preference_screen_ocde"
+ android:title="@string/init_oc" >
<PreferenceCategory android:title="@string/settings_settings" >
<CheckBoxPreference
android:defaultValue="false"
@@ -94,12 +96,15 @@
<cgeo.geocaching.settings.CapabilitiesPreference
android:title="@string/settings_features"
cgeo:connector="OC" />
+
<Preference
android:key="@string/pref_fakekey_ocde_website"
android:title="@string/settings_open_website" />
</PreferenceCategory>
</PreferenceScreen>
- <PreferenceScreen android:title="@string/init_oc_pl" >
+ <PreferenceScreen
+ android:key="@string/preference_screen_ocpl"
+ android:title="@string/init_oc_pl" >
<PreferenceCategory android:title="@string/settings_settings" >
<CheckBoxPreference
android:defaultValue="false"
@@ -119,12 +124,12 @@
<cgeo.geocaching.settings.CapabilitiesPreference
android:title="@string/settings_features"
cgeo:connector="OP" />
+
<Preference
android:key="@string/pref_fakekey_ocpl_website"
android:title="@string/settings_open_website" />
</PreferenceCategory>
</PreferenceScreen>
-
<PreferenceScreen android:title="@string/settings_title_ec" >
<PreferenceCategory android:title="@string/settings_settings" >
<CheckBoxPreference
@@ -150,30 +155,31 @@
android:key="@string/pref_ecpassword"
android:singleLine="true"
android:title="@string/init_password" />
+
<cgeo.geocaching.settings.CheckECCredentialsPreference
android:dependency="@string/pref_connectorECActive"
android:title="@string/init_login" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/settings_title_appearance" >
- <ListPreference
- android:dependency="@string/pref_connectorECActive"
- android:defaultValue="1"
- android:dialogTitle="@string/init_ec_icons"
- android:key="@string/pref_ec_icons"
- android:title="@string/init_ec_icons"
- android:entries="@array/ECIcons"
- android:entryValues="@array/ECIconsValues" />
+ <ListPreference
+ android:defaultValue="1"
+ android:dependency="@string/pref_connectorECActive"
+ android:dialogTitle="@string/init_ec_icons"
+ android:entries="@array/ECIcons"
+ android:entryValues="@array/ECIconsValues"
+ android:key="@string/pref_ec_icons"
+ android:title="@string/init_ec_icons" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/settings_information" >
<cgeo.geocaching.settings.CapabilitiesPreference
android:title="@string/settings_features"
cgeo:connector="EC" />
+
<Preference
android:key="@string/pref_fakekey_ec_website"
android:title="@string/settings_open_website" />
</PreferenceCategory>
</PreferenceScreen>
-
<PreferenceScreen android:title="@string/settings_title_ox" >
<PreferenceCategory android:title="@string/settings_settings" >
<CheckBoxPreference
@@ -185,12 +191,12 @@
<cgeo.geocaching.settings.CapabilitiesPreference
android:title="@string/settings_features"
cgeo:connector="OX" />
+
<Preference
android:key="@string/pref_fakekey_ox_website"
android:title="@string/settings_open_website" />
</PreferenceCategory>
</PreferenceScreen>
-
<PreferenceScreen android:title="@string/init_gcvote" >
<PreferenceCategory android:title="@string/settings_settings" >
<cgeo.geocaching.settings.EditPasswordPreference
@@ -233,7 +239,9 @@
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory android:title="@string/settings_category_social" >
- <PreferenceScreen android:title="@string/init_twitter" >
+ <PreferenceScreen
+ android:key="@string/preference_screen_twitter"
+ android:title="@string/init_twitter" >
<CheckBoxPreference
android:defaultValue="false"
android:key="@string/pref_twitter"
@@ -470,7 +478,7 @@
android:text="@string/init_navigation_menu_description" />
<PreferenceScreen
- android:key="@string/pref_fakekey_navigation_menu_screen"
+ android:key="@string/preference_screen_navigation_menu"
android:title="@string/settings_title_navigation_menu" >
<CheckBoxPreference
android:defaultValue="true"
diff --git a/main/src/cgeo/geocaching/settings/SettingsActivity.java b/main/src/cgeo/geocaching/settings/SettingsActivity.java
index 04880c4..cdadb13 100644
--- a/main/src/cgeo/geocaching/settings/SettingsActivity.java
+++ b/main/src/cgeo/geocaching/settings/SettingsActivity.java
@@ -95,10 +95,10 @@ public class SettingsActivity extends PreferenceActivity {
int gotoPage = intent.getIntExtra(INTENT_GOTO, 0);
if (gotoPage == INTENT_GOTO_SERVICES) {
// start with services screen
- PreferenceScreen main = (PreferenceScreen) getPreference(R.string.pref_fakekey_main_screen);
+ PreferenceScreen main = (PreferenceScreen) getPreference(R.string.preference_screen_main);
try {
if (main != null) {
- int index = getPreference(R.string.pref_fakekey_services_screen).getOrder();
+ int index = getPreference(R.string.preference_screen_services).getOrder();
main.onItemClick(null, null, index, 0);
}
} catch (RuntimeException e) {
@@ -145,9 +145,9 @@ public class SettingsActivity extends PreferenceActivity {
getPreference(appEnum.preferenceKey).setEnabled(true);
}
}
- getPreference(R.string.pref_fakekey_basicmembers_screen)
+ getPreference(R.string.preference_screen_basicmembers)
.setEnabled(!Settings.isGCPremiumMember());
- redrawScreen(R.string.pref_fakekey_navigation_menu_screen);
+ redrawScreen(R.string.preference_screen_navigation_menu);
}
private void initServicePreferences() {
@@ -369,21 +369,29 @@ public class SettingsActivity extends PreferenceActivity {
}
void initBasicMemberPreferences() {
- getPreference(R.string.pref_fakekey_basicmembers_screen)
+ getPreference(R.string.preference_screen_basicmembers)
.setEnabled(!Settings.isGCPremiumMember());
getPreference(R.string.pref_loaddirectionimg)
.setEnabled(!Settings.isGCPremiumMember());
getPreference(R.string.pref_showcaptcha)
.setEnabled(!Settings.isGCPremiumMember());
- redrawScreen(R.string.pref_fakekey_services_screen);
+ redrawScreen(R.string.preference_screen_services);
}
- void redrawScreen(int key) {
- PreferenceScreen screen = (PreferenceScreen) getPreference(key);
- if (screen == null) {
+ /**
+ * Refresh a preference screen. Has no effect when called for a preference, that is not actually a preference
+ * screen.
+ *
+ * @param key
+ * Key of a preference screen.
+ */
+ void redrawScreen(final int key) {
+ final Preference preference = getPreference(key);
+ if (!(preference instanceof PreferenceScreen)) {
return;
}
+ final PreferenceScreen screen = (PreferenceScreen) preference;
ListAdapter adapter = screen.getRootAdapter();
if (adapter instanceof BaseAdapter) {
((BaseAdapter) adapter).notifyDataSetChanged();
@@ -478,15 +486,15 @@ public class SettingsActivity extends PreferenceActivity {
break;
case R.string.pref_fakekey_ocde_authorization:
setOCDEAuthTitle();
- redrawScreen(R.string.pref_fakekey_services_screen);
+ redrawScreen(R.string.preference_screen_ocde);
break;
case R.string.pref_fakekey_ocpl_authorization:
setOCPLAuthTitle();
- redrawScreen(R.string.pref_fakekey_services_screen);
+ redrawScreen(R.string.preference_screen_ocpl);
break;
case R.string.pref_fakekey_twitter_authorization:
setTwitterAuthTitle();
- redrawScreen(R.string.pref_fakekey_services_screen);
+ redrawScreen(R.string.preference_screen_twitter);
break;
default:
throw new IllegalArgumentException();