aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/settings/Settings.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/settings/Settings.java')
-rw-r--r--main/src/cgeo/geocaching/settings/Settings.java320
1 files changed, 228 insertions, 92 deletions
diff --git a/main/src/cgeo/geocaching/settings/Settings.java b/main/src/cgeo/geocaching/settings/Settings.java
index d93f83f..c15bc1b 100644
--- a/main/src/cgeo/geocaching/settings/Settings.java
+++ b/main/src/cgeo/geocaching/settings/Settings.java
@@ -6,12 +6,11 @@ import cgeo.geocaching.apps.cache.navi.NavigationAppFactory.NavigationAppsEnum;
import cgeo.geocaching.connector.capability.ICredentials;
import cgeo.geocaching.connector.gc.GCConnector;
import cgeo.geocaching.connector.gc.GCConstants;
-import cgeo.geocaching.connector.gc.GCLogin;
import cgeo.geocaching.enumerations.CacheType;
-import cgeo.geocaching.enumerations.LiveMapStrategy.Strategy;
import cgeo.geocaching.enumerations.LogType;
-import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.list.StoredList;
+import cgeo.geocaching.location.Geopoint;
+import cgeo.geocaching.maps.CGeoMap.MapMode;
import cgeo.geocaching.maps.MapProviderFactory;
//import cgeo.geocaching.maps.google.v1.GoogleMapProvider;
import cgeo.geocaching.maps.interfaces.GeoPointImpl;
@@ -35,6 +34,8 @@ import android.content.SharedPreferences.Editor;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
+import android.os.Build.VERSION;
+import android.os.Build.VERSION_CODES;
import android.os.Environment;
import android.preference.PreferenceManager;
@@ -49,6 +50,10 @@ import java.util.Locale;
*/
public class Settings {
+ /**
+ * On opening a map, we limit the _initial_ zoom. The user can still zoom out afterwards.
+ */
+ private static final int INITIAL_MAP_ZOOM_LIMIT = 16;
private static final char HISTORY_SEPARATOR = ',';
public static final int SHOW_WP_THRESHOLD_DEFAULT = 10;
public static final int SHOW_WP_THRESHOLD_MAX = 50;
@@ -66,11 +71,11 @@ public class Settings {
StringUtils.equals(Build.MODEL, "ST25i") || // Sony Xperia U
StringUtils.equals(Build.MODEL, "bq Aquaris 5"); // bq Aquaris 5
- private final static int unitsMetric = 1;
-
// twitter api keys
- private final static @NonNull String keyConsumerPublic = CryptUtils.rot13("ESnsCvAv3kEupF1GCR3jGj");
- private final static @NonNull String keyConsumerSecret = CryptUtils.rot13("7vQWceACV9umEjJucmlpFe9FCMZSeqIqfkQ2BnhV9x");
+ private final static @NonNull String TWITTER_KEY_CONSUMER_PUBLIC = CryptUtils.rot13("ESnsCvAv3kEupF1GCR3jGj");
+ private final static @NonNull String TWITTER_KEY_CONSUMER_SECRET = CryptUtils.rot13("7vQWceACV9umEjJucmlpFe9FCMZSeqIqfkQ2BnhV9x");
+
+ private static boolean useCompass = true;
public enum CoordInputFormatEnum {
Plain,
@@ -78,7 +83,7 @@ public class Settings {
Min,
Sec;
- static int DEFAULT_INT_VALUE = Min.ordinal();
+ static final int DEFAULT_INT_VALUE = Min.ordinal();
public static CoordInputFormatEnum fromInt(final int id) {
final CoordInputFormatEnum[] values = CoordInputFormatEnum.values();
@@ -109,13 +114,29 @@ public class Settings {
}
private static void migrateSettings() {
- // migrate from non standard file location and integer based boolean types
- final int oldVersion = getInt(R.string.pref_settingsversion, 0);
- if (oldVersion < 1) {
- final String oldPreferencesName = "cgeo.pref";
- final SharedPreferences old = CgeoApplication.getInstance().getSharedPreferences(oldPreferencesName, Context.MODE_PRIVATE);
+ final int LATEST_PREFERENCES_VERSION = 2;
+ final int currentVersion = getInt(R.string.pref_settingsversion, 0);
+
+ // No need to migrate if we are up to date.
+ if (currentVersion == LATEST_PREFERENCES_VERSION) {
+ return;
+ }
+
+ // No need to migrate if we don't have older settings, defaults will be used instead.
+ final String preferencesNameV0 = "cgeo.pref";
+ final SharedPreferences prefsV0 = CgeoApplication.getInstance().getSharedPreferences(preferencesNameV0, Context.MODE_PRIVATE);
+ if (currentVersion == 0 && prefsV0.getAll().isEmpty()) {
+ final Editor e = sharedPrefs.edit();
+ e.putInt(getKey(R.string.pref_settingsversion), LATEST_PREFERENCES_VERSION);
+ e.apply();
+ return;
+ }
+
+ if (currentVersion < 1) {
+ // migrate from non standard file location and integer based boolean types
final Editor e = sharedPrefs.edit();
+<<<<<<< HEAD
e.putString(getKey(R.string.pref_temp_twitter_token_secret), old.getString(getKey(R.string.pref_temp_twitter_token_secret), null));
e.putString(getKey(R.string.pref_temp_twitter_token_public), old.getString(getKey(R.string.pref_temp_twitter_token_public), null));
e.putBoolean(getKey(R.string.pref_help_shown), old.getInt(getKey(R.string.pref_help_shown), 0) != 0);
@@ -171,16 +192,72 @@ public class Settings {
e.putBoolean(getKey(R.string.pref_debug), old.getBoolean(getKey(R.string.pref_debug), false));
e.putBoolean(getKey(R.string.pref_hidelivemaphint), old.getInt(getKey(R.string.pref_hidelivemaphint), 0) != 0);
e.putInt(getKey(R.string.pref_livemaphintshowcount), old.getInt(getKey(R.string.pref_livemaphintshowcount), 0));
+=======
+ e.putString(getKey(R.string.pref_temp_twitter_token_secret), prefsV0.getString(getKey(R.string.pref_temp_twitter_token_secret), null));
+ e.putString(getKey(R.string.pref_temp_twitter_token_public), prefsV0.getString(getKey(R.string.pref_temp_twitter_token_public), null));
+ e.putBoolean(getKey(R.string.pref_help_shown), prefsV0.getInt(getKey(R.string.pref_help_shown), 0) != 0);
+ e.putFloat(getKey(R.string.pref_anylongitude), prefsV0.getFloat(getKey(R.string.pref_anylongitude), 0));
+ e.putFloat(getKey(R.string.pref_anylatitude), prefsV0.getFloat(getKey(R.string.pref_anylatitude), 0));
+ e.putBoolean(getKey(R.string.pref_offlinemaps), 0 != prefsV0.getInt(getKey(R.string.pref_offlinemaps), 1));
+ e.putBoolean(getKey(R.string.pref_offlinewpmaps), 0 != prefsV0.getInt(getKey(R.string.pref_offlinewpmaps), 0));
+ e.putString(getKey(R.string.pref_webDeviceCode), prefsV0.getString(getKey(R.string.pref_webDeviceCode), null));
+ e.putString(getKey(R.string.pref_webDeviceName), prefsV0.getString(getKey(R.string.pref_webDeviceName), null));
+ e.putBoolean(getKey(R.string.pref_maplive), prefsV0.getInt(getKey(R.string.pref_maplive), 1) != 0);
+ e.putInt(getKey(R.string.pref_mapsource), prefsV0.getInt(getKey(R.string.pref_mapsource), MAP_SOURCE_DEFAULT));
+ e.putBoolean(getKey(R.string.pref_twitter), 0 != prefsV0.getInt(getKey(R.string.pref_twitter), 0));
+ e.putBoolean(getKey(R.string.pref_showaddress), 0 != prefsV0.getInt(getKey(R.string.pref_showaddress), 1));
+ e.putBoolean(getKey(R.string.pref_showcaptcha), prefsV0.getBoolean(getKey(R.string.pref_showcaptcha), false));
+ e.putBoolean(getKey(R.string.pref_maptrail), prefsV0.getInt(getKey(R.string.pref_maptrail), 1) != 0);
+ e.putInt(getKey(R.string.pref_lastmapzoom), prefsV0.getInt(getKey(R.string.pref_lastmapzoom), 14));
+ e.putBoolean(getKey(R.string.pref_livelist), 0 != prefsV0.getInt(getKey(R.string.pref_livelist), 1));
+ e.putBoolean(getKey(R.string.pref_units_imperial), prefsV0.getInt(getKey(R.string.pref_units_imperial), 1) != 1);
+ e.putBoolean(getKey(R.string.pref_skin), prefsV0.getInt(getKey(R.string.pref_skin), 0) != 0);
+ e.putInt(getKey(R.string.pref_lastusedlist), prefsV0.getInt(getKey(R.string.pref_lastusedlist), StoredList.STANDARD_LIST_ID));
+ e.putString(getKey(R.string.pref_cachetype), prefsV0.getString(getKey(R.string.pref_cachetype), CacheType.ALL.id));
+ e.putString(getKey(R.string.pref_twitter_token_secret), prefsV0.getString(getKey(R.string.pref_twitter_token_secret), null));
+ e.putString(getKey(R.string.pref_twitter_token_public), prefsV0.getString(getKey(R.string.pref_twitter_token_public), null));
+ e.putInt(getKey(R.string.pref_version), prefsV0.getInt(getKey(R.string.pref_version), 0));
+ e.putBoolean(getKey(R.string.pref_autoloaddesc), 0 != prefsV0.getInt(getKey(R.string.pref_autoloaddesc), 1));
+ e.putBoolean(getKey(R.string.pref_ratingwanted), prefsV0.getBoolean(getKey(R.string.pref_ratingwanted), true));
+ e.putBoolean(getKey(R.string.pref_friendlogswanted), prefsV0.getBoolean(getKey(R.string.pref_friendlogswanted), true));
+ e.putBoolean(getKey(R.string.pref_useenglish), prefsV0.getBoolean(getKey(R.string.pref_useenglish), false));
+ e.putBoolean(getKey(R.string.pref_usecompass), 0 != prefsV0.getInt(getKey(R.string.pref_usecompass), 1));
+ e.putBoolean(getKey(R.string.pref_trackautovisit), prefsV0.getBoolean(getKey(R.string.pref_trackautovisit), false));
+ e.putBoolean(getKey(R.string.pref_sigautoinsert), prefsV0.getBoolean(getKey(R.string.pref_sigautoinsert), false));
+ e.putBoolean(getKey(R.string.pref_logimages), prefsV0.getBoolean(getKey(R.string.pref_logimages), false));
+ e.putBoolean(getKey(R.string.pref_excludedisabled), 0 != prefsV0.getInt(getKey(R.string.pref_excludedisabled), 0));
+ e.putBoolean(getKey(R.string.pref_excludemine), 0 != prefsV0.getInt(getKey(R.string.pref_excludemine), 0));
+ e.putString(getKey(R.string.pref_mapfile), prefsV0.getString(getKey(R.string.pref_mapfile), null));
+ e.putString(getKey(R.string.pref_signature), prefsV0.getString(getKey(R.string.pref_signature), null));
+ e.putString(getKey(R.string.pref_pass_vote), prefsV0.getString(getKey(R.string.pref_pass_vote), null));
+ e.putString(getKey(R.string.pref_password), prefsV0.getString(getKey(R.string.pref_password), null));
+ e.putString(getKey(R.string.pref_username), prefsV0.getString(getKey(R.string.pref_username), null));
+ e.putString(getKey(R.string.pref_memberstatus), prefsV0.getString(getKey(R.string.pref_memberstatus), ""));
+ e.putInt(getKey(R.string.pref_coordinputformat), prefsV0.getInt(getKey(R.string.pref_coordinputformat), CoordInputFormatEnum.DEFAULT_INT_VALUE));
+ e.putBoolean(getKey(R.string.pref_log_offline), prefsV0.getBoolean(getKey(R.string.pref_log_offline), false));
+ e.putBoolean(getKey(R.string.pref_choose_list), prefsV0.getBoolean(getKey(R.string.pref_choose_list), true));
+ e.putBoolean(getKey(R.string.pref_loaddirectionimg), prefsV0.getBoolean(getKey(R.string.pref_loaddirectionimg), true));
+ e.putString(getKey(R.string.pref_gccustomdate), prefsV0.getString(getKey(R.string.pref_gccustomdate), GCConstants.DEFAULT_GC_DATE));
+ e.putInt(getKey(R.string.pref_showwaypointsthreshold), prefsV0.getInt(getKey(R.string.pref_showwaypointsthreshold), SHOW_WP_THRESHOLD_DEFAULT));
+ e.putString(getKey(R.string.pref_cookiestore), prefsV0.getString(getKey(R.string.pref_cookiestore), null));
+ e.putBoolean(getKey(R.string.pref_opendetailslastpage), prefsV0.getBoolean(getKey(R.string.pref_opendetailslastpage), false));
+ e.putInt(getKey(R.string.pref_lastdetailspage), prefsV0.getInt(getKey(R.string.pref_lastdetailspage), 1));
+ e.putInt(getKey(R.string.pref_defaultNavigationTool), prefsV0.getInt(getKey(R.string.pref_defaultNavigationTool), NavigationAppsEnum.COMPASS.id));
+ e.putInt(getKey(R.string.pref_defaultNavigationTool2), prefsV0.getInt(getKey(R.string.pref_defaultNavigationTool2), NavigationAppsEnum.INTERNAL_MAP.id));
+ e.putInt(getKey(R.string.pref_livemapstrategy), prefsV0.getInt(getKey(R.string.pref_livemapstrategy), LivemapStrategy.AUTO.id));
+ e.putBoolean(getKey(R.string.pref_debug), prefsV0.getBoolean(getKey(R.string.pref_debug), false));
+ e.putInt(getKey(R.string.pref_livemaphintshowcount), prefsV0.getInt(getKey(R.string.pref_livemaphintshowcount), 0));
+>>>>>>> 59b8b2e26a7fff6072c4d5d96f51035dc900e0bc
e.putInt(getKey(R.string.pref_settingsversion), 1); // mark migrated
- e.commit();
+ e.apply();
}
// changes for new settings dialog
- if (oldVersion < 2) {
+ if (currentVersion < 2) {
final Editor e = sharedPrefs.edit();
- e.putBoolean(getKey(R.string.pref_units), !isUseImperialUnits());
+ e.putBoolean(getKey(R.string.pref_units_imperial), useImperialUnits());
// show waypoints threshold now as a slider
int wpThreshold = getWayPointsThreshold();
@@ -209,7 +286,7 @@ public class Settings {
e.putString(getKey(R.string.pref_gpxExportDir), getGpxExportDir());
e.putInt(getKey(R.string.pref_settingsversion), 2); // mark migrated
- e.commit();
+ e.apply();
}
}
@@ -237,40 +314,40 @@ public class Settings {
return sharedPrefs.getFloat(getKey(prefKeyId), defaultValue);
}
- protected static boolean putString(final int prefKeyId, final String value) {
+ protected static void putString(final int prefKeyId, final String value) {
final SharedPreferences.Editor edit = sharedPrefs.edit();
edit.putString(getKey(prefKeyId), value);
- return edit.commit();
+ edit.apply();
}
- protected static boolean putBoolean(final int prefKeyId, final boolean value) {
+ protected static void putBoolean(final int prefKeyId, final boolean value) {
final SharedPreferences.Editor edit = sharedPrefs.edit();
edit.putBoolean(getKey(prefKeyId), value);
- return edit.commit();
+ edit.apply();
}
- private static boolean putInt(final int prefKeyId, final int value) {
+ private static void putInt(final int prefKeyId, final int value) {
final SharedPreferences.Editor edit = sharedPrefs.edit();
edit.putInt(getKey(prefKeyId), value);
- return edit.commit();
+ edit.apply();
}
- private static boolean putLong(final int prefKeyId, final long value) {
+ private static void putLong(final int prefKeyId, final long value) {
final SharedPreferences.Editor edit = sharedPrefs.edit();
edit.putLong(getKey(prefKeyId), value);
- return edit.commit();
+ edit.apply();
}
- private static boolean putFloat(final int prefKeyId, final float value) {
+ private static void putFloat(final int prefKeyId, final float value) {
final SharedPreferences.Editor edit = sharedPrefs.edit();
edit.putFloat(getKey(prefKeyId), value);
- return edit.commit();
+ edit.apply();
}
- private static boolean remove(final int prefKeyId) {
+ private static void remove(final int prefKeyId) {
final SharedPreferences.Editor edit = sharedPrefs.edit();
edit.remove(getKey(prefKeyId));
- return edit.commit();
+ edit.apply();
}
private static boolean contains(final int prefKeyId) {
@@ -317,7 +394,7 @@ public class Settings {
}
public static String getUsername() {
- return getString(R.string.pref_username, null);
+ return getString(R.string.pref_username, StringUtils.EMPTY);
}
public static boolean isGCConnectorActive() {
@@ -333,19 +410,20 @@ public class Settings {
}
public static boolean isGCPremiumMember() {
- // Basic Member, Premium Member, ???
- return GCConstants.MEMBER_STATUS_PM.equalsIgnoreCase(Settings.getGCMemberStatus());
+ final String memberStatus = Settings.getGCMemberStatus();
+ return StringUtils.equalsIgnoreCase(memberStatus, GCConstants.MEMBER_STATUS_PREMIUM) ||
+ StringUtils.equalsIgnoreCase(memberStatus, GCConstants.MEMBER_STATUS_CHARTER);
}
public static String getGCMemberStatus() {
return getString(R.string.pref_memberstatus, "");
}
- public static boolean setGCMemberStatus(final String memberStatus) {
+ public static void setGCMemberStatus(final String memberStatus) {
if (StringUtils.isBlank(memberStatus)) {
- return remove(R.string.pref_memberstatus);
+ remove(R.string.pref_memberstatus);
}
- return putString(R.string.pref_memberstatus, memberStatus);
+ putString(R.string.pref_memberstatus, memberStatus);
}
public static ImmutablePair<String, String> getTokenPair(final int tokenPublicPrefKey, final int tokenSecretPrefKey) {
@@ -375,10 +453,7 @@ public class Settings {
}
public static boolean isGCvoteLogin() {
- final String preUsername = getString(R.string.pref_username, null);
- final String prePassword = getString(R.string.pref_pass_vote, null);
-
- return !StringUtils.isBlank(preUsername) && !StringUtils.isBlank(prePassword);
+ return getGCvoteLogin() != null;
}
public static ImmutablePair<String, String> getGCvoteLogin() {
@@ -396,19 +471,33 @@ public class Settings {
return getString(R.string.pref_signature, StringUtils.EMPTY);
}
- public static boolean setCookieStore(final String cookies) {
+ public static void setCookieStore(final String cookies) {
if (StringUtils.isBlank(cookies)) {
// erase cookies
- return remove(R.string.pref_cookiestore);
+ remove(R.string.pref_cookiestore);
}
// save cookies
- return putString(R.string.pref_cookiestore, cookies);
+ putString(R.string.pref_cookiestore, cookies);
}
public static String getCookieStore() {
return getString(R.string.pref_cookiestore, null);
}
+ public static void setUseGooglePlayServices(final boolean value) {
+ putBoolean(R.string.pref_googleplayservices, value);
+ }
+
+ public static boolean useGooglePlayServices() {
+ // By defaut, enable play services starting from ICS.
+ return CgeoApplication.getInstance().isGooglePlayServicesAvailable() &&
+ getBoolean(R.string.pref_googleplayservices, VERSION.SDK_INT >= VERSION_CODES.ICE_CREAM_SANDWICH);
+ }
+
+ public static boolean useLowPowerMode() {
+ return getBoolean(R.string.pref_lowpowermode, false);
+ }
+
/**
* @param cacheType
* The cache type used for future filtering
@@ -442,12 +531,11 @@ public class Settings {
return getString(R.string.pref_mapfile, null);
}
- public static boolean setMapFile(final String mapFile) {
- final boolean result = putString(R.string.pref_mapfile, mapFile);
+ public static void setMapFile(final String mapFile) {
+ putString(R.string.pref_mapfile, mapFile);
if (mapFile != null) {
setMapFileDirectory(new File(mapFile).getParent());
}
- return result;
}
public static String getMapFileDirectory() {
@@ -462,10 +550,9 @@ public class Settings {
return null;
}
- public static boolean setMapFileDirectory(final String mapFileDirectory) {
- final boolean result = putString(R.string.pref_mapDirectory, mapFileDirectory);
+ public static void setMapFileDirectory(final String mapFileDirectory) {
+ putString(R.string.pref_mapDirectory, mapFileDirectory);
MapsforgeMapProvider.getInstance().updateOfflineMaps();
- return result;
}
public static boolean isValidMapFile() {
@@ -506,10 +593,11 @@ public class Settings {
/**
* @return User selected date format on GC.com
- * @see GCLogin#GC_CUSTOM_DATE_FORMATS
*/
public static String getGcCustomDate() {
- return getString(R.string.pref_gccustomdate, null);
+ // We might have some users whose stored value is null, which is invalid. In this case, we use the default.
+ return StringUtils.defaultString(getString(R.string.pref_gccustomdate, GCConstants.DEFAULT_GC_DATE),
+ GCConstants.DEFAULT_GC_DATE);
}
public static boolean isExcludeMyCaches() {
@@ -572,11 +660,15 @@ public class Settings {
return getBoolean(R.string.pref_sigautoinsert, false);
}
- public static boolean isUseImperialUnits() {
- return getBoolean(R.string.pref_units, getImperialUnitsDefault());
+ public static void setUseImperialUnits(final boolean useImperialUnits) {
+ putBoolean(R.string.pref_units_imperial, useImperialUnits);
+ }
+
+ public static boolean useImperialUnits() {
+ return getBoolean(R.string.pref_units_imperial, useImperialUnitsByDefault());
}
- static boolean getImperialUnitsDefault() {
+ static boolean useImperialUnitsByDefault() {
final String countryCode = Locale.getDefault().getCountry();
return "US".equals(countryCode) // USA
|| "LR".equals(countryCode) // Liberia
@@ -592,21 +684,55 @@ public class Settings {
}
public static boolean isMapTrail() {
- return getBoolean(R.string.pref_maptrail, true);
+ return getBoolean(R.string.pref_maptrail, false);
}
public static void setMapTrail(final boolean showTrail) {
putBoolean(R.string.pref_maptrail, showTrail);
}
- public static int getMapZoom() {
- return getInt(R.string.pref_lastmapzoom, 14);
+ /**
+ * Get last used zoom of the internal map. Differentiate between two use cases for a map of multiple caches (e.g.
+ * live map) and the map of a single cache (which is often zoomed in more deep).
+ */
+ public static int getMapZoom(final MapMode mapMode) {
+ if (mapMode == MapMode.SINGLE || mapMode == MapMode.COORDS) {
+ return getCacheZoom();
+ }
+ return getMapZoom();
}
- public static void setMapZoom(final int mapZoomLevel) {
+ public static void setMapZoom(final MapMode mapMode, final int zoomLevel) {
+ if (mapMode == MapMode.SINGLE || mapMode == MapMode.COORDS) {
+ setCacheZoom(zoomLevel);
+ }
+ else {
+ setMapZoom(zoomLevel);
+ }
+ }
+
+ /**
+ * @return zoom used for the (live) map
+ */
+ private static int getMapZoom() {
+ return Math.max(getInt(R.string.pref_lastmapzoom, 14), INITIAL_MAP_ZOOM_LIMIT);
+ }
+
+ private static void setMapZoom(final int mapZoomLevel) {
putInt(R.string.pref_lastmapzoom, mapZoomLevel);
}
+ /**
+ * @return zoom used for the map of a single cache
+ */
+ private static int getCacheZoom() {
+ return Math.max(getInt(R.string.pref_cache_zoom, 14), INITIAL_MAP_ZOOM_LIMIT);
+ }
+
+ private static void setCacheZoom(final int zoomLevel) {
+ putInt(R.string.pref_cache_zoom, zoomLevel);
+ }
+
public static GeoPointImpl getMapCenter() {
return getMapProvider().getMapItemFactory()
.getGeoPointBase(new Geopoint(getInt(R.string.pref_lastmaplat, 0) / 1e6,
@@ -627,7 +753,7 @@ public class Settings {
// mapSource = MapProviderFactory.getMapSource(id);
if (mapSource != null) {
// don't use offline maps if the map file is not valid
- if ((!(mapSource instanceof OfflineMapSource)) || (isValidMapFile())) {
+ if (!(mapSource instanceof OfflineMapSource) || isValidMapFile()) {
return mapSource;
}
}
@@ -646,9 +772,7 @@ public class Settings {
private static final int HISTORY_SIZE = 10;
/**
- * convert old preference ids for maps (based on constant values) into new hash based ids
- *
- * @return
+ * Convert old preference ids for maps (based on constant values) into new hash based ids.
*/
// private static int getConvertedMapId() {
// final int id = Integer.parseInt(getString(R.string.pref_mapsource,
@@ -675,7 +799,7 @@ public class Settings {
// return id;
// }
- public static void setMapSource(final MapSource newMapSource) {
+ public static synchronized void setMapSource(final MapSource newMapSource) {
putString(R.string.pref_mapsource, String.valueOf(newMapSource.getNumericalId()));
if (newMapSource instanceof OfflineMapSource) {
setMapFile(((OfflineMapSource) newMapSource).getFileName());
@@ -704,11 +828,11 @@ public class Settings {
}
public static boolean isUseCompass() {
- return getBoolean(R.string.pref_usecompass, true);
+ return useCompass;
}
- public static void setUseCompass(final boolean useCompass) {
- putBoolean(R.string.pref_usecompass, useCompass);
+ public static void setUseCompass(final boolean value) {
+ useCompass = value;
}
public static boolean isLightSkin() {
@@ -716,13 +840,13 @@ public class Settings {
}
@NonNull
- public static String getKeyConsumerPublic() {
- return keyConsumerPublic;
+ public static String getTwitterKeyConsumerPublic() {
+ return TWITTER_KEY_CONSUMER_PUBLIC;
}
@NonNull
- public static String getKeyConsumerSecret() {
- return keyConsumerSecret;
+ public static String getTwitterKeyConsumerSecret() {
+ return TWITTER_KEY_CONSUMER_SECRET;
}
public static String getWebDeviceCode() {
@@ -734,13 +858,14 @@ public class Settings {
}
public static String getWebDeviceName() {
- return getString(R.string.pref_webDeviceName, android.os.Build.MODEL);
+ return getString(R.string.pref_webDeviceName, Build.MODEL);
}
/**
* @return The cache type used for filtering or ALL if no filter is active.
* Returns never null
*/
+ @NonNull
public static CacheType getCacheType() {
return CacheType.getById(getString(R.string.pref_cachetype, CacheType.ALL.id));
}
@@ -838,11 +963,11 @@ public class Settings {
String.valueOf(NavigationAppsEnum.INTERNAL_MAP.id)));
}
- public static Strategy getLiveMapStrategy() {
- return Strategy.getById(getInt(R.string.pref_livemapstrategy, Strategy.AUTO.id));
+ public static LivemapStrategy getLiveMapStrategy() {
+ return LivemapStrategy.getById(getInt(R.string.pref_livemapstrategy, LivemapStrategy.AUTO.id));
}
- public static void setLiveMapStrategy(final Strategy strategy) {
+ public static void setLiveMapStrategy(final LivemapStrategy strategy) {
putInt(R.string.pref_livemapstrategy, strategy.id);
}
@@ -850,14 +975,6 @@ public class Settings {
return Log.isDebug();
}
- public static boolean getHideLiveMapHint() {
- return getBoolean(R.string.pref_hidelivemaphint, false);
- }
-
- public static void setHideLiveHint(final boolean hide) {
- putBoolean(R.string.pref_hidelivemaphint, hide);
- }
-
public static int getLiveMapHintShowCount() {
return getInt(R.string.pref_livemaphintshowcount, 0);
}
@@ -986,9 +1103,7 @@ public class Settings {
}
/**
- * remember date of last field note export
- *
- * @param date
+ * Remember date of last field note export.
*/
public static void setFieldnoteExportDate(final long date) {
putLong(R.string.pref_fieldNoteExportDate, date);
@@ -999,9 +1114,7 @@ public class Settings {
}
/**
- * remember the state of the "Upload" checkbox in the field notes export dialog
- *
- * @param upload
+ * Remember the state of the "Upload" checkbox in the field notes export dialog.
*/
public static void setFieldNoteExportUpload(final boolean upload) {
putBoolean(R.string.pref_fieldNoteExportUpload, upload);
@@ -1012,9 +1125,7 @@ public class Settings {
}
/**
- * remember the state of the "Only new" checkbox in the field notes export dialog
- *
- * @param onlyNew
+ * Remember the state of the "Only new" checkbox in the field notes export dialog.
*/
public static void setFieldNoteExportOnlyNew(final boolean onlyNew) {
putBoolean(R.string.pref_fieldNoteExportOnlyNew, onlyNew);
@@ -1054,7 +1165,32 @@ public class Settings {
return getBoolean(R.string.pref_hardware_acceleration, !HW_ACCEL_DISABLED_BY_DEFAULT);
}
- public static boolean setUseHardwareAcceleration(final boolean useHardwareAcceleration) {
- return putBoolean(R.string.pref_hardware_acceleration, useHardwareAcceleration);
+ public static void setUseHardwareAcceleration(final boolean useHardwareAcceleration) {
+ putBoolean(R.string.pref_hardware_acceleration, useHardwareAcceleration);
+ }
+
+ public static String getLastCacheLog() {
+ return getString(R.string.pref_last_cache_log, StringUtils.EMPTY);
+ }
+
+ public static void setLastCacheLog(final String log) {
+ putString(R.string.pref_last_cache_log, log);
+ }
+
+ public static String getLastTrackableLog() {
+ return getString(R.string.pref_last_trackable_log, StringUtils.EMPTY);
+ }
+
+ public static void setLastTrackableLog(final String log) {
+ putString(R.string.pref_last_trackable_log, log);
+ }
+
+ @Nullable
+ public static String getHomeLocation() {
+ return getString(R.string.pref_home_location, null);
+ }
+
+ public static void setHomeLocation(@NonNull final String homeLocation) {
+ putString(R.string.pref_home_location, homeLocation);
}
}