diff options
| author | koem <koem@petoria.de> | 2013-07-17 17:12:52 +0200 |
|---|---|---|
| committer | koem <koem@petoria.de> | 2013-07-19 10:32:46 +0200 |
| commit | 5ec685e4c4f44e0101a75c63ebea39d2ae87d7dc (patch) | |
| tree | ea468dbdfd21f3ecbc30e00868c2fc2a75e485ef /main/src | |
| parent | 141c5696becd8a63d25132f1b5b139fbc6a3c179 (diff) | |
| download | cgeo-5ec685e4c4f44e0101a75c63ebea39d2ae87d7dc.zip cgeo-5ec685e4c4f44e0101a75c63ebea39d2ae87d7dc.tar.gz cgeo-5ec685e4c4f44e0101a75c63ebea39d2ae87d7dc.tar.bz2 | |
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"
Diffstat (limited to 'main/src')
3 files changed, 34 insertions, 16 deletions
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); |
