Loading src/main/java/org/torproject/android/service/vpn/OrbotVpnManager.java +5 −10 Original line number Diff line number Diff line Loading @@ -350,20 +350,15 @@ public class OrbotVpnManager implements Handler.Callback, OrbotConstants { @TargetApi(Build.VERSION_CODES.LOLLIPOP) private void doLollipopAppRouting(VpnService.Builder builder) throws NameNotFoundException { var apps = TorifiedApp.getApps(mService, prefs); var perAppEnabled = false; var canBypass = !isVpnLockdown(mService); if (canBypass) { for (TorifiedApp app : apps) { if (app.isTorified() && (!app.getPackageName().equals(mService.getPackageName()))) { if (prefs.getBoolean(app.getPackageName() + OrbotConstants.APP_TOR_KEY, true)) { builder.addAllowedApplication(app.getPackageName()); } perAppEnabled = true; if (app.isBypassTor()) { builder.addDisallowedApplication(app.getPackageName()); } } if (!perAppEnabled && canBypass) { builder.addDisallowedApplication(mService.getPackageName()); for (String packageName : OrbotConstants.BYPASS_VPN_PACKAGES) builder.addDisallowedApplication(packageName); Loading src/main/java/org/torproject/android/service/vpn/TorifiedApp.java +8 −8 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ public class TorifiedApp implements Comparable { private Drawable icon; private String packageName; private boolean torified = false; private boolean bypassTor = false; private boolean usesInternet = false; private int[] enabledPorts; Loading Loading @@ -111,7 +111,7 @@ public class TorifiedApp implements Comparable { //app.setIcon(pMgr.getApplicationIcon(aInfo)); // check if this application is allowed app.setTorified(Arrays.binarySearch(tordApps, app.getPackageName()) >= 0); app.setBypassTor(Arrays.binarySearch(tordApps, app.getPackageName()) >= 0); } Collections.sort(apps); Loading @@ -125,9 +125,9 @@ public class TorifiedApp implements Comparable { insensitive they'd appear at the end of the grid of apps, a position where users would likely not expect to find them. */ if (o1.isTorified() == o2.isTorified()) if (o1.isBypassTor() == o2.isBypassTor()) return o1.getName().compareToIgnoreCase(o2.getName()); if (o1.isTorified()) return -1; if (o1.isBypassTor()) return -1; return 1; }); } Loading @@ -140,12 +140,12 @@ public class TorifiedApp implements Comparable { this.usesInternet = usesInternet; } public boolean isTorified() { return torified; public boolean isBypassTor() { return bypassTor; } public void setTorified(boolean torified) { this.torified = torified; public void setBypassTor(boolean bypassTor) { this.bypassTor = bypassTor; } public int[] getEnabledPorts() { Loading Loading
src/main/java/org/torproject/android/service/vpn/OrbotVpnManager.java +5 −10 Original line number Diff line number Diff line Loading @@ -350,20 +350,15 @@ public class OrbotVpnManager implements Handler.Callback, OrbotConstants { @TargetApi(Build.VERSION_CODES.LOLLIPOP) private void doLollipopAppRouting(VpnService.Builder builder) throws NameNotFoundException { var apps = TorifiedApp.getApps(mService, prefs); var perAppEnabled = false; var canBypass = !isVpnLockdown(mService); if (canBypass) { for (TorifiedApp app : apps) { if (app.isTorified() && (!app.getPackageName().equals(mService.getPackageName()))) { if (prefs.getBoolean(app.getPackageName() + OrbotConstants.APP_TOR_KEY, true)) { builder.addAllowedApplication(app.getPackageName()); } perAppEnabled = true; if (app.isBypassTor()) { builder.addDisallowedApplication(app.getPackageName()); } } if (!perAppEnabled && canBypass) { builder.addDisallowedApplication(mService.getPackageName()); for (String packageName : OrbotConstants.BYPASS_VPN_PACKAGES) builder.addDisallowedApplication(packageName); Loading
src/main/java/org/torproject/android/service/vpn/TorifiedApp.java +8 −8 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ public class TorifiedApp implements Comparable { private Drawable icon; private String packageName; private boolean torified = false; private boolean bypassTor = false; private boolean usesInternet = false; private int[] enabledPorts; Loading Loading @@ -111,7 +111,7 @@ public class TorifiedApp implements Comparable { //app.setIcon(pMgr.getApplicationIcon(aInfo)); // check if this application is allowed app.setTorified(Arrays.binarySearch(tordApps, app.getPackageName()) >= 0); app.setBypassTor(Arrays.binarySearch(tordApps, app.getPackageName()) >= 0); } Collections.sort(apps); Loading @@ -125,9 +125,9 @@ public class TorifiedApp implements Comparable { insensitive they'd appear at the end of the grid of apps, a position where users would likely not expect to find them. */ if (o1.isTorified() == o2.isTorified()) if (o1.isBypassTor() == o2.isBypassTor()) return o1.getName().compareToIgnoreCase(o2.getName()); if (o1.isTorified()) return -1; if (o1.isBypassTor()) return -1; return 1; }); } Loading @@ -140,12 +140,12 @@ public class TorifiedApp implements Comparable { this.usesInternet = usesInternet; } public boolean isTorified() { return torified; public boolean isBypassTor() { return bypassTor; } public void setTorified(boolean torified) { this.torified = torified; public void setBypassTor(boolean bypassTor) { this.bypassTor = bypassTor; } public int[] getEnabledPorts() { Loading