aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorMarco Jacob <mjacob@union06.de>2012-10-15 21:47:17 +0200
committerMarco Jacob <mjacob@union06.de>2012-10-15 21:47:17 +0200
commit0581e2ff72503a85a4966a10d8bc3c1816966fad (patch)
tree66790268de43eb7a230227f77f8f534f575fe4c7 /main
parentd33c1a01502ce6cb3737d1a88bf0ccd174213ac7 (diff)
downloadcgeo-0581e2ff72503a85a4966a10d8bc3c1816966fad.zip
cgeo-0581e2ff72503a85a4966a10d8bc3c1816966fad.tar.gz
cgeo-0581e2ff72503a85a4966a10d8bc3c1816966fad.tar.bz2
fixes #1843 - settings for using native user agent instead
Diffstat (limited to 'main')
-rw-r--r--main/res/layout/init.xml22
-rw-r--r--main/res/values-de/strings.xml1
-rw-r--r--main/res/values/strings.xml1
-rw-r--r--main/src/cgeo/geocaching/Settings.java14
-rw-r--r--main/src/cgeo/geocaching/SettingsActivity.java12
-rw-r--r--main/src/cgeo/geocaching/network/Network.java15
6 files changed, 62 insertions, 3 deletions
diff --git a/main/res/layout/init.xml b/main/res/layout/init.xml
index f149ce4..d0617fe 100644
--- a/main/res/layout/init.xml
+++ b/main/res/layout/init.xml
@@ -623,7 +623,27 @@
android:textColor="?text_color"
android:text="@string/init_plain_logs" />
</LinearLayout>
- </LinearLayout>
+ <LinearLayout
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal" >
+ <CheckBox android:id="@+id/use_native_ua"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="left"
+ android:padding="1px"
+ android:gravity="center" />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:gravity="left"
+ android:paddingRight="3dip"
+ android:textSize="14dip"
+ android:textColor="?text_color"
+ android:text="@string/init_use_native_ua" />
+ </LinearLayout>
+ </LinearLayout>
<!-- ** -->
<RelativeLayout style="@style/separator_horizontal_layout" >
<View style="@style/separator_horizontal" />
diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml
index fc0e7b8..a1d3577 100644
--- a/main/res/values-de/strings.xml
+++ b/main/res/values-de/strings.xml
@@ -456,6 +456,7 @@
<string name="init_dbmove_success">Die Datenbank wurde erfolgreich verschoben.</string>
<string name="init_dbmove_failed">Fehler beim Verschieben der Datenbank.</string>
<string name="init_plain_logs">Logeinträge ohne Farben anzeigen</string>
+ <string name="init_use_native_ua">Android UserAgent verwenden</string>
<!-- map sources -->
<string name="map_source_google_map">Google: Karte</string>
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml
index 51e58d6..521d2ad 100644
--- a/main/res/values/strings.xml
+++ b/main/res/values/strings.xml
@@ -457,6 +457,7 @@
<string name="init_dbmove_success">Successfully moved the database.</string>
<string name="init_dbmove_failed">Failed to move database</string>
<string name="init_plain_logs">Display log entries without colors</string>
+ <string name="init_use_native_ua">Use Android UserAgent</string>
<!-- map sources -->
<string-array name="map_sources">
diff --git a/main/src/cgeo/geocaching/Settings.java b/main/src/cgeo/geocaching/Settings.java
index 74614c4..b4fc94b 100644
--- a/main/src/cgeo/geocaching/Settings.java
+++ b/main/src/cgeo/geocaching/Settings.java
@@ -98,6 +98,7 @@ public final class Settings {
private static final String KEY_GPX_EXPORT_DIR = "gpxExportDir";
private static final String KEY_GPX_IMPORT_DIR = "gpxImportDir";
private static final String KEY_PLAIN_LOGS = "plainLogs";
+ private static final String KEY_NATIVE_UA = "nativeUa";
private final static int unitsMetric = 1;
@@ -1226,4 +1227,17 @@ public final class Settings {
});
}
+ public static boolean getUseNativeUa() {
+ return sharedPrefs.getBoolean(KEY_NATIVE_UA, false);
+ }
+
+ public static void setUseNativeUa(final boolean useNativeUa) {
+ editSharedSettings(new PrefRunnable() {
+
+ @Override
+ public void edit(Editor edit) {
+ edit.putBoolean(KEY_NATIVE_UA, useNativeUa);
+ }
+ });
+ }
}
diff --git a/main/src/cgeo/geocaching/SettingsActivity.java b/main/src/cgeo/geocaching/SettingsActivity.java
index defb138..b0870a4 100644
--- a/main/src/cgeo/geocaching/SettingsActivity.java
+++ b/main/src/cgeo/geocaching/SettingsActivity.java
@@ -527,6 +527,18 @@ public class SettingsActivity extends AbstractActivity {
}
});
+ // Workaround for cspire customers on mobile connections #1843
+ final CheckBox useNativeUserAgent = (CheckBox) findViewById(R.id.use_native_ua);
+ useNativeUserAgent.setChecked(Settings.getUseNativeUa());
+ useNativeUserAgent.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ Settings.setUseNativeUa(!Settings.getUseNativeUa());
+ useNativeUserAgent.setChecked(Settings.getUseNativeUa());
+ }
+ });
+
// Altitude settings
EditText altitudeEdit = (EditText) findViewById(R.id.altitude);
altitudeEdit.setText(String.valueOf(Settings.getAltCorrection()));
diff --git a/main/src/cgeo/geocaching/network/Network.java b/main/src/cgeo/geocaching/network/Network.java
index 5911146..dbffdc3 100644
--- a/main/src/cgeo/geocaching/network/Network.java
+++ b/main/src/cgeo/geocaching/network/Network.java
@@ -1,5 +1,7 @@
package cgeo.geocaching.network;
+import cgeo.geocaching.Settings;
+import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.files.LocalStorage;
import cgeo.geocaching.utils.BaseUtils;
import cgeo.geocaching.utils.Log;
@@ -32,11 +34,13 @@ import ch.boye.httpclientandroidlib.params.CoreProtocolPNames;
import ch.boye.httpclientandroidlib.params.HttpParams;
import ch.boye.httpclientandroidlib.protocol.HttpContext;
import ch.boye.httpclientandroidlib.util.EntityUtils;
+
import org.apache.commons.lang3.StringUtils;
import org.json.JSONException;
import org.json.JSONObject;
import android.net.Uri;
+import android.webkit.WebView;
import java.io.File;
import java.io.IOException;
@@ -47,7 +51,10 @@ public abstract class Network {
private static final int NB_DOWNLOAD_RETRIES = 4;
/** User agent id */
- private final static String USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1";
+ private final static String PC_USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1";
+ /** Native user agent **/
+ private final static String NATIVE_USER_AGENT = new WebView(cgeoapplication.getInstance()).getSettings().getUserAgentString();
+
private static final String PATTERN_PASSWORD = "(?<=[\\?&])[Pp]ass(w(or)?d)?=[^&#$]+";
private final static HttpParams clientParams = new BasicHttpParams();
@@ -230,7 +237,11 @@ public abstract class Network {
"X-Requested-With", "XMLHttpRequest")) {
request.setHeader(header.getName(), header.getValue());
}
- request.getParams().setParameter(CoreProtocolPNames.USER_AGENT, Network.USER_AGENT);
+ if (Settings.getUseNativeUa()) {
+ request.getParams().setParameter(CoreProtocolPNames.USER_AGENT, Network.PC_USER_AGENT);
+ } else {
+ request.getParams().setParameter(CoreProtocolPNames.USER_AGENT, Network.NATIVE_USER_AGENT);
+ }
}
/**