From 5ec685e4c4f44e0101a75c63ebea39d2ae87d7dc Mon Sep 17 00:00:00 2001 From: koem Date: Wed, 17 Jul 2013 17:12:52 +0200 Subject: Fixex #2978 - Settings: "System" instead of "More Options" - moved basic member settings to subscreen in gc-services - new settings screen "Navigation" - renamed "More Option" to "System" --- main/res/drawable-mdpi/settings_arrow_black.png | Bin 0 -> 543 bytes main/res/drawable-mdpi/settings_arrow_white.png | Bin 0 -> 550 bytes main/res/values-de/strings.xml | 3 +- main/res/values/attrs.xml | 1 + main/res/values/preference_keys.xml | 1 + main/res/values/strings.xml | 5 ++- main/res/values/themes.xml | 2 + main/res/xml/preferences.xml | 43 ++++++++++++--------- .../cgeo/geocaching/connector/gc/GCConnector.java | 2 +- .../settings/CheckGcCredentialsPreference.java | 16 ++++---- .../cgeo/geocaching/settings/SettingsActivity.java | 32 +++++++++++---- 11 files changed, 67 insertions(+), 38 deletions(-) create mode 100644 main/res/drawable-mdpi/settings_arrow_black.png create mode 100644 main/res/drawable-mdpi/settings_arrow_white.png (limited to 'main') diff --git a/main/res/drawable-mdpi/settings_arrow_black.png b/main/res/drawable-mdpi/settings_arrow_black.png new file mode 100644 index 0000000..486f456 Binary files /dev/null and b/main/res/drawable-mdpi/settings_arrow_black.png differ diff --git a/main/res/drawable-mdpi/settings_arrow_white.png b/main/res/drawable-mdpi/settings_arrow_white.png new file mode 100644 index 0000000..4d36438 Binary files /dev/null and b/main/res/drawable-mdpi/settings_arrow_white.png differ 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 @@ Karteninhalt GPX Basic Member - Mehr Einstellungen + Navigation + System Browser Andere Log-Optionen 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 @@ + 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 @@ fakekey_main_screen fakekey_services_screen + fakekey_basicmembers_screen connectorGCActive username password 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 @@ Map Content GPX Basic Members - More Settings - + Navigation + System + Browser Other Logging Options 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 @@ @drawable/settings_details_white @drawable/settings_eye_white @drawable/settings_map_white + @drawable/settings_arrow_white @drawable/settings_nut_white @drawable/settings_pen_white @drawable/settings_sdcard_white @@ -168,6 +169,7 @@ @drawable/settings_details_black @drawable/settings_eye_black @drawable/settings_map_black + @drawable/settings_arrow_black @drawable/settings_nut_black @drawable/settings_pen_black @drawable/settings_sdcard_black 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 @@ + + + + - + + android:title="@string/settings_title_navigation" + android:icon="?attr/settings_arrow" > @@ -341,6 +356,12 @@ + + + + @@ -352,22 +373,6 @@ android:title="@string/init_gpx_importdir" /> - - - - - - - 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 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); -- cgit v1.1