diff options
-rw-r--r-- | README.txt | 2 | ||||
-rw-r--r-- | res/layout/about.xml | 17 | ||||
-rw-r--r-- | res/layout/faq.xml | 45 | ||||
-rw-r--r-- | res/values/strings.xml | 17 | ||||
-rw-r--r-- | res/values/styles.xml | 15 | ||||
-rw-r--r-- | res/xml/main_headers.xml | 6 | ||||
-rw-r--r-- | src/de/blinkt/openvpn/AboutFragment.java | 8 | ||||
-rw-r--r-- | src/de/blinkt/openvpn/AboutPreference.java | 14 | ||||
-rw-r--r-- | src/de/blinkt/openvpn/LaunchVPN.java | 2 | ||||
-rw-r--r-- | todo.txt | 22 |
10 files changed, 121 insertions, 27 deletions
@@ -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 f8f10a2a..a66a0cc9 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 00000000..8cdf7326 --- /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 1ed40d9e..5d7b5396 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. <sales@openvpn.net>\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 <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 7ae97cd1..2c627bff 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 0270f9bf..71913f49 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 065e53bc..77132299 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 ff6c611d..00000000 --- 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 28abaf3d..88c14da3 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); @@ -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 |