From 8f44c516e11cb8da5c0053046a5bab4cc018da7b Mon Sep 17 00:00:00 2001 From: Nathan Freitas Date: Fri, 23 Aug 2013 12:56:04 -0400 Subject: [PATCH] make sure binaries and config files are updated --- .../torproject/android/Rotate3dAnimation.java | 76 +++++++++++++++++++ src/org/torproject/android/TorConstants.java | 2 + .../android/service/TorService.java | 3 +- .../android/service/TorServiceConstants.java | 2 +- 4 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 src/org/torproject/android/Rotate3dAnimation.java diff --git a/src/org/torproject/android/Rotate3dAnimation.java b/src/org/torproject/android/Rotate3dAnimation.java new file mode 100644 index 00000000..10bb52e8 --- /dev/null +++ b/src/org/torproject/android/Rotate3dAnimation.java @@ -0,0 +1,76 @@ +package org.torproject.android; + +import android.graphics.Camera; +import android.graphics.Matrix; +import android.view.animation.Animation; +import android.view.animation.Transformation; + +/** + * An animation that rotates the view on the Y axis between two specified angles. + * This animation also adds a translation on the Z axis (depth) to improve the effect. + */ +public class Rotate3dAnimation extends Animation { + private final float mFromDegrees; + private final float mToDegrees; + private final float mCenterX; + private final float mCenterY; + private final float mDepthZ; + private final boolean mReverse; + private Camera mCamera; + + /** + * Creates a new 3D rotation on the Y axis. The rotation is defined by its + * start angle and its end angle. Both angles are in degrees. The rotation + * is performed around a center point on the 2D space, definied by a pair + * of X and Y coordinates, called centerX and centerY. When the animation + * starts, a translation on the Z axis (depth) is performed. The length + * of the translation can be specified, as well as whether the translation + * should be reversed in time. + * + * @param fromDegrees the start angle of the 3D rotation + * @param toDegrees the end angle of the 3D rotation + * @param centerX the X center of the 3D rotation + * @param centerY the Y center of the 3D rotation + * @param reverse true if the translation should be reversed, false otherwise + */ + public Rotate3dAnimation(float fromDegrees, float toDegrees, + float centerX, float centerY, float depthZ, boolean reverse) { + mFromDegrees = fromDegrees; + mToDegrees = toDegrees; + mCenterX = centerX; + mCenterY = centerY; + mDepthZ = depthZ; + mReverse = reverse; + } + + @Override + public void initialize(int width, int height, int parentWidth, int parentHeight) { + super.initialize(width, height, parentWidth, parentHeight); + mCamera = new Camera(); + } + + @Override + protected void applyTransformation(float interpolatedTime, Transformation t) { + final float fromDegrees = mFromDegrees; + float degrees = fromDegrees + ((mToDegrees - fromDegrees) * interpolatedTime); + + final float centerX = mCenterX; + final float centerY = mCenterY; + final Camera camera = mCamera; + + final Matrix matrix = t.getMatrix(); + + camera.save(); + if (mReverse) { + camera.translate(0.0f, 0.0f, mDepthZ * interpolatedTime); + } else { + camera.translate(0.0f, 0.0f, mDepthZ * (1.0f - interpolatedTime)); + } + camera.rotateY(degrees); + camera.getMatrix(matrix); + camera.restore(); + + matrix.preTranslate(-centerX, -centerY); + matrix.postTranslate(centerX, centerY); + } +} diff --git a/src/org/torproject/android/TorConstants.java b/src/org/torproject/android/TorConstants.java index 592b6ce4..9618747e 100644 --- a/src/org/torproject/android/TorConstants.java +++ b/src/org/torproject/android/TorConstants.java @@ -51,4 +51,6 @@ public interface TorConstants { public final static String PREF_DEFAULT_LOCALE = "pref_default_locale"; public final static String PREF_DISABLE_NETWORK = "pref_disable_network"; + + public final static String PREF_TOR_SHARED_PREFS = "torprefs"; } diff --git a/src/org/torproject/android/service/TorService.java b/src/org/torproject/android/service/TorService.java index 67ffc3cf..04b6b1ea 100644 --- a/src/org/torproject/android/service/TorService.java +++ b/src/org/torproject/android/service/TorService.java @@ -57,7 +57,7 @@ import android.util.Log; public class TorService extends Service implements TorServiceConstants, TorConstants, Runnable, EventHandler { - public static boolean ENABLE_DEBUG_LOG = true; + public static boolean ENABLE_DEBUG_LOG = false; private static int currentStatus = STATUS_OFF; @@ -546,6 +546,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst public boolean checkTorBinaries (boolean forceInstall) throws Exception { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); //check and install iptables diff --git a/src/org/torproject/android/service/TorServiceConstants.java b/src/org/torproject/android/service/TorServiceConstants.java index c12d492a..50cc4d92 100644 --- a/src/org/torproject/android/service/TorServiceConstants.java +++ b/src/org/torproject/android/service/TorServiceConstants.java @@ -76,7 +76,7 @@ public interface TorServiceConstants { public static final int DISABLE_TOR_MSG = 3; public static final int LOG_MSG = 4; - public static final String BINARY_TOR_VERSION = "0.2.4.16-rc"; + public static final String BINARY_TOR_VERSION = "0.2.4.16-rc-bump"; public static final String BINARY_PRIVOXY_VERSION = "3.0.12"; public static final String PREF_BINARY_TOR_VERSION_INSTALLED = "BINARY_TOR_VERSION_INTALLED"; public static final String PREF_BINARY_PRIVOXY_VERSION_INSTALLED = "BINARY_PRIVOXY_VERSION_INTALLED";