| Left: | ||
| Right: |
| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * This file is part of the Adblock Plus, | 2 * This file is part of the Adblock Plus, |
| 3 * Copyright (C) 2006-2012 Eyeo GmbH | 3 * Copyright (C) 2006-2012 Eyeo GmbH |
| 4 * | 4 * |
| 5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
| 6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
| 7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
| 8 * | 8 * |
| 9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 45 import android.net.ConnectivityManager; | 45 import android.net.ConnectivityManager; |
| 46 import android.net.NetworkInfo; | 46 import android.net.NetworkInfo; |
| 47 import android.net.Proxy; | 47 import android.net.Proxy; |
| 48 import android.os.Binder; | 48 import android.os.Binder; |
| 49 import android.os.Build; | 49 import android.os.Build; |
| 50 import android.os.Handler; | 50 import android.os.Handler; |
| 51 import android.os.IBinder; | 51 import android.os.IBinder; |
| 52 import android.preference.PreferenceManager; | 52 import android.preference.PreferenceManager; |
| 53 import android.support.v4.app.NotificationCompat; | 53 import android.support.v4.app.NotificationCompat; |
| 54 import android.util.Log; | 54 import android.util.Log; |
| 55 import android.widget.Toast; | |
| 56 | 55 |
| 57 import com.stericson.RootTools.RootTools; | 56 import com.stericson.RootTools.RootTools; |
| 58 import com.stericson.RootTools.RootToolsException; | 57 import com.stericson.RootTools.RootToolsException; |
| 59 | 58 |
| 60 public class ProxyService extends Service implements OnSharedPreferenceChangeLis tener | 59 public class ProxyService extends Service implements OnSharedPreferenceChangeLis tener |
| 61 { | 60 { |
| 62 private static final String LOCALHOST = "127.0.0.1"; | 61 private static final String LOCALHOST = "127.0.0.1"; |
| 63 /** | 62 /** |
| 64 * Indicates that system supports native proxy configuration. | 63 * Indicates that system supports native proxy configuration. |
| 65 */ | 64 */ |
| 66 public static boolean hasNativeProxy = Build.VERSION.SDK_INT >= 12; // Honeyco mb 3.1 | 65 public static boolean hasNativeProxy = Build.VERSION.SDK_INT >= 12; // Honeyco mb 3.1 |
| 67 | 66 |
| 68 static | 67 static |
| 69 { | 68 { |
| 70 RootTools.debugMode = false; | 69 RootTools.debugMode = false; |
| 71 } | 70 } |
| 72 | 71 |
| 73 private static final String TAG = "ProxyService"; | 72 private static final String TAG = "ProxyService"; |
| 74 private static final boolean logRequests = false; | 73 private static final boolean logRequests = false; |
| 75 | 74 |
| 75 private static final int[] portVariants = new int[] {8080, 8888, 1111, 2222, 3 333, 4444, 5555, 6666, 7777, 9999, 26571, 0}; | |
|
Felix Dahlke
2013/02/20 12:39:02
Maybe it makes sense to have this in arrays.xml in
Andrey Novikov
2013/02/20 12:44:23
It was there historically - because first versions
Felix Dahlke
2013/02/20 12:50:41
Right, still wondering if we should put magic valu
| |
| 76 | |
| 76 private final static int DEFAULT_TIMEOUT = 3000; | 77 private final static int DEFAULT_TIMEOUT = 3000; |
| 77 private final static int NO_TRAFFIC_TIMEOUT = 5 * 60 * 1000; // 5 minutes | 78 private final static int NO_TRAFFIC_TIMEOUT = 5 * 60 * 1000; // 5 minutes |
| 78 | 79 |
| 79 final static int ONGOING_NOTIFICATION_ID = R.string.app_name; | 80 final static int ONGOING_NOTIFICATION_ID = R.string.app_name; |
| 80 private static final long POSITION_RIGHT = Build.VERSION.SDK_INT >= Build.VERS ION_CODES.GINGERBREAD ? Long.MIN_VALUE : Long.MAX_VALUE; | 81 private static final long POSITION_RIGHT = Build.VERSION.SDK_INT >= Build.VERS ION_CODES.GINGERBREAD ? Long.MIN_VALUE : Long.MAX_VALUE; |
| 81 private final static int NOTRAFFIC_NOTIFICATION_ID = R.string.app_name + 3; | 82 private final static int NOTRAFFIC_NOTIFICATION_ID = R.string.app_name + 3; |
| 82 | 83 |
| 83 /** | 84 /** |
| 84 * Broadcasted when service starts or stops. | 85 * Broadcasted when service starts or stops. |
| 85 */ | 86 */ |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 116 | 117 |
| 117 @Override | 118 @Override |
| 118 public void onCreate() | 119 public void onCreate() |
| 119 { | 120 { |
| 120 super.onCreate(); | 121 super.onCreate(); |
| 121 | 122 |
| 122 // Get port for local proxy | 123 // Get port for local proxy |
| 123 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this ); | 124 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this ); |
| 124 Resources resources = getResources(); | 125 Resources resources = getResources(); |
| 125 | 126 |
| 126 String p = prefs.getString(getString(R.string.pref_port), null); | |
| 127 try | |
| 128 { | |
| 129 port = p != null ? Integer.valueOf(p) : resources.getInteger(R.integer.def _port); | |
| 130 } | |
| 131 catch (NumberFormatException e) | |
| 132 { | |
| 133 Toast.makeText(this, getString(R.string.msg_badport) + ": " + p, Toast.LEN GTH_LONG).show(); | |
| 134 port = resources.getInteger(R.integer.def_port); | |
| 135 } | |
| 136 | |
| 137 // Try to read user proxy settings | 127 // Try to read user proxy settings |
| 138 String proxyHost = null; | 128 String proxyHost = null; |
| 139 String proxyPort = null; | 129 String proxyPort = null; |
| 140 String proxyExcl = null; | 130 String proxyExcl = null; |
| 141 String proxyUser = null; | 131 String proxyUser = null; |
| 142 String proxyPass = null; | 132 String proxyPass = null; |
| 143 | 133 |
| 144 if (hasNativeProxy) | 134 if (hasNativeProxy) |
| 145 { | 135 { |
| 146 // Read system settings | 136 // Read system settings |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 217 // Start engine | 207 // Start engine |
| 218 AdblockPlus.getApplication().startEngine(); | 208 AdblockPlus.getApplication().startEngine(); |
| 219 | 209 |
| 220 registerReceiver(proxyReceiver, new IntentFilter(ProxyService.BROADCAST_PROX Y_FAILED)); | 210 registerReceiver(proxyReceiver, new IntentFilter(ProxyService.BROADCAST_PROX Y_FAILED)); |
| 221 registerReceiver(matchesReceiver, new IntentFilter(AdblockPlus.BROADCAST_FIL TER_MATCHES)); | 211 registerReceiver(matchesReceiver, new IntentFilter(AdblockPlus.BROADCAST_FIL TER_MATCHES)); |
| 222 | 212 |
| 223 // Start proxy | 213 // Start proxy |
| 224 if (proxy == null) | 214 if (proxy == null) |
| 225 { | 215 { |
| 226 ServerSocket listen = null; | 216 ServerSocket listen = null; |
| 227 try | 217 String msg = null; |
| 218 for (int p : portVariants) | |
| 228 { | 219 { |
| 229 // TODO Add port travel | 220 try |
| 230 listen = new ServerSocket(port, 1024); | 221 { |
| 222 listen = new ServerSocket(p, 1024); | |
| 223 port = p; | |
| 224 break; | |
| 225 } | |
| 226 catch (IOException e) | |
| 227 { | |
| 228 Log.e(TAG, null, e); | |
| 229 msg = e.getMessage(); | |
| 230 } | |
| 231 } | 231 } |
| 232 catch (IOException e) | 232 if (listen == null) |
| 233 { | 233 { |
| 234 sendBroadcast(new Intent(BROADCAST_PROXY_FAILED).putExtra("msg", e.getMe ssage())); | 234 sendBroadcast(new Intent(BROADCAST_PROXY_FAILED).putExtra("msg", msg)); |
| 235 Log.e(TAG, null, e); | |
| 236 return; | 235 return; |
| 237 } | 236 } |
| 238 | 237 |
| 239 proxyConfiguration.put("handler", "main"); | 238 proxyConfiguration.put("handler", "main"); |
| 240 proxyConfiguration.put("main.prefix", ""); | 239 proxyConfiguration.put("main.prefix", ""); |
| 241 proxyConfiguration.put("main.class", "sunlabs.brazil.server.ChainHandler") ; | 240 proxyConfiguration.put("main.class", "sunlabs.brazil.server.ChainHandler") ; |
| 242 if (transparent) | 241 if (transparent) |
| 243 { | 242 { |
| 244 proxyConfiguration.put("main.handlers", "urlmodifier adblock"); | 243 proxyConfiguration.put("main.handlers", "urlmodifier adblock"); |
| 245 proxyConfiguration.put("urlmodifier.class", "org.adblockplus.brazil.Tran sparentProxyHandler"); | 244 proxyConfiguration.put("urlmodifier.class", "org.adblockplus.brazil.Tran sparentProxyHandler"); |
| (...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 649 | 648 |
| 650 @SuppressLint("NewApi") | 649 @SuppressLint("NewApi") |
| 651 private Notification getNotification() | 650 private Notification getNotification() |
| 652 { | 651 { |
| 653 int msgId = R.string.notif_waiting; | 652 int msgId = R.string.notif_waiting; |
| 654 if (nativeProxy || proxyManualyConfigured) | 653 if (nativeProxy || proxyManualyConfigured) |
| 655 msgId = R.string.notif_wifi; | 654 msgId = R.string.notif_wifi; |
| 656 if (transparent) | 655 if (transparent) |
| 657 msgId = R.string.notif_all; | 656 msgId = R.string.notif_all; |
| 658 | 657 |
| 659 Log.e(TAG, "V: " + nativeProxy + " " + proxyManualyConfigured + " " + transp arent); | |
|
Felix Dahlke
2013/02/20 12:39:02
Is this change related?
Andrey Novikov
2013/02/20 12:44:23
Of course not, just forgot to remove it before pre
| |
| 660 NotificationCompat.Builder builder = new NotificationCompat.Builder(this); | 658 NotificationCompat.Builder builder = new NotificationCompat.Builder(this); |
| 661 if (hideIcon && msgId != R.string.notif_waiting) | 659 if (hideIcon && msgId != R.string.notif_waiting) |
| 662 { | 660 { |
| 663 builder.setWhen(POSITION_RIGHT); | 661 builder.setWhen(POSITION_RIGHT); |
| 664 builder.setSmallIcon(R.drawable.transparent); | 662 builder.setSmallIcon(R.drawable.transparent); |
| 665 //builder.setContent(new RemoteViews(getPackageName(), R.layout.notif_hidd en)); | 663 //builder.setContent(new RemoteViews(getPackageName(), R.layout.notif_hidd en)); |
| 666 } | 664 } |
| 667 else | 665 else |
| 668 { | 666 { |
| 669 builder.setWhen(0); | 667 builder.setWhen(0); |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 857 @Override | 855 @Override |
| 858 public void log(int level, Object obj, String message) | 856 public void log(int level, Object obj, String message) |
| 859 { | 857 { |
| 860 if (level <= logLevel) | 858 if (level <= logLevel) |
| 861 { | 859 { |
| 862 Log.println(7 - level, obj != null ? obj.toString() : TAG, message); | 860 Log.println(7 - level, obj != null ? obj.toString() : TAG, message); |
| 863 } | 861 } |
| 864 } | 862 } |
| 865 } | 863 } |
| 866 } | 864 } |
| OLD | NEW |