diff --git a/app/src/main/java/org/torproject/android/OnBootReceiver.java b/app/src/main/java/org/torproject/android/OnBootReceiver.java
index 91d6beba..722f4f1b 100644
--- a/app/src/main/java/org/torproject/android/OnBootReceiver.java
+++ b/app/src/main/java/org/torproject/android/OnBootReceiver.java
@@ -16,10 +16,9 @@ public class OnBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
- Prefs.setContext(context);
- if (Prefs.startOnBoot() && (!sReceivedBoot))
- {
+ if (Prefs.startOnBoot() && (!sReceivedBoot))
+ {
if (Prefs.useVpn())
startVpnService(context); //VPN will start Tor once it is done
else
diff --git a/app/src/main/java/org/torproject/android/OrbotMainActivity.java b/app/src/main/java/org/torproject/android/OrbotMainActivity.java
index c243c672..8b9cb5b0 100644
--- a/app/src/main/java/org/torproject/android/OrbotMainActivity.java
+++ b/app/src/main/java/org/torproject/android/OrbotMainActivity.java
@@ -52,6 +52,7 @@ import android.support.v4.content.LocalBroadcastManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.SwitchCompat;
import android.support.v7.widget.Toolbar;
import android.util.AttributeSet;
import android.util.Log;
@@ -70,10 +71,10 @@ import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
+import android.widget.CompoundButton;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
-import android.widget.ToggleButton;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
@@ -89,9 +90,9 @@ public class OrbotMainActivity extends AppCompatActivity
private TextView uploadText = null;
private TextView mTxtOrbotLog = null;
- private Button mBtnBrowser = null;
- private ToggleButton mBtnVPN = null;
- private ToggleButton mBtnBridges = null;
+ // private Button mBtnBrowser = null;
+ private SwitchCompat mBtnVPN = null;
+ private SwitchCompat mBtnBridges = null;
private Spinner spnCountries = null;
@@ -257,7 +258,7 @@ public class OrbotMainActivity extends AppCompatActivity
// Gesture detection
mGestureDetector = new GestureDetector(this, new MyGestureDetector());
-
+ /**
mBtnBrowser = (Button)findViewById(R.id.btnBrowser);
mBtnBrowser.setOnClickListener(new View.OnClickListener ()
{
@@ -271,8 +272,9 @@ public class OrbotMainActivity extends AppCompatActivity
});
mBtnBrowser.setEnabled(false);
-
- mBtnVPN = (ToggleButton)findViewById(R.id.btnVPN);
+ */
+
+ mBtnVPN = (SwitchCompat)findViewById(R.id.btnVPN);
boolean canDoVPN = Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
@@ -292,24 +294,23 @@ public class OrbotMainActivity extends AppCompatActivity
startActivity(new Intent(OrbotMainActivity.this,VPNEnableActivity.class));
}
- mBtnVPN.setOnClickListener(new View.OnClickListener ()
- {
-
- @Override
- public void onClick(View v) {
-
- if (mBtnVPN.isChecked())
- startActivity(new Intent(OrbotMainActivity.this,VPNEnableActivity.class));
- else
- stopVpnService();
-
- }
-
- });
+ mBtnVPN.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
+ {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
+ {
+ if (isChecked)
+ startActivity(new Intent(OrbotMainActivity.this,VPNEnableActivity.class));
+ else
+ stopVpnService();
+ }
+ });
+
+
}
- mBtnBridges = (ToggleButton)findViewById(R.id.btnBridges);
+ mBtnBridges = (SwitchCompat)findViewById(R.id.btnBridges);
mBtnBridges.setChecked(Prefs.bridgesEnabled());
mBtnBridges.setOnClickListener(new View.OnClickListener ()
{
@@ -323,7 +324,6 @@ public class OrbotMainActivity extends AppCompatActivity
}
else
{
- Toast.makeText(OrbotMainActivity.this, R.string.note_only_standard_tor_bridges_work_on_intel_x86_atom_devices, Toast.LENGTH_LONG).show();
showGetBridgePrompt(""); //if other chip ar, only stock bridges are supported
}
}
@@ -1063,11 +1063,7 @@ public class OrbotMainActivity extends AppCompatActivity
protected void onResume() {
super.onResume();
- if (mPrefs != null)
- {
- mBtnVPN.setChecked(Prefs.useVpn());
- mBtnBridges.setChecked(Prefs.bridgesEnabled());
- }
+ mBtnBridges.setChecked(Prefs.bridgesEnabled());
requestTorStatus();
@@ -1124,7 +1120,7 @@ public class OrbotMainActivity extends AppCompatActivity
imgStatus.setImageResource(R.drawable.toron);
- mBtnBrowser.setEnabled(true);
+ //mBtnBrowser.setEnabled(true);
if (torServiceMsg != null)
{
@@ -1170,7 +1166,7 @@ public class OrbotMainActivity extends AppCompatActivity
else
lblStatus.setText(getString(R.string.status_starting_up));
- mBtnBrowser.setEnabled(false);
+ // mBtnBrowser.setEnabled(false);
} else if (torStatus == TorServiceConstants.STATUS_STOPPING) {
@@ -1179,13 +1175,13 @@ public class OrbotMainActivity extends AppCompatActivity
imgStatus.setImageResource(R.drawable.torstarting);
lblStatus.setText(torServiceMsg);
- mBtnBrowser.setEnabled(false);
+ // mBtnBrowser.setEnabled(false);
} else if (torStatus == TorServiceConstants.STATUS_OFF) {
imgStatus.setImageResource(R.drawable.toroff);
lblStatus.setText(getString(R.string.press_to_start));
- mBtnBrowser.setEnabled(false);
+// mBtnBrowser.setEnabled(false);
}
if (torServiceMsg != null && torServiceMsg.length() > 0)
diff --git a/app/src/main/java/org/torproject/android/vpn/VPNEnableActivity.java b/app/src/main/java/org/torproject/android/vpn/VPNEnableActivity.java
index 6bbae302..9ed87d64 100644
--- a/app/src/main/java/org/torproject/android/vpn/VPNEnableActivity.java
+++ b/app/src/main/java/org/torproject/android/vpn/VPNEnableActivity.java
@@ -71,7 +71,6 @@ public class VPNEnableActivity extends Activity {
@Override
public void onClick(DialogInterface dialog, int which) {
Prefs.putUseVpn(true);
-
startVpnService();
}
diff --git a/app/src/main/res/layout/layout_main.xml b/app/src/main/res/layout/layout_main.xml
index 35dddc46..b8341359 100644
--- a/app/src/main/res/layout/layout_main.xml
+++ b/app/src/main/res/layout/layout_main.xml
@@ -30,92 +30,7 @@
android:layout_height="wrap_content"
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -154,20 +68,20 @@ android:layout_gravity="center_horizontal|center_vertical"/>
android:fontFamily="sans-serif-light"
android:text=""
android:lines="2"
- android:maxLines="2"
+ android:maxLines="2"
android:layout_gravity="center_horizontal"
android:layout_margin="0dp"
- android:layout_marginLeft="5dp"
+ android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
/>
-
+
+
-
-
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
= 16 && Prefs.expandedNotifications()) {
// Create remote view that needs to be set as bigContentView for the notification.
@@ -531,7 +533,6 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
fileObfsclient = new File(appBinHome, TorServiceConstants.OBFSCLIENT_ASSET_KEY);
fileXtables = new File(appBinHome, TorServiceConstants.IPTABLES_ASSET_KEY);
fileTorRc = new File(appBinHome, TorServiceConstants.TORRC_ASSET_KEY);
- filePdnsd = new File(appBinHome, TorServiceConstants.PDNSD_ASSET_KEY);
mEventHandler = new TorEventHandler(this);
@@ -726,7 +727,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
// these states should probably be handled better
sendCallbackLogMessage("Ignoring start request, currently " + mCurrentStatus);
return;
- } else if (mCurrentStatus == STATUS_ON && findExistingTorDaemon()) {
+ } else if (mCurrentStatus == STATUS_ON) {
sendCallbackLogMessage("Ignoring start request, already started.");
@@ -1444,7 +1445,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
@Override
public void onReceive(Context context, Intent intent) {
- if (mCurrentStatus != STATUS_ON)
+ if (mCurrentStatus == STATUS_OFF)
return;
SharedPreferences prefs = TorServiceUtils.getSharedPrefs(getApplicationContext());
@@ -1484,39 +1485,36 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
{
logNotice(context.getString(R.string.no_network_connectivity_putting_tor_to_sleep_));
showToolbarNotification(getString(R.string.no_internet_connection_tor),NOTIFY_ID,R.drawable.ic_stat_tor_off);
-
+
}
else
{
logNotice(context.getString(R.string.network_connectivity_is_good_waking_tor_up_));
showToolbarNotification(getString(R.string.status_activated),NOTIFY_ID,R.drawable.ic_stat_tor);
}
-
- //is this a change in state?
- if (isChanged)
- {
- try {
-
- if (mCurrentStatus != STATUS_OFF)
- {
- if (mConnectivity)
- {
- if (Prefs.useRoot() && Prefs.useTransparentProxying() && Prefs.transProxyNetworkRefresh())
- {
-
- disableTransparentProxy();
- enableTransparentProxy();
+ try {
- }
- }
- }
-
- } catch (Exception e) {
- logException ("error updating state after network restart",e);
- }
+ if (mCurrentStatus != STATUS_OFF)
+ {
+ if (mConnectivity)
+ {
+ if (Prefs.useRoot() && Prefs.useTransparentProxying() && Prefs.transProxyNetworkRefresh())
+ {
+
+
+ disableTransparentProxy();
+ enableTransparentProxy();
+
+ }
+ }
+ }
+
+ } catch (Exception e) {
+ logException ("error updating state after network restart",e);
+ }
- }
+
}
diff --git a/orbotservice/src/main/java/org/torproject/android/service/TorServiceConstants.java b/orbotservice/src/main/java/org/torproject/android/service/TorServiceConstants.java
index e2f09641..f431b0cf 100644
--- a/orbotservice/src/main/java/org/torproject/android/service/TorServiceConstants.java
+++ b/orbotservice/src/main/java/org/torproject/android/service/TorServiceConstants.java
@@ -133,9 +133,8 @@ public interface TorServiceConstants {
public static final String CMD_UPDATE_TRANS_PROXY = "update";
public static final String CMD_SET_EXIT = "setexit";
-
-
- public static final String BINARY_TOR_VERSION = "0.2.7.5-020120160125";
+
+ public static final String BINARY_TOR_VERSION = "0.2.8.1-1";
public static final String PREF_BINARY_TOR_VERSION_INSTALLED = "BINARY_TOR_VERSION_INSTALLED";
//obfsproxy
diff --git a/orbotservice/src/main/java/org/torproject/android/service/vpn/OrbotVpnManager.java b/orbotservice/src/main/java/org/torproject/android/service/vpn/OrbotVpnManager.java
index ae038818..5830a858 100644
--- a/orbotservice/src/main/java/org/torproject/android/service/vpn/OrbotVpnManager.java
+++ b/orbotservice/src/main/java/org/torproject/android/service/vpn/OrbotVpnManager.java
@@ -86,7 +86,9 @@ public class OrbotVpnManager implements Handler.Callback {
public OrbotVpnManager (VpnService service)
{
mService = service;
- filePdnsd = mService.getDir(TorServiceConstants.DIRECTORY_TOR_BINARY, Application.MODE_PRIVATE);
+
+ File fileBinHome = mService.getDir(TorServiceConstants.DIRECTORY_TOR_BINARY, Application.MODE_PRIVATE);
+ filePdnsd = new File(fileBinHome,TorServiceConstants.PDNSD_ASSET_KEY);
}
@@ -428,8 +430,19 @@ public class OrbotVpnManager implements Handler.Callback {
ps.close();
//f.withWriter { out -> out.print conf };
-
-
+
+ /**
+ *
+
+ server {
+ label= "upstream";
+ ip = %s;
+ port = %d;
+ uptest = none;
+ }
+ */
+
+
File cache = new File(fileDir,"pdnsd.cache");
if (!cache.exists()) {
diff --git a/orbotservice/src/main/jni/Application.mk b/orbotservice/src/main/jni/Application.mk
index 25058c14..a356ed76 100644
--- a/orbotservice/src/main/jni/Application.mk
+++ b/orbotservice/src/main/jni/Application.mk
@@ -1,5 +1,4 @@
-#APP_ABI := armeabi x86
APP_ABI := armeabi
-APP_PLATFORM := android-14
+APP_PLATFORM := android-16
APP_STL := stlport_static
NDK_TOOLCHAIN_VERSION := 4.8
diff --git a/orbotservice/src/main/res/values/pdnsd.xml b/orbotservice/src/main/res/values/pdnsd.xml
index 522f765a..a9ba34d7 100644
--- a/orbotservice/src/main/res/values/pdnsd.xml
+++ b/orbotservice/src/main/res/values/pdnsd.xml
@@ -1,6 +1,6 @@
-
+
global {
perm_cache=0;
cache_dir="/data/data/org.torproject.android/app_bin";
@@ -17,8 +17,8 @@ global {
server {
label= "upstream";
- ip = %s;
- port = %d;
+ ip = %1$s;
+ port = %2$d;
uptest = none;
}