diff options
| -rw-r--r-- | main/res/drawable-mdpi/settings_arrow_black.png | bin | 0 -> 543 bytes | |||
| -rw-r--r-- | main/res/drawable-mdpi/settings_arrow_white.png | bin | 0 -> 550 bytes | |||
| -rw-r--r-- | main/res/values-de/strings.xml | 3 | ||||
| -rw-r--r-- | main/res/values/attrs.xml | 1 | ||||
| -rw-r--r-- | main/res/values/preference_keys.xml | 1 | ||||
| -rw-r--r-- | main/res/values/strings.xml | 5 | ||||
| -rw-r--r-- | main/res/values/themes.xml | 2 | ||||
| -rw-r--r-- | main/res/xml/preferences.xml | 43 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/connector/gc/GCConnector.java | 2 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java | 16 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/settings/SettingsActivity.java | 32 |
11 files changed, 67 insertions, 38 deletions
diff --git a/main/res/drawable-mdpi/settings_arrow_black.png b/main/res/drawable-mdpi/settings_arrow_black.png Binary files differnew file mode 100644 index 0000000..486f456 --- /dev/null +++ b/main/res/drawable-mdpi/settings_arrow_black.png diff --git a/main/res/drawable-mdpi/settings_arrow_white.png b/main/res/drawable-mdpi/settings_arrow_white.png Binary files differnew file mode 100644 index 0000000..4d36438 --- /dev/null +++ b/main/res/drawable-mdpi/settings_arrow_white.png diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml index cc74154..9e7b886 100644 --- a/main/res/values-de/strings.xml +++ b/main/res/values-de/strings.xml @@ -370,7 +370,8 @@ <string name="settings_title_map_content">Karteninhalt</string> <string name="settings_title_gpx">GPX</string> <string name="settings_title_basicmembers">Basic Member</string> - <string name="settings_title_miscellaneous">Mehr Einstellungen</string> + <string name="settings_title_navigation">Navigation</string> + <string name="settings_title_system">System</string> <string name="settings_category_browser">Browser</string> <string name="settings_category_logging_other">Andere Log-Optionen</string> diff --git a/main/res/values/attrs.xml b/main/res/values/attrs.xml index 8c699b7..c823abb 100644 --- a/main/res/values/attrs.xml +++ b/main/res/values/attrs.xml @@ -34,6 +34,7 @@ <attr name="settings_details" format="integer" /> <attr name="settings_eye" format="integer" /> <attr name="settings_map" format="integer" /> + <attr name="settings_arrow" format="integer" /> <attr name="settings_nut" format="integer" /> <attr name="settings_pen" format="integer" /> <attr name="settings_sdcard" format="integer" /> diff --git a/main/res/values/preference_keys.xml b/main/res/values/preference_keys.xml index b1a7b01..10aceb5 100644 --- a/main/res/values/preference_keys.xml +++ b/main/res/values/preference_keys.xml @@ -3,6 +3,7 @@ <!-- preferences used in settings --> <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_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 a8e4351..d3385a9 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -372,8 +372,9 @@ <string name="settings_title_map_content">Map Content</string> <string name="settings_title_gpx">GPX</string> <string name="settings_title_basicmembers">Basic Members</string> - <string name="settings_title_miscellaneous">More Settings</string> - + <string name="settings_title_navigation">Navigation</string> + <string name="settings_title_system">System</string> + <string name="settings_category_browser">Browser</string> <string name="settings_category_logging_other">Other Logging Options</string> diff --git a/main/res/values/themes.xml b/main/res/values/themes.xml index 4813a21..d5f53bd 100644 --- a/main/res/values/themes.xml +++ b/main/res/values/themes.xml @@ -158,6 +158,7 @@ <item name="settings_details">@drawable/settings_details_white</item> <item name="settings_eye">@drawable/settings_eye_white</item> <item name="settings_map">@drawable/settings_map_white</item> + <item name="settings_arrow">@drawable/settings_arrow_white</item> <item name="settings_nut">@drawable/settings_nut_white</item> <item name="settings_pen">@drawable/settings_pen_white</item> <item name="settings_sdcard">@drawable/settings_sdcard_white</item> @@ -168,6 +169,7 @@ <item name="settings_details">@drawable/settings_details_black</item> <item name="settings_eye">@drawable/settings_eye_black</item> <item name="settings_map">@drawable/settings_map_black</item> + <item name="settings_arrow">@drawable/settings_arrow_black</item> <item name="settings_nut">@drawable/settings_nut_black</item> <item name="settings_pen">@drawable/settings_pen_black</item> <item name="settings_sdcard">@drawable/settings_sdcard_black</item> diff --git a/main/res/xml/preferences.xml b/main/res/xml/preferences.xml index b4a5366..6a7c638 100644 --- a/main/res/xml/preferences.xml +++ b/main/res/xml/preferences.xml @@ -36,6 +36,21 @@ <cgeo.geocaching.settings.CheckGcCredentialsPreference android:title="@string/init_login" android:dependency="@string/pref_connectorGCActive" /> + <PreferenceScreen + android:title="@string/settings_title_basicmembers" + android:key="@string/pref_fakekey_basicmembers_screen" + android:dependency="@string/pref_connectorGCActive" > + <CheckBoxPreference + android:key="@string/pref_showcaptcha" + android:title="@string/init_captcha" + android:summary="@string/init_summary_captcha" + android:defaultValue="false" /> + <CheckBoxPreference + android:key="@string/pref_loaddirectionimg" + android:title="@string/init_loaddirectionimg" + android:summary="@string/init_summary_loaddirectionimg" + android:defaultValue="true" /> + </PreferenceScreen> <cgeo.geocaching.settings.InfoPreference android:title="@string/settings_info_facebook_login_title" android:text="@string/settings_info_facebook_login" @@ -144,7 +159,7 @@ android:title="@string/init_units" android:summary="@string/init_summary_units" android:defaultValue="false" /> - + </PreferenceScreen> <PreferenceScreen @@ -313,8 +328,8 @@ </PreferenceScreen> <PreferenceScreen - android:title="@string/settings_title_miscellaneous" - android:icon="?attr/settings_nut" > + android:title="@string/settings_title_navigation" + android:icon="?attr/settings_arrow" > <PreferenceCategory android:title="@string/init_default_navigation_tool" > @@ -341,6 +356,12 @@ </PreferenceCategory> + </PreferenceScreen> + + <PreferenceScreen + android:title="@string/settings_title_system" + android:icon="?attr/settings_nut" > + <PreferenceCategory android:title="@string/settings_title_gpx" > @@ -352,22 +373,6 @@ android:title="@string/init_gpx_importdir" /> </PreferenceCategory> - - <PreferenceCategory - android:title="@string/settings_title_basicmembers" > - - <CheckBoxPreference - android:key="@string/pref_showcaptcha" - android:title="@string/init_captcha" - android:summary="@string/init_summary_captcha" - android:defaultValue="false" /> - <CheckBoxPreference - android:key="@string/pref_loaddirectionimg" - android:title="@string/init_loaddirectionimg" - android:summary="@string/init_summary_loaddirectionimg" - android:defaultValue="true" /> - - </PreferenceCategory> <PreferenceCategory android:title="@string/init_backup" > diff --git a/main/src/cgeo/geocaching/connector/gc/GCConnector.java b/main/src/cgeo/geocaching/connector/gc/GCConnector.java index 44d6e8f..e6fff79 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCConnector.java +++ b/main/src/cgeo/geocaching/connector/gc/GCConnector.java @@ -309,7 +309,7 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode, // invoke settings activity to insert login details if (status == StatusCode.NO_LOGIN_INFO_STORED && fromActivity != null) { - SettingsActivity.startWithServicesPage(fromActivity); + SettingsActivity.jumpToServicesPage(fromActivity); } } return status == StatusCode.NO_ERROR; diff --git a/main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java b/main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java index 877a6c7..3ecd1b2 100644 --- a/main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java +++ b/main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java @@ -1,6 +1,5 @@ package cgeo.geocaching.settings; -import cgeo.geocaching.settings.Settings; import cgeo.geocaching.R; import cgeo.geocaching.activity.ActivityMixin; import cgeo.geocaching.connector.gc.Login; @@ -12,7 +11,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.ImmutablePair; import android.annotation.SuppressLint; -import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.res.Resources; @@ -48,7 +46,7 @@ public class CheckGcCredentialsPreference extends Preference { private class GcLoginCheck implements OnPreferenceClickListener { private Resources res; - private Activity activity; + private SettingsActivity activity; private ProgressDialog loginDialog; @SuppressLint("HandlerLeak") @@ -76,17 +74,19 @@ public class CheckGcCredentialsPreference extends Preference { } catch (Exception e) { ActivityMixin.showToast(activity, R.string.err_login_failed); Log.e("SettingsActivity.logInHandler", e); - } - - if (loginDialog != null && loginDialog.isShowing()) { - loginDialog.dismiss(); + } finally { + if (loginDialog != null && loginDialog.isShowing()) { + loginDialog.dismiss(); + } + // enable/disable basic member preferences + activity.initBasicMemberPreferences(); } } }; @Override public boolean onPreferenceClick(Preference preference) { - this.activity = (Activity) CheckGcCredentialsPreference.this.getContext(); + this.activity = (SettingsActivity) CheckGcCredentialsPreference.this.getContext(); this.res = activity.getResources(); ImmutablePair<String, String> credentials = Settings.getGcLogin(); diff --git a/main/src/cgeo/geocaching/settings/SettingsActivity.java b/main/src/cgeo/geocaching/settings/SettingsActivity.java index 23ae7bd..1fc2ba4 100644 --- a/main/src/cgeo/geocaching/settings/SettingsActivity.java +++ b/main/src/cgeo/geocaching/settings/SettingsActivity.java @@ -38,7 +38,9 @@ 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; @@ -156,7 +158,7 @@ public class SettingsActivity extends PreferenceActivity { } }; - // workaround, because OnContextItemSelected nor onMenuItemSelected is never called + // workaround, because OnContextItemSelected and onMenuItemSelected are never called void setSignatureTextView(final EditText view) { this.signatureText = view; } @@ -364,18 +366,34 @@ public class SettingsActivity extends PreferenceActivity { }); } - private void initBasicMemberPreferences() { - SettingsActivity.findPreference(this, getKey(R.string.pref_loaddirectionimg)).setEnabled( - !Settings.isPremiumMember()); - SettingsActivity.findPreference(this, getKey(R.string.pref_showcaptcha)).setEnabled( - !Settings.isPremiumMember()); + void initBasicMemberPreferences() { + SettingsActivity.findPreference(this, getKey(R.string.pref_fakekey_basicmembers_screen)) + .setEnabled(!Settings.isPremiumMember()); + SettingsActivity.findPreference(this, getKey(R.string.pref_loaddirectionimg)) + .setEnabled(!Settings.isPremiumMember()); + SettingsActivity.findPreference(this, getKey(R.string.pref_showcaptcha)) + .setEnabled(!Settings.isPremiumMember()); + + redrawScreen(R.string.pref_fakekey_services_screen); + } + + private void redrawScreen(int key) { + PreferenceScreen screen = (PreferenceScreen) SettingsActivity + .findPreference(this, getKey(key)); + if (screen == null) { + return; + } + ListAdapter adapter = screen.getRootAdapter(); + if (adapter instanceof BaseAdapter) { + ((BaseAdapter) adapter).notifyDataSetChanged(); + } } private static void initSend2CgeoPreferences() { Settings.putString(R.string.pref_webDeviceName, Settings.getWebDeviceName()); } - public static void startWithServicesPage(final Context fromActivity) { + public static void jumpToServicesPage(final Context fromActivity) { final Intent intent = new Intent(fromActivity, SettingsActivity.class); intent.putExtra(INTENT_GOTO, INTENT_GOTO_SERVICES); fromActivity.startActivity(intent); |
