aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorkoem <koem@petoria.de>2013-07-17 17:12:52 +0200
committerkoem <koem@petoria.de>2013-07-19 10:32:46 +0200
commit5ec685e4c4f44e0101a75c63ebea39d2ae87d7dc (patch)
treeea468dbdfd21f3ecbc30e00868c2fc2a75e485ef /main
parent141c5696becd8a63d25132f1b5b139fbc6a3c179 (diff)
downloadcgeo-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')
-rw-r--r--main/res/drawable-mdpi/settings_arrow_black.pngbin0 -> 543 bytes
-rw-r--r--main/res/drawable-mdpi/settings_arrow_white.pngbin0 -> 550 bytes
-rw-r--r--main/res/values-de/strings.xml3
-rw-r--r--main/res/values/attrs.xml1
-rw-r--r--main/res/values/preference_keys.xml1
-rw-r--r--main/res/values/strings.xml5
-rw-r--r--main/res/values/themes.xml2
-rw-r--r--main/res/xml/preferences.xml43
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCConnector.java2
-rw-r--r--main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java16
-rw-r--r--main/src/cgeo/geocaching/settings/SettingsActivity.java32
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
new file mode 100644
index 0000000..486f456
--- /dev/null
+++ b/main/res/drawable-mdpi/settings_arrow_black.png
Binary files 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
--- /dev/null
+++ b/main/res/drawable-mdpi/settings_arrow_white.png
Binary files 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 @@
<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);