diff options
12 files changed, 273 insertions, 18 deletions
| diff --git a/app/src/main/java/de/blinkt/openvpn/VpnProfile.java b/app/src/main/java/de/blinkt/openvpn/VpnProfile.java index da0298f2..93d0d386 100644 --- a/app/src/main/java/de/blinkt/openvpn/VpnProfile.java +++ b/app/src/main/java/de/blinkt/openvpn/VpnProfile.java @@ -4,6 +4,10 @@ import se.leap.bitmaskclient.R;  import se.leap.bitmaskclient.R; +import se.leap.bitmaskclient.Dashboard; +import se.leap.bitmaskclient.EIP; +import se.leap.bitmaskclient.Provider; +  import android.content.Context;  import android.content.Intent;  import android.content.SharedPreferences; @@ -81,7 +85,7 @@ public class VpnProfile implements Serializable {      // but needs to keep wrong name to guarante loading of old      // profiles      public transient boolean profileDleted = false; -    public int mAuthenticationType = TYPE_KEYSTORE; +    public int mAuthenticationType = TYPE_CERTIFICATES;      public String mName;      public String mAlias;      public String mClientCertFilename; @@ -256,17 +260,22 @@ public class VpnProfile implements Serializable {              cfg += " tcp-client\n"; +	android.util.Log.d("vpnprofile", Integer.toString(mAuthenticationType));          switch (mAuthenticationType) {              case VpnProfile.TYPE_USERPASS_CERTIFICATES:                  cfg += "auth-user-pass\n";              case VpnProfile.TYPE_CERTIFICATES:                  // Ca -                cfg += insertFileData("ca", mCaFilename); - -                // Client Cert + Key -                cfg += insertFileData("key", mClientKeyFilename); -                cfg += insertFileData("cert", mClientCertFilename); - +                // cfg += insertFileData("ca", mCaFilename); + +                // // Client Cert + Key +                // cfg += insertFileData("key", mClientKeyFilename); +                // cfg += insertFileData("cert", mClientCertFilename); +		// FIXME This is all we need...The whole switch statement can go... +		SharedPreferences preferences = context.getSharedPreferences(Dashboard.SHARED_PREFERENCES, context.MODE_PRIVATE); +		cfg+="<ca>\n"+preferences.getString(Provider.CA_CERT, "")+"\n</ca>\n"; +		cfg+="<key>\n"+preferences.getString(EIP.PRIVATE_KEY, "")+"\n</key>\n"; +		cfg+="<cert>\n"+preferences.getString(EIP.CERTIFICATE, "")+"\n</cert>\n";                  break;              case VpnProfile.TYPE_USERPASS_PKCS12:                  cfg += "auth-user-pass\n"; @@ -557,8 +566,8 @@ public class VpnProfile implements Serializable {          Intent intent = new Intent(context, OpenVpnService.class);          if (mAuthenticationType == VpnProfile.TYPE_KEYSTORE || mAuthenticationType == VpnProfile.TYPE_USERPASS_KEYSTORE) { -            if (getKeyStoreCertificates(context) == null) -                return null; +            // if (getKeyStoreCertificates(context) == null) +            //     return null;          }          intent.putExtra(prefix + ".ARGV", buildOpenvpnArgv(context.getCacheDir())); diff --git a/app/src/main/java/de/blinkt/openvpn/views/SeekBarTicks.java b/app/src/main/java/de/blinkt/openvpn/views/SeekBarTicks.java new file mode 100644 index 00000000..88e8e164 --- /dev/null +++ b/app/src/main/java/de/blinkt/openvpn/views/SeekBarTicks.java @@ -0,0 +1,69 @@ +package de.blinkt.openvpn.views; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.drawable.Drawable; +import android.util.AttributeSet; +import android.util.TypedValue; +import android.view.ViewConfiguration; +import android.widget.SeekBar; + +public class SeekBarTicks extends SeekBar { +    private Paint mTickPaint; +    private float mTickHeight; + +    private float tickHeightRatio = 0.6f; + +    public SeekBarTicks(Context context, AttributeSet attrs) { +        super (context, attrs); + +        initTicks (context, attrs, android.R.attr.seekBarStyle); +    } + + +    public SeekBarTicks(Context context, AttributeSet attrs, int defStyle) { +        super(context, attrs, defStyle); + +        initTicks (context, attrs, defStyle); + +        /*mTickHeight = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, +                tickHeightDP, +                ctx.getResources().getDisplayMetrics()); */ +    } + +    private void initTicks(Context context, AttributeSet attrs, int defStyle) { +        TypedArray a = context.obtainStyledAttributes(attrs, +                new int[] { android.R.attr.secondaryProgress }, defStyle, 0); + + +        int tickColor = a.getColor(0, android.R.color.black); +        mTickPaint = new Paint(); +        mTickPaint.setColor( context.getResources().getColor(tickColor)); +        a.recycle(); +    } + + +    @Override +    protected synchronized void onDraw(Canvas canvas) { +        drawTicks(canvas); +        super.onDraw(canvas); +    } + +    private void drawTicks(Canvas canvas) { + +        final int available = getWidth() - getPaddingLeft() - getPaddingRight(); +        final int availableHeight = getHeight() - getPaddingBottom() - getPaddingTop(); + +        int extrapadding = (int) ((availableHeight- (availableHeight * tickHeightRatio))/2); + +        int tickSpacing = available / (getMax() ); + +        for (int i = 1; i < getMax(); i++) { +            final float x = getPaddingLeft() + i * tickSpacing; + +            canvas.drawLine(x, getPaddingTop()+extrapadding, x, getHeight()-getPaddingBottom()-extrapadding, mTickPaint); +        } +    } +} diff --git a/app/src/main/res/values-sw600dp/dimens.xml b/app/src/main/res/values-sw600dp/dimens.xml new file mode 100644 index 00000000..b83bb856 --- /dev/null +++ b/app/src/main/res/values-sw600dp/dimens.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> +    <bool name="logSildersAlwaysVisible">true</bool> + +</resources>
\ No newline at end of file diff --git a/app/src/main/res/values-sw600dp/styles.xml b/app/src/main/res/values-sw600dp/styles.xml new file mode 100644 index 00000000..de0bb55d --- /dev/null +++ b/app/src/main/res/values-sw600dp/styles.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + +    <dimen name="stdpadding">16dp</dimen> + +</resources>
\ No newline at end of file diff --git a/app/src/main/res/values/untranslatable.xml b/app/src/main/res/values/untranslatable.xml index 4efe0584..40513029 100644 --- a/app/src/main/res/values/untranslatable.xml +++ b/app/src/main/res/values/untranslatable.xml @@ -587,4 +587,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  </resources>
\ No newline at end of file diff --git a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/VpnProfile.java b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/VpnProfile.java index 0596684c..bdfa51c3 100644 --- a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/VpnProfile.java +++ b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/VpnProfile.java @@ -2,6 +2,10 @@ package de.blinkt.openvpn;  import se.leap.bitmaskclient.R; +import se.leap.bitmaskclient.Dashboard; +import se.leap.bitmaskclient.EIP; +import se.leap.bitmaskclient.Provider; +  import android.content.Context;  import android.content.Intent;  import android.content.SharedPreferences; @@ -79,7 +83,7 @@ public class VpnProfile implements Serializable {      // but needs to keep wrong name to guarante loading of old      // profiles      public transient boolean profileDleted = false; -    public int mAuthenticationType = TYPE_KEYSTORE; +    public int mAuthenticationType = TYPE_CERTIFICATES;      public String mName;      public String mAlias;      public String mClientCertFilename; @@ -254,17 +258,22 @@ public class VpnProfile implements Serializable {              cfg += " tcp-client\n"; +	android.util.Log.d("vpnprofile", Integer.toString(mAuthenticationType));          switch (mAuthenticationType) {              case VpnProfile.TYPE_USERPASS_CERTIFICATES:                  cfg += "auth-user-pass\n";              case VpnProfile.TYPE_CERTIFICATES:                  // Ca -                cfg += insertFileData("ca", mCaFilename); - -                // Client Cert + Key -                cfg += insertFileData("key", mClientKeyFilename); -                cfg += insertFileData("cert", mClientCertFilename); - +                // cfg += insertFileData("ca", mCaFilename); + +                // // Client Cert + Key +                // cfg += insertFileData("key", mClientKeyFilename); +                // cfg += insertFileData("cert", mClientCertFilename); +		// FIXME This is all we need...The whole switch statement can go... +		SharedPreferences preferences = context.getSharedPreferences(Dashboard.SHARED_PREFERENCES, context.MODE_PRIVATE); +		cfg+="<ca>\n"+preferences.getString(Provider.CA_CERT, "")+"\n</ca>\n"; +		cfg+="<key>\n"+preferences.getString(EIP.PRIVATE_KEY, "")+"\n</key>\n"; +		cfg+="<cert>\n"+preferences.getString(EIP.CERTIFICATE, "")+"\n</cert>\n";                  break;              case VpnProfile.TYPE_USERPASS_PKCS12:                  cfg += "auth-user-pass\n"; @@ -555,8 +564,8 @@ public class VpnProfile implements Serializable {          Intent intent = new Intent(context, OpenVpnService.class);          if (mAuthenticationType == VpnProfile.TYPE_KEYSTORE || mAuthenticationType == VpnProfile.TYPE_USERPASS_KEYSTORE) { -            if (getKeyStoreCertificates(context) == null) -                return null; +            // if (getKeyStoreCertificates(context) == null) +            //     return null;          }          intent.putExtra(prefix + ".ARGV", buildOpenvpnArgv(context.getCacheDir())); diff --git a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/views/SeekBarTicks.java b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/views/SeekBarTicks.java new file mode 100644 index 00000000..88e8e164 --- /dev/null +++ b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/views/SeekBarTicks.java @@ -0,0 +1,69 @@ +package de.blinkt.openvpn.views; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.drawable.Drawable; +import android.util.AttributeSet; +import android.util.TypedValue; +import android.view.ViewConfiguration; +import android.widget.SeekBar; + +public class SeekBarTicks extends SeekBar { +    private Paint mTickPaint; +    private float mTickHeight; + +    private float tickHeightRatio = 0.6f; + +    public SeekBarTicks(Context context, AttributeSet attrs) { +        super (context, attrs); + +        initTicks (context, attrs, android.R.attr.seekBarStyle); +    } + + +    public SeekBarTicks(Context context, AttributeSet attrs, int defStyle) { +        super(context, attrs, defStyle); + +        initTicks (context, attrs, defStyle); + +        /*mTickHeight = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, +                tickHeightDP, +                ctx.getResources().getDisplayMetrics()); */ +    } + +    private void initTicks(Context context, AttributeSet attrs, int defStyle) { +        TypedArray a = context.obtainStyledAttributes(attrs, +                new int[] { android.R.attr.secondaryProgress }, defStyle, 0); + + +        int tickColor = a.getColor(0, android.R.color.black); +        mTickPaint = new Paint(); +        mTickPaint.setColor( context.getResources().getColor(tickColor)); +        a.recycle(); +    } + + +    @Override +    protected synchronized void onDraw(Canvas canvas) { +        drawTicks(canvas); +        super.onDraw(canvas); +    } + +    private void drawTicks(Canvas canvas) { + +        final int available = getWidth() - getPaddingLeft() - getPaddingRight(); +        final int availableHeight = getHeight() - getPaddingBottom() - getPaddingTop(); + +        int extrapadding = (int) ((availableHeight- (availableHeight * tickHeightRatio))/2); + +        int tickSpacing = available / (getMax() ); + +        for (int i = 1; i < getMax(); i++) { +            final float x = getPaddingLeft() + i * tickSpacing; + +            canvas.drawLine(x, getPaddingTop()+extrapadding, x, getHeight()-getPaddingBottom()-extrapadding, mTickPaint); +        } +    } +} diff --git a/ics-openvpn-stripped/main/src/main/res/values-sw600dp/dimens.xml b/ics-openvpn-stripped/main/src/main/res/values-sw600dp/dimens.xml new file mode 100644 index 00000000..b83bb856 --- /dev/null +++ b/ics-openvpn-stripped/main/src/main/res/values-sw600dp/dimens.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> +    <bool name="logSildersAlwaysVisible">true</bool> + +</resources>
\ No newline at end of file diff --git a/ics-openvpn-stripped/main/src/main/res/values-sw600dp/styles.xml b/ics-openvpn-stripped/main/src/main/res/values-sw600dp/styles.xml new file mode 100644 index 00000000..de0bb55d --- /dev/null +++ b/ics-openvpn-stripped/main/src/main/res/values-sw600dp/styles.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + +    <dimen name="stdpadding">16dp</dimen> + +</resources>
\ No newline at end of file diff --git a/ics-openvpn-stripped/remoteExample/src/main/res/values-w820dp/dimens.xml b/ics-openvpn-stripped/remoteExample/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 00000000..63fc8164 --- /dev/null +++ b/ics-openvpn-stripped/remoteExample/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,6 @@ +<resources> +    <!-- Example customization of dimensions originally defined in res/values/dimens.xml +         (such as screen margins) for screens with more than 820dp of available width. This +         would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). --> +    <dimen name="activity_horizontal_margin">64dp</dimen> +</resources> diff --git a/ics-openvpn-stripped/remoteExample/src/main/res/values/dimens.xml b/ics-openvpn-stripped/remoteExample/src/main/res/values/dimens.xml new file mode 100644 index 00000000..a0171a70 --- /dev/null +++ b/ics-openvpn-stripped/remoteExample/src/main/res/values/dimens.xml @@ -0,0 +1,6 @@ +<resources> +    <!-- Default screen margins, per the Android Design guidelines. --> +    <dimen name="activity_horizontal_margin">16dp</dimen> +    <dimen name="activity_vertical_margin">16dp</dimen> + +    </resources> diff --git a/ics-openvpn-stripped/remoteExample/src/main/res/values/styles.xml b/ics-openvpn-stripped/remoteExample/src/main/res/values/styles.xml new file mode 100644 index 00000000..ff6c9d2c --- /dev/null +++ b/ics-openvpn-stripped/remoteExample/src/main/res/values/styles.xml @@ -0,0 +1,8 @@ +<resources> + +    <!-- Base application theme. --> +    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> +        <!-- Customize your theme here. --> +    </style> + +</resources> | 
