summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml4
-rw-r--r--res/layout/faq.xml8
-rw-r--r--res/values/strings.xml2
-rw-r--r--src/de/blinkt/openvpn/FaqFragment.java18
4 files changed, 21 insertions, 11 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 70ff776..ad16b0a 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -17,8 +17,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.blinkt.openvpn"
- android:versionCode="51"
- android:versionName="0.5.24" >
+ android:versionCode="52"
+ android:versionName="0.5.25" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
diff --git a/res/layout/faq.xml b/res/layout/faq.xml
index dc59131..c4fd57f 100644
--- a/res/layout/faq.xml
+++ b/res/layout/faq.xml
@@ -34,6 +34,14 @@
<TextView
style="@style/faqhead"
+ android:text="@string/battery_consumption_title" />
+
+ <TextView
+ android:id="@+id/faq_battery"
+ style="@style/faqitem" />
+
+ <TextView
+ style="@style/faqhead"
android:text="@string/tap_mode" />
<TextView
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 69fb9e3..a0d1a4f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -227,4 +227,6 @@
<string name="translation">Translation</string>
<string name="openvpn_log">OpenVPN Log</string>
<string name="import_config">Import OpenVPN configuration</string>
+ <string name="battery_consumption_title">Battery consumption</string>
+ <string name="baterry_consumption">In my personal tests the main reason for high battery consumption of OpenVPN are the keepalive packets. Most OpenVPN servers have a configuration directive like \'keepalive 10 60\' which translates to a keepalive packet from client to server and server to client every ten seconds. &lt;p> While these packets are small and do not use much traffic, they keep the mobile radio network busy and increase the energy consumption. &lt;p> This keepalive setting cannot be changed on the client. Only the system administrator of the OpenVPN can change the setting. &lt;p> Unfortunatly using a keepalive larger than 60 seconds with udp has problems with some NAT gateways which terminate the state for a connnection after a short timeout (60s in my tests). Using TCP with long keepalive timeout works but has the TCP over TCP problem. (See &lt;a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\">Why TCP Over TCP Is A Bad Ide&lt;/a>)</string>
</resources>
diff --git a/src/de/blinkt/openvpn/FaqFragment.java b/src/de/blinkt/openvpn/FaqFragment.java
index c4d1913..7902975 100644
--- a/src/de/blinkt/openvpn/FaqFragment.java
+++ b/src/de/blinkt/openvpn/FaqFragment.java
@@ -3,7 +3,6 @@ package de.blinkt.openvpn;
import android.app.Fragment;
import android.os.Bundle;
import android.text.Html;
-import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
import android.view.View;
@@ -23,14 +22,9 @@ public class FaqFragment extends Fragment {
Bundle savedInstanceState) {
View v= inflater.inflate(R.layout.faq, container, false);
- TextView bImages = (TextView) v.findViewById(R.id.brokenimages);
- bImages.setText(Html.fromHtml(getActivity().getString(R.string.broken_images_faq)));
- bImages.setMovementMethod(LinkMovementMethod.getInstance());
-
- TextView quickstart = (TextView) v.findViewById(R.id.faq_howto);
- Spanned htmltext = Html.fromHtml(getActivity().getString(R.string.faq_howto));
- quickstart.setText(htmltext);
- quickstart.setMovementMethod(LinkMovementMethod.getInstance());
+ insertHtmlEntry(v,R.id.brokenimages,R.string.broken_images_faq);
+ insertHtmlEntry(v,R.id.faq_howto,R.string.faq_howto);
+ insertHtmlEntry(v, R.id.faq_battery, R.string.baterry_consumption);
return v;
@@ -38,4 +32,10 @@ public class FaqFragment extends Fragment {
}
+ private void insertHtmlEntry (View v, int viewId, int stringId) {
+ TextView faqitem = (TextView) v.findViewById(viewId);
+ faqitem.setText(Html.fromHtml(getActivity().getString(stringId)));
+ faqitem.setMovementMethod(LinkMovementMethod.getInstance());
+ }
+
}