aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/settings/SettingsActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/settings/SettingsActivity.java')
-rw-r--r--main/src/cgeo/geocaching/settings/SettingsActivity.java48
1 files changed, 37 insertions, 11 deletions
diff --git a/main/src/cgeo/geocaching/settings/SettingsActivity.java b/main/src/cgeo/geocaching/settings/SettingsActivity.java
index df6e680..187d124 100644
--- a/main/src/cgeo/geocaching/settings/SettingsActivity.java
+++ b/main/src/cgeo/geocaching/settings/SettingsActivity.java
@@ -1,7 +1,5 @@
package cgeo.geocaching.settings;
-import butterknife.ButterKnife;
-
import cgeo.geocaching.CgeoApplication;
import cgeo.geocaching.DataStore;
import cgeo.geocaching.Intents;
@@ -91,6 +89,7 @@ public class SettingsActivity extends PreferenceActivity {
super.onCreate(savedInstanceState);
initHardwareAccelerationPreferences();
+ initUnitPreferences();
SettingsActivity.addPreferencesFromResource(this, R.xml.preferences);
initPreferences();
@@ -126,6 +125,7 @@ public class SettingsActivity extends PreferenceActivity {
initDefaultNavigationPreferences();
initBackupButtons();
initDbLocationPreference();
+ initGeoDirPreferences();
initDebugPreference();
initBasicMemberPreferences();
initSend2CgeoPreferences();
@@ -143,7 +143,6 @@ public class SettingsActivity extends PreferenceActivity {
R.string.pref_ecusername, R.string.pref_ecpassword, R.string.pref_ec_icons }) {
bindSummaryToStringValue(k);
}
- getPreference(R.string.pref_units).setDefaultValue(Settings.getImperialUnitsDefault());
}
private void initNavigationMenuPreferences() {
@@ -297,7 +296,7 @@ public class SettingsActivity extends PreferenceActivity {
dirChooser.putExtra(FileManagerIntents.EXTRA_BUTTON_TEXT,
getString(android.R.string.ok));
startActivityForResult(dirChooser, dct.requestCode);
- } catch (final android.content.ActivityNotFoundException ex) {
+ } catch (final android.content.ActivityNotFoundException ignored) {
// OI file manager not available
final Intent dirChooser = new Intent(this, SimpleDirChooser.class);
dirChooser.putExtra(Intents.EXTRA_START_DIR, startDirectory);
@@ -373,12 +372,13 @@ public class SettingsActivity extends PreferenceActivity {
final Preference memoryDumpPref = getPreference(R.string.pref_memory_dump);
memoryDumpPref
.setOnPreferenceClickListener(new OnPreferenceClickListener() {
- @Override public boolean onPreferenceClick(
- final Preference preference) {
- DebugUtils.createMemoryDump(SettingsActivity.this);
- return true;
- }
- });
+ @Override
+ public boolean onPreferenceClick(
+ final Preference preference) {
+ DebugUtils.createMemoryDump(SettingsActivity.this);
+ return true;
+ }
+ });
}
public static void initHardwareAccelerationPreferences() {
@@ -387,6 +387,10 @@ public class SettingsActivity extends PreferenceActivity {
Settings.setUseHardwareAcceleration(Settings.useHardwareAcceleration());
}
+ private static void initUnitPreferences() {
+ Settings.setUseImperialUnits(Settings.useImperialUnits());
+ }
+
private void initDbLocationPreference() {
final Preference p = getPreference(R.string.pref_dbonsdcard);
p.setPersistent(false);
@@ -413,6 +417,28 @@ public class SettingsActivity extends PreferenceActivity {
});
}
+ private void initGeoDirPreferences() {
+ final Preference playServices = getPreference(R.string.pref_googleplayservices);
+ playServices.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(final Preference preference, final Object newValue) {
+ CgeoApplication.getInstance().setupGeoDataObservables((Boolean) newValue, Settings.useLowPowerMode());
+ return true;
+ }
+ });
+ playServices.setEnabled(CgeoApplication.getInstance().isGooglePlayServicesAvailable());
+ getPreference(R.string.pref_lowpowermode).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(final Preference preference, final Object newValue) {
+ final CgeoApplication app = CgeoApplication.getInstance();
+ final Boolean useLowPower = (Boolean) newValue;
+ app.setupGeoDataObservables(Settings.useGooglePlayServices(), useLowPower);
+ app.setupDirectionObservable(useLowPower);
+ return true;
+ }
+ });
+ }
+
void initBasicMemberPreferences() {
getPreference(R.string.preference_screen_basicmembers)
.setEnabled(!Settings.isGCPremiumMember());
@@ -570,7 +596,7 @@ public class SettingsActivity extends PreferenceActivity {
final int mapSourceId = Integer.parseInt(stringValue);
mapSource = MapProviderFactory.getMapSource(mapSourceId);
} catch (final NumberFormatException e) {
- Log.e("SettingsActivity.onPreferenceChange: bad source id '" + stringValue + "'");
+ Log.e("SettingsActivity.onPreferenceChange: bad source id '" + stringValue + "'", e);
mapSource = null;
}
// If there is no corresponding map source (because some map sources were