summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.txt2
-rw-r--r--res/layout/about.xml17
-rw-r--r--res/layout/faq.xml45
-rw-r--r--res/values/strings.xml17
-rw-r--r--res/values/styles.xml15
-rw-r--r--res/xml/main_headers.xml6
-rw-r--r--src/de/blinkt/openvpn/AboutFragment.java8
-rw-r--r--src/de/blinkt/openvpn/AboutPreference.java14
-rw-r--r--src/de/blinkt/openvpn/LaunchVPN.java2
-rw-r--r--todo.txt22
10 files changed, 121 insertions, 27 deletions
diff --git a/README.txt b/README.txt
index 8be3c68..62c0caa 100644
--- a/README.txt
+++ b/README.txt
@@ -3,4 +3,4 @@ This is my first Android project, so some things my be done in a completely stup
I am for example not really sure if it was a good idea to use the Preferences Framework for the preferences.
-See also the file todo.txt for idea/not yet implemented features \ No newline at end of file
+See also the file todo.txt for ideas/not yet implemented features. \ No newline at end of file
diff --git a/res/layout/about.xml b/res/layout/about.xml
index f8f10a2..a66a0cc 100644
--- a/res/layout/about.xml
+++ b/res/layout/about.xml
@@ -13,12 +13,25 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/version" />
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="10sp" />
+
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@string/copyright_blinktgui" />
-
+ android:text="@string/copyright_blinktgui"
+ android:autoLink="all" />
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="10sp" />
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/copyright_guicode"
+ android:autoLink="all" />
+
<Space
android:layout_width="match_parent"
android:layout_height="20sp" />
diff --git a/res/layout/faq.xml b/res/layout/faq.xml
new file mode 100644
index 0000000..8cdf732
--- /dev/null
+++ b/res/layout/faq.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" >
+
+ <TextView
+ style="@style/faqhead"
+ android:text="@string/tap_mode" />
+
+ <TextView
+ style="@style/faqitem"
+ android:text="@string/faq_tap_mode" />
+
+ <TextView
+ style="@style/faqhead"
+ android:text="@string/copying_log_entries" />
+
+ <TextView
+ style="@style/faqitem"
+ android:text="@string/faq_copying"/>
+
+
+ <TextView
+ style="@style/faqhead"
+ android:text="@string/tap_mode" />
+
+ <TextView
+ style="@style/faqitem"
+ android:text="@string/tap_faq2" />
+
+ <TextView
+ style="@style/faqhead"
+ android:text="@string/tap_mode" />
+
+ <TextView
+ style="@style/faqitem"
+ android:text="@string/tap_faq3" />
+ </LinearLayout>
+
+</ScrollView> \ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 1ed40d9..5d7b539 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -31,7 +31,7 @@
<string name="defaultport">1194</string>
- <string name="app_name">File dialog</string>
+ <string name="app_name">File dialog</string>
<string name="location">Location</string>
<string name="cant_read_folder">folder can\'t be read!</string>
<string name="nnew">New</string>
@@ -55,7 +55,8 @@
<string name="opevpn_copyright">Copyright © 2002–2010 OpenVPN Technologies, Inc. &lt;sales@openvpn.net&gt;\n
"OpenVPN" is a trademark of OpenVPN Technologies, Inc.\n</string>
- <string name="copyright_blinktgui">Copyright 2012 Arne Schwabe</string>
+ <string name="copyright_blinktgui">Copyright 2012\nArne Schwabe &lt;arne@rfc2549.org></string>
+ <string name="copyright_guicode">Source code and issue tracker available under http://code.google.com/p/ics-openvpn/ </string>
<string name="copyright_others">The program uses the following components. See the source for full details on the licenses</string>
<string name="copyright_file_dialog">File Dialog for the Android\nAlexander Ponomarev"</string>
<string name="lzo_copyright">Copyright © 1996 – 2011 Markus Franz Xaver Johannes Oberhumer</string>
@@ -167,10 +168,18 @@
<string name="route_not_cidr">Cannot make sense of %1$s and %2$s as IP route with CIDR netmask, using /32 as netmask.</string>
<string name="route_not_netip">Corrected route %1$s/%2$s to %3$s/%2$s</string>
<string name="keychain_access">Cannot accces the Android Keychain Certificates. If you restored a backup of the app/app settings reselect the certificate to recreate the permission to access the certificate.</string>
- <string name="version_info">Version: %s</string>
+ <string name="version_info">%1$s %2$s</string>
<string name="could_not_write_log">Could not write log contents to file</string>
<string name="send_logfile">Send Logfile</string>
<string name="send">Send</string>
<string name="ics_openvpn_log_file">ICS Openvpn log file</string>
- <string name="copied_entry">Copied log entry to clip board</string>
+ <string name="copied_entry">Copied log entry to clip board</string>
+ <string name="tap_mode">Tap Mode</string>
+ <string name="faq_tap_mode">Tap Mode is not possible with the non root VPN api. Therefore this application cannot provide tap support</string>
+ <string name="tap_faq2">Again? Are you kidding? No tap mode is really not supported and sending more mail aksing if it will be supported will not help.</string>
+ <string name="tap_faq3">A third time? Actually one could write a a tap emulator based on tun that would add layer2 information on send and strip layer2 information on receive. But this tap emulator would have to implement also ARP and possible a DHCP client. I am not aware of anybody doing any work in this direction. Contact me if you want to start coding on this.</string>
+ <string name="faq">FAQ</string>
+ <string name="faq_summary">frequently asked questions and some adivce</string>
+ <string name="copying_log_entries">Copying log entries</string>
+ <string name="faq_copying">To copy a single log entry press and and hold on the log entry. To copy/send the whole log use the Send Log option. Use the hardware menu button if not visible in the gui.</string>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 7ae97cd..2c627bf 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -24,6 +24,21 @@
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
<item name="android:singleLine">true</item>
</style>
+
+ <style name="faqitem">
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
+ </style>
+
+
+ <style name="faqhead">
+ <item name="android:paddingTop">10sp</item>
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:textAppearance">?android:attr/textAppearanceLarge</item>
+ <item name="android:singleLine">true</item>
+ </style>
<style name="accountSetupButton">
<item name="android:layout_width">160sp</item>
diff --git a/res/xml/main_headers.xml b/res/xml/main_headers.xml
index 0270f9b..71913f4 100644
--- a/res/xml/main_headers.xml
+++ b/res/xml/main_headers.xml
@@ -5,6 +5,12 @@
android:fragment="de.blinkt.openvpn.VPNProfileList"
android:summary="@string/vpn_list_summary"
android:title="@string/vpn_list_title" />
+
+ <header
+ android:fragment="de.blinkt.openvpn.FaqFragment"
+ android:summary="@string/faq_summary"
+ android:title="@string/faq" />
+
<header
android:fragment="de.blinkt.openvpn.AboutFragment"
android:summary="@string/about_summary"
diff --git a/src/de/blinkt/openvpn/AboutFragment.java b/src/de/blinkt/openvpn/AboutFragment.java
index 065e53b..7713229 100644
--- a/src/de/blinkt/openvpn/AboutFragment.java
+++ b/src/de/blinkt/openvpn/AboutFragment.java
@@ -1,6 +1,7 @@
package de.blinkt.openvpn;
import android.app.Fragment;
+import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -23,14 +24,17 @@ public class AboutFragment extends Fragment {
TextView ver = (TextView) v.findViewById(R.id.version);
String version;
+ String name="Openvpn";
try {
- version = getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), 0).versionName;
+ PackageInfo packageinfo = getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), 0);
+ version = packageinfo.versionName;
+ name = getString(R.string.app);
} catch (NameNotFoundException e) {
version = "error fetching version";
}
- ver.setText(getString(R.string.version_info,version));
+ ver.setText(getString(R.string.version_info,name,version));
return v;
}
diff --git a/src/de/blinkt/openvpn/AboutPreference.java b/src/de/blinkt/openvpn/AboutPreference.java
deleted file mode 100644
index ff6c611..0000000
--- a/src/de/blinkt/openvpn/AboutPreference.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package de.blinkt.openvpn;
-
-import android.content.Context;
-import android.preference.Preference;
-import android.util.AttributeSet;
-
-public class AboutPreference extends Preference {
-
- public AboutPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- setWidgetLayoutResource(R.layout.about);
- }
-
-}
diff --git a/src/de/blinkt/openvpn/LaunchVPN.java b/src/de/blinkt/openvpn/LaunchVPN.java
index 28abaf3..88c14da 100644
--- a/src/de/blinkt/openvpn/LaunchVPN.java
+++ b/src/de/blinkt/openvpn/LaunchVPN.java
@@ -291,7 +291,7 @@ public class LaunchVPN extends ListActivity implements OnItemClickListener {
try {
startActivityForResult(intent, START_VPN_PROFILE);
} catch (ActivityNotFoundException ane){
- Toast.makeText(this, "Your image does not support the VPNService API,sorry :(", Toast.LENGTH_LONG);
+ Toast.makeText(this, "Your image does not support the VPNService API,sorry :(", Toast.LENGTH_LONG).show();
}
} else {
onActivityResult(START_VPN_PROFILE, Activity.RESULT_OK, null);
diff --git a/todo.txt b/todo.txt
index 0b58dc5..c12a014 100644
--- a/todo.txt
+++ b/todo.txt
@@ -1,3 +1,5 @@
+Ideas:
+
- Implement tabbed filebrowser with
1. tab file selection
2. tab inline file for safer storage
@@ -11,7 +13,13 @@
- finish .ovpn -> configuration importer
- depends on inline file storage, since config files can include inline files
- -
+
+- implement an encryption for profiles, so no sensitive data has be stored in plain text
+ - encrypt/decrypt with android private storage key (+no user input required)
+
+- implement general settings dialog
+ - encryption of profiles
+ - Speed/Transfered in notification bar (byte counter of managment)
Missing configuration options:
@@ -19,10 +27,18 @@ IPv6 support:
- Enable IPv6 (tun-ipv6)
- Implementing/testing IPv6 route/ifconfig/DNS Server
+Tap support:
+- People still ask how to do tap support. :(
+- Put statements that tap is not supported everywhere.
+- Actually it is possible to emulate tap with tun device, a minimal implementation would have to do:
+ - generate random mac
+ - strip macs header on receive
+ - append mac header on send
+ - implement arp, possible the most difficult task ...
+ - need to chose right mac of receiver
Requested by users:
cipher
-mtu-link
auth
-
+mtu-link