diff options
| -rw-r--r-- | main/src/cgeo/geocaching/Settings.java | 54 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/activity/AbstractActivity.java | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgeo.java | 5 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgeoinit.java | 24 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgeopoint.java | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/twitter/TwitterAuthorizationActivity.java | 35 |
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 |
