[tor-commits] [orbot/master] added GUI support for flinging to a newnym identity
n8fr8 at torproject.org
n8fr8 at torproject.org
Fri Aug 23 20:59:49 UTC 2013
commit e84ee7101d50ba94aea419a9c2044eeab693c534
Author: Nathan Freitas <nathan at freitas.net>
Date: Fri Aug 23 12:47:31 2013 -0400
added GUI support for flinging to a newnym identity
---
res/drawable/torstarting.png | Bin 74011 -> 77523 bytes
res/raw/torrc | 6 ++-
res/values/strings.xml | 1 +
src/org/torproject/android/Orbot.java | 68 +++++++++++++++++++++++++++++++--
4 files changed, 70 insertions(+), 5 deletions(-)
diff --git a/res/drawable/torstarting.png b/res/drawable/torstarting.png
index 31c4dd7..7cbf9fe 100644
Binary files a/res/drawable/torstarting.png and b/res/drawable/torstarting.png differ
diff --git a/res/raw/torrc b/res/raw/torrc
index fd5b506..e7dc4b2 100644
--- a/res/raw/torrc
+++ b/res/raw/torrc
@@ -4,11 +4,13 @@ SafeSocks 0
TestSocks 1
WarnUnsafeSocks 1
Log notice stdout
-ControlPort 9051
ControlListenAddress 127.0.0.1
+ControlPort 9051
CookieAuthentication 1
TransPort 9040
TransListenAddress 127.0.0.1
DNSPort 5400
DNSListenAddress 127.0.0.1
-AvoidDiskWrites 1
\ No newline at end of file
+AvoidDiskWrites 1
+AutomapHostsOnResolve 1
+VirtualAddrNetwork 10.192.0.0/10
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index bca3086..2d0c671 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -240,4 +240,5 @@
<string name="up">up</string>
<string name="pref_disable_network_title">Network Auto-Sleep</string>
<string name="pref_disable_network_summary">Put Tor to sleep when there is no network connectivity</string>
+ <string name="newnym">You\'ve switched to a new Tor identity!</string>
</resources>
diff --git a/src/org/torproject/android/Orbot.java b/src/org/torproject/android/Orbot.java
index 9f4229b..1ac1656 100644
--- a/src/org/torproject/android/Orbot.java
+++ b/src/org/torproject/android/Orbot.java
@@ -27,7 +27,6 @@ import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Configuration;
-import android.drm.DrmStore.Action;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
@@ -39,11 +38,15 @@ import android.text.ClipboardManager;
import android.text.Layout;
import android.text.method.ScrollingMovementMethod;
import android.util.Log;
+import android.view.GestureDetector;
+import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.view.View.OnTouchListener;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.Animation;
import android.widget.Button;
import android.widget.SlidingDrawer;
import android.widget.TextView;
@@ -55,7 +58,7 @@ import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
-public class Orbot extends SherlockActivity implements TorConstants, OnLongClickListener, OnSharedPreferenceChangeListener
+public class Orbot extends SherlockActivity implements TorConstants, OnLongClickListener, OnTouchListener, OnSharedPreferenceChangeListener
{
/* Useful UI bits */
private TextView lblStatus = null; //the main text display widget
@@ -125,6 +128,8 @@ public class Orbot extends SherlockActivity implements TorConstants, OnLongClick
imgStatus = (ImageProgressView)findViewById(R.id.imgStatus);
imgStatus.setOnLongClickListener(this);
+ imgStatus.setOnTouchListener(this);
+
downloadText = (TextView)findViewById(R.id.trafficDown);
uploadText = (TextView)findViewById(R.id.trafficUp);
mTxtOrbotLog = (TextView)findViewById(R.id.orbotLog);
@@ -168,8 +173,22 @@ public class Orbot extends SherlockActivity implements TorConstants, OnLongClick
uploadText.setText(formatCount(0) + " / " + formatTotal(0));
updateStatus("");
+
+
+ // Gesture detection
+ mGestureDetector = new GestureDetector(this, new MyGestureDetector());
+
}
+
+ GestureDetector mGestureDetector;
+
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ return mGestureDetector.onTouchEvent(event);
+
+ }
+
private void appendLogTextAndScroll(String text)
{
if(mTxtOrbotLog != null){
@@ -1202,5 +1221,48 @@ public class Orbot extends SherlockActivity implements TorConstants, OnLongClick
}
-
+
+ private static final float ROTATE_FROM = 0.0f;
+ private static final float ROTATE_TO = 360.0f*4f;// 3.141592654f * 32.0f;
+
+ public void spinOrbot (float direction)
+ {
+ try {
+ mService.newIdentity(); //request a new identity
+
+ Toast.makeText(this, R.string.newnym, Toast.LENGTH_SHORT).show();
+
+ // Rotate3dAnimation rotation = new Rotate3dAnimation(ROTATE_FROM, ROTATE_TO*direction, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
+ Rotate3dAnimation rotation = new Rotate3dAnimation(ROTATE_FROM, ROTATE_TO*direction, imgStatus.getWidth()/2f,imgStatus.getWidth()/2f,20f,false);
+ rotation.setFillAfter(true);
+ rotation.setInterpolator(new AccelerateInterpolator());
+ rotation.setDuration((long) 2*1000);
+ rotation.setRepeatCount(0);
+ imgStatus.startAnimation(rotation);
+
+ } catch (RemoteException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ class MyGestureDetector extends SimpleOnGestureListener {
+ @Override
+ public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
+ try {
+ if (torStatus == TorServiceConstants.STATUS_ON)
+ {
+ float direction = 1f;
+ if (velocityX < 0)
+ direction = -1f;
+ spinOrbot (direction);
+ }
+ } catch (Exception e) {
+ // nothing
+ }
+ return false;
+ }
+
+ }
+
}
More information about the tor-commits
mailing list