aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/Settings.java54
-rw-r--r--main/src/cgeo/geocaching/activity/AbstractActivity.java4
-rw-r--r--main/src/cgeo/geocaching/cgeo.java5
-rw-r--r--main/src/cgeo/geocaching/cgeoinit.java24
-rw-r--r--main/src/cgeo/geocaching/cgeopoint.java4
-rw-r--r--main/src/cgeo/geocaching/twitter/TwitterAuthorizationActivity.java35
6 files changed, 76 insertions, 50 deletions
diff --git a/main/src/cgeo/geocaching/Settings.java b/main/src/cgeo/geocaching/Settings.java
index 7218d50..c1fed54 100644
--- a/main/src/cgeo/geocaching/Settings.java
+++ b/main/src/cgeo/geocaching/Settings.java
@@ -22,6 +22,8 @@ import java.util.Locale;
*/
public final class Settings {
+ private static final String KEY_TEMP_TOKEN_SECRET = "temp-token-secret";
+ private static final String KEY_TEMP_TOKEN_PUBLIC = "temp-token-public";
private static final String KEY_HELP_SHOWN = "helper";
private static final String KEY_ANYLONGITUDE = "anylongitude";
private static final String KEY_ANYLATITUDE = "anylatitude";
@@ -710,6 +712,15 @@ public final class Settings {
}
+ public static Geopoint getAnyCoordinates() {
+ if (sharedPrefs.contains(KEY_ANYLATITUDE) && sharedPrefs.contains(KEY_ANYLONGITUDE)) {
+ float lat = sharedPrefs.getFloat(KEY_ANYLATITUDE, 0);
+ float lon = sharedPrefs.getFloat(KEY_ANYLONGITUDE, 0);
+ return new Geopoint(lat, lon);
+ }
+ return null;
+ }
+
public static boolean isUseCompass() {
return 0 != sharedPrefs.getInt(KEY_USE_COMPASS, 1);
}
@@ -833,4 +844,47 @@ public final class Settings {
public static int getVersion() {
return sharedPrefs.getInt(KEY_VERSION, 0);
}
+
+ public static void setTwitterTokens(final String tokenPublic, final String tokenSecret, boolean enableTwitter) {
+ editSharedSettings(new PrefRunnable() {
+
+ @Override
+ public void edit(Editor edit) {
+ edit.putString(KEY_TWITTER_TOKEN_PUBLIC, tokenPublic);
+ edit.putString(KEY_TWITTER_TOKEN_SECRET, tokenSecret);
+ if (tokenPublic != null) {
+ edit.remove(KEY_TEMP_TOKEN_PUBLIC);
+ edit.remove(KEY_TEMP_TOKEN_SECRET);
+ }
+ }
+ });
+ setUseTwitter(enableTwitter);
+ }
+
+ public static void setTwitterTempTokens(final String tokenPublic, final String tokenSecret) {
+ editSharedSettings(new PrefRunnable() {
+ @Override
+ public void edit(Editor edit) {
+ edit.putString(KEY_TEMP_TOKEN_PUBLIC, tokenPublic);
+ edit.putString(KEY_TEMP_TOKEN_SECRET, tokenSecret);
+ }
+ });
+ }
+
+ public static ImmutablePair<String, String> getTempToken() {
+ String tokenPublic = sharedPrefs.getString(KEY_TEMP_TOKEN_PUBLIC, null);
+ String tokenSecret = sharedPrefs.getString(KEY_TEMP_TOKEN_SECRET, null);
+ return new ImmutablePair<String, String>(tokenPublic, tokenSecret);
+ }
+
+ public static void setVersion(final int version) {
+ editSharedSettings(new PrefRunnable() {
+
+ @Override
+ public void edit(Editor edit) {
+ edit.putInt(KEY_VERSION, version);
+ }
+ });
+ }
+
}
diff --git a/main/src/cgeo/geocaching/activity/AbstractActivity.java b/main/src/cgeo/geocaching/activity/AbstractActivity.java
index 6d6d9dd..81c53db 100644
--- a/main/src/cgeo/geocaching/activity/AbstractActivity.java
+++ b/main/src/cgeo/geocaching/activity/AbstractActivity.java
@@ -7,8 +7,6 @@ import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.compatibility.Compatibility;
import android.app.Activity;
-import android.content.Context;
-import android.content.SharedPreferences;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
@@ -22,7 +20,6 @@ public abstract class AbstractActivity extends Activity implements IAbstractActi
protected cgeoapplication app = null;
protected Resources res = null;
- protected SharedPreferences prefs = null;
protected AbstractActivity() {
this(null);
@@ -75,7 +72,6 @@ public abstract class AbstractActivity extends Activity implements IAbstractActi
// init
res = this.getResources();
app = (cgeoapplication) this.getApplication();
- prefs = getSharedPreferences(Settings.preferences, Context.MODE_PRIVATE);
cgBase.initialize(app);
diff --git a/main/src/cgeo/geocaching/cgeo.java b/main/src/cgeo/geocaching/cgeo.java
index d2a1766..b102b6e 100644
--- a/main/src/cgeo/geocaching/cgeo.java
+++ b/main/src/cgeo/geocaching/cgeo.java
@@ -14,7 +14,6 @@ import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
-import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
@@ -722,9 +721,7 @@ public class cgeo extends AbstractActivity {
cleanupRunning = false;
if (version > 0) {
- SharedPreferences.Editor edit = prefs.edit();
- edit.putInt("version", version);
- edit.commit();
+ Settings.setVersion(version);
}
}
}
diff --git a/main/src/cgeo/geocaching/cgeoinit.java b/main/src/cgeo/geocaching/cgeoinit.java
index 2c2d911..9743ff2 100644
--- a/main/src/cgeo/geocaching/cgeoinit.java
+++ b/main/src/cgeo/geocaching/cgeoinit.java
@@ -9,6 +9,7 @@ import cgeo.geocaching.maps.MapProviderFactory;
import cgeo.geocaching.twitter.TwitterAuthorizationActivity;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.http.HttpResponse;
import android.app.ProgressDialog;
@@ -213,13 +214,10 @@ public class cgeoinit extends AbstractActivity {
public void init() {
// geocaching.com settings
- String usernameNow = prefs.getString("username", null);
- if (usernameNow != null) {
- ((EditText) findViewById(R.id.username)).setText(usernameNow);
- }
- String passwordNow = prefs.getString("password", null);
- if (usernameNow != null) {
- ((EditText) findViewById(R.id.password)).setText(passwordNow);
+ ImmutablePair<String, String> login = Settings.getLogin();
+ if (login != null) {
+ ((EditText) findViewById(R.id.username)).setText(login.left);
+ ((EditText) findViewById(R.id.password)).setText(login.right);
}
Button logMeIn = (Button) findViewById(R.id.log_me_in);
@@ -235,7 +233,7 @@ public class cgeoinit extends AbstractActivity {
});
// gcvote settings
- String passvoteNow = prefs.getString("pass-vote", null);
+ String passvoteNow = Settings.getGCvoteLogin().right;
if (passvoteNow != null) {
((EditText) findViewById(R.id.passvote)).setText(passvoteNow);
}
@@ -420,7 +418,7 @@ public class cgeoinit extends AbstractActivity {
});
TextView showWaypointsThreshold = (TextView) findViewById(R.id.showwaypointsthreshold);
- showWaypointsThreshold.setText("" + prefs.getInt("gcshowwaypointsthreshold", 0));
+ showWaypointsThreshold.setText(String.valueOf(Settings.getWayPointsThreshold()));
final CheckBox autovisitButton = (CheckBox) findViewById(R.id.trackautovisit);
autovisitButton.setChecked(Settings.isTrackableAutoVisit());
@@ -505,7 +503,7 @@ public class cgeoinit extends AbstractActivity {
// Altitude settings
EditText altitudeEdit = (EditText) findViewById(R.id.altitude);
- altitudeEdit.setText("" + prefs.getInt("altcorrection", 0));
+ altitudeEdit.setText(String.valueOf(Settings.getAltCorrection()));
//Send2cgeo settings
String webDeviceName = Settings.getWebDeviceName();
@@ -526,7 +524,7 @@ public class cgeoinit extends AbstractActivity {
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item, mapSources.values().toArray(new String[] {}));
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mapSourceSelector.setAdapter(adapter);
- int mapsource = prefs.getInt("mapsource", 0);
+ int mapsource = Settings.getMapSource();
mapSourceSelector.setSelection(MapProviderFactory.getSourceOrdinalFromId(mapsource));
mapSourceSelector.setOnItemSelectedListener(new cgeoChangeMapSource());
@@ -548,7 +546,7 @@ public class cgeoinit extends AbstractActivity {
private void initMapfileEdittext(boolean setFocus) {
EditText mfmapFileEdit = (EditText) findViewById(R.id.mapfile);
- mfmapFileEdit.setText(prefs.getString("mfmapfile", ""));
+ mfmapFileEdit.setText(Settings.getMapFile());
if (setFocus) {
mfmapFileEdit.requestFocus();
}
@@ -707,7 +705,7 @@ public class cgeoinit extends AbstractActivity {
public void onClick(View arg0) {
final String deviceName = ((EditText) findViewById(R.id.webDeviceName)).getText().toString();
- final String deviceCode = prefs.getString("webDeviceCode", null);
+ final String deviceCode = Settings.getWebDeviceCode();
if (StringUtils.isBlank(deviceName)) {
showToast(res.getString(R.string.err_missing_device_name));
diff --git a/main/src/cgeo/geocaching/cgeopoint.java b/main/src/cgeo/geocaching/cgeopoint.java
index a7906bf..7c3a25d 100644
--- a/main/src/cgeo/geocaching/cgeopoint.java
+++ b/main/src/cgeo/geocaching/cgeopoint.java
@@ -267,8 +267,8 @@ public class cgeopoint extends AbstractActivity {
latButton.setOnClickListener(new coordDialogListener());
lonButton.setOnClickListener(new coordDialogListener());
- if (prefs.contains("anylatitude") && prefs.contains("anylongitude")) {
- final Geopoint coords = new Geopoint(prefs.getFloat("anylatitude", 0f), prefs.getFloat("anylongitude", 0f));
+ final Geopoint coords = Settings.getAnyCoordinates();
+ if (coords != null) {
latButton.setText(coords.format(GeopointFormatter.Format.LAT_DECMINUTE));
lonButton.setText(coords.format(GeopointFormatter.Format.LON_DECMINUTE));
}
diff --git a/main/src/cgeo/geocaching/twitter/TwitterAuthorizationActivity.java b/main/src/cgeo/geocaching/twitter/TwitterAuthorizationActivity.java
index 9066dae..a3cb61a 100644
--- a/main/src/cgeo/geocaching/twitter/TwitterAuthorizationActivity.java
+++ b/main/src/cgeo/geocaching/twitter/TwitterAuthorizationActivity.java
@@ -8,12 +8,12 @@ import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.network.OAuth;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.util.EntityUtils;
import android.app.ProgressDialog;
import android.content.Intent;
-import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
@@ -111,8 +111,9 @@ public class TwitterAuthorizationActivity extends AbstractActivity {
pinEntry = (EditText) findViewById(R.id.pin);
pinEntryButton = (Button) findViewById(R.id.pin_button);
- OAtoken = prefs.getString("temp-token-public", null);
- OAtokenSecret = prefs.getString("temp-token-secret", null);
+ ImmutablePair<String, String> tempToken = Settings.getTempToken();
+ OAtoken = tempToken.left;
+ OAtokenSecret = tempToken.right;
startButton.setEnabled(true);
startButton.setOnClickListener(new startListener());
@@ -154,11 +155,7 @@ public class TwitterAuthorizationActivity extends AbstractActivity {
}
if (StringUtils.isNotBlank(OAtoken) && StringUtils.isNotBlank(OAtokenSecret)) {
- final SharedPreferences.Editor prefsEdit = getSharedPreferences(Settings.preferences, 0).edit();
- prefsEdit.putString("temp-token-public", OAtoken);
- prefsEdit.putString("temp-token-secret", OAtokenSecret);
- prefsEdit.commit();
-
+ Settings.setTwitterTempTokens(OAtoken, OAtokenSecret);
try {
final Parameters paramsBrowser = new Parameters();
paramsBrowser.put("oauth_callback", "oob");
@@ -206,21 +203,9 @@ public class TwitterAuthorizationActivity extends AbstractActivity {
if (StringUtils.isBlank(OAtoken) && StringUtils.isBlank(OAtokenSecret)) {
OAtoken = "";
OAtokenSecret = "";
-
- final SharedPreferences.Editor prefs = getSharedPreferences(Settings.preferences, 0).edit();
- prefs.putString("tokenpublic", null);
- prefs.putString("tokensecret", null);
- prefs.putInt("twitter", 0);
- prefs.commit();
+ Settings.setTwitterTokens(null, null, false);
} else {
- final SharedPreferences.Editor prefs = getSharedPreferences(Settings.preferences, 0).edit();
- prefs.remove("temp-token-public");
- prefs.remove("temp-token-secret");
- prefs.putString("tokenpublic", OAtoken);
- prefs.putString("tokensecret", OAtokenSecret);
- prefs.putInt("twitter", 1);
- prefs.commit();
-
+ Settings.setTwitterTokens(OAtoken, OAtokenSecret, true);
status = 1;
}
} catch (Exception e) {
@@ -243,11 +228,7 @@ public class TwitterAuthorizationActivity extends AbstractActivity {
startButton.setOnTouchListener(null);
startButton.setOnClickListener(null);
- final SharedPreferences.Editor prefs = getSharedPreferences(Settings.preferences, 0).edit();
- prefs.putString("temp-token-public", null);
- prefs.putString("temp-token-secret", null);
- prefs.commit();
-
+ Settings.setTwitterTempTokens(null, null);
(new Thread() {
@Override