Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: src/org/adblockplus/android/ProxyService.java

Issue 5697499218051072: Usage of new API, cleanups (reduced) (Closed)
Left Patch Set: Addressed new review issues Created April 28, 2014, 8:34 a.m.
Right Patch Set: Even more review issues fixed. Created April 28, 2014, 10:18 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
LEFTRIGHT
1 /* 1 /*
2 * This file is part of Adblock Plus <http://adblockplus.org/>, 2 * This file is part of Adblock Plus <http://adblockplus.org/>,
3 * Copyright (C) 2006-2014 Eyeo GmbH 3 * Copyright (C) 2006-2014 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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 56
57 import com.stericson.RootTools.RootTools; 57 import com.stericson.RootTools.RootTools;
58 import com.stericson.RootTools.RootToolsException; 58 import com.stericson.RootTools.RootToolsException;
59 59
60 public class ProxyService extends Service implements OnSharedPreferenceChangeLis tener 60 public class ProxyService extends Service implements OnSharedPreferenceChangeLis tener
61 { 61 {
62 private static final String LOCALHOST = "127.0.0.1"; 62 private static final String LOCALHOST = "127.0.0.1";
63 /** 63 /**
64 * Indicates that system supports native proxy configuration. 64 * Indicates that system supports native proxy configuration.
65 */ 65 */
66 public static final boolean NATIVE_PROXY_SUPPORTED = Build.VERSION.SDK_INT >= 12; // Honeycomb 66 public static final boolean NATIVE_PROXY_SUPPORTED = Build.VERSION.SDK_INT >= 12; // Honeycomb 3.1
67 67
68 static 68 static
69 { 69 {
70 RootTools.debugMode = false; 70 RootTools.debugMode = false;
71 } 71 }
72 72
73 private static final String TAG = Utils.getTag(ProxyService.class); 73 private static final String TAG = Utils.getTag(ProxyService.class);
74 private static final boolean logRequests = false; 74 private static final boolean logRequests = false;
75 75
76 // Do not use 8080 because it is a "dirty" port, Android uses it if something goes wrong 76 // Do not use 8080 because it is a "dirty" port, Android uses it if something goes wrong
77 // first element is reserved for previously used port 77 // first element is reserved for previously used port
78 private static final int[] portVariants = new int[] { -1, 2020, 3030, 4040, 50 50, 6060, 7070, 9090, 1234, 12345, 4321, 0 }; 78 private static final int[] portVariants = new int[] {-1, 2020, 3030, 4040, 505 0, 6060, 7070, 9090, 1234, 12345, 4321, 0};
79 79
80 private static final int DEFAULT_TIMEOUT = 3000; 80 private static final int DEFAULT_TIMEOUT = 3000;
81 private static final int NO_TRAFFIC_TIMEOUT = 5 * 60 * 1000; // 5 minutes 81 private static final int NO_TRAFFIC_TIMEOUT = 5 * 60 * 1000; // 5 minutes
82 82
83 static final int ONGOING_NOTIFICATION_ID = R.string.app_name; 83 static final int ONGOING_NOTIFICATION_ID = R.string.app_name;
84 private static final long POSITION_RIGHT = Build.VERSION.SDK_INT >= Build.VERS ION_CODES.GINGERBREAD ? Long.MIN_VALUE : Long.MAX_VALUE; 84 private static final long POSITION_RIGHT = Build.VERSION.SDK_INT >= Build.VERS ION_CODES.GINGERBREAD ? Long.MIN_VALUE : Long.MAX_VALUE;
85 private static final int NOTRAFFIC_NOTIFICATION_ID = R.string.app_name + 3; 85 private static final int NOTRAFFIC_NOTIFICATION_ID = R.string.app_name + 3;
86 86
87 /** 87 /**
88 * Broadcasted when service starts or stops. 88 * Broadcasted when service starts or stops.
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 if (proxy != null) 382 if (proxy != null)
383 proxy.close(); 383 proxy.close();
384 384
385 // Release service lock 385 // Release service lock
386 stopForeground(true); 386 stopForeground(true);
387 387
388 Log.i(TAG, "Service stopped"); 388 Log.i(TAG, "Service stopped");
389 } 389 }
390 390
391 /** 391 /**
392 * Restores system proxy settings via native call on Android 3.1+ devices usin g Java reflection. 392 * Restores system proxy settings via native call on Android 3.1+ devices
393 * using Java reflection.
393 */ 394 */
394 private void clearConnectionProxy() 395 private void clearConnectionProxy()
395 { 396 {
396 final String proxyHost = proxyConfiguration.getProperty("adblock.proxyHost") ; 397 final String proxyHost = proxyConfiguration.getProperty("adblock.proxyHost") ;
397 final String proxyPort = proxyConfiguration.getProperty("adblock.proxyPort") ; 398 final String proxyPort = proxyConfiguration.getProperty("adblock.proxyPort") ;
398 final String proxyExcl = proxyConfiguration.getProperty("adblock.proxyExcl") ; 399 final String proxyExcl = proxyConfiguration.getProperty("adblock.proxyExcl") ;
399 int port = 0; 400 int port = 0;
400 try 401 try
401 { 402 {
402 if (proxyHost != null) 403 if (proxyHost != null)
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 return RootTools.sendShell(command, DEFAULT_TIMEOUT); 629 return RootTools.sendShell(command, DEFAULT_TIMEOUT);
629 } 630 }
630 catch (final Exception e) 631 catch (final Exception e)
631 { 632 {
632 Log.e(TAG, "Failed to get iptables configuration", e); 633 Log.e(TAG, "Failed to get iptables configuration", e);
633 return null; 634 return null;
634 } 635 }
635 } 636 }
636 637
637 /** 638 /**
638 * Raises or removes no traffic notification based on current link proxy setti ngs 639 * Raises or removes no traffic notification based on current link proxy
640 * settings
639 */ 641 */
640 private void updateNoTrafficCheck(final ConnectivityManager connectivityManage r) 642 private void updateNoTrafficCheck(final ConnectivityManager connectivityManage r)
641 { 643 {
642 try 644 try
643 { 645 {
644 final Object pp = ProxySettings.getActiveLinkProxy(connectivityManager); 646 final Object pp = ProxySettings.getActiveLinkProxy(connectivityManager);
645 final String[] userProxy = ProxySettings.getUserProxy(pp); 647 final String[] userProxy = ProxySettings.getUserProxy(pp);
646 if (userProxy != null) 648 if (userProxy != null)
647 Log.i(TAG, "Proxy settings: " + userProxy[0] + ":" + userProxy[1] + "(" + userProxy[2] + ")"); 649 Log.i(TAG, "Proxy settings: " + userProxy[0] + ":" + userProxy[1] + "(" + userProxy[2] + ")");
648 updateNoTrafficCheck(userProxy); 650 updateNoTrafficCheck(userProxy);
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 } 757 }
756 } 758 }
757 759
758 @Override 760 @Override
759 public IBinder onBind(final Intent intent) 761 public IBinder onBind(final Intent intent)
760 { 762 {
761 return binder; 763 return binder;
762 } 764 }
763 765
764 /** 766 /**
765 * Executed if no traffic is detected after a period of time. Notifies user ab out possible 767 * Executed if no traffic is detected after a period of time. Notifies user
766 * configuration problems. 768 * about possible configuration problems.
767 */ 769 */
768 private final Runnable noTraffic = new Runnable() 770 private final Runnable noTraffic = new Runnable()
769 { 771 {
770 @Override 772 @Override
771 public void run() 773 public void run()
772 { 774 {
773 // It's weird but notrafficHandler.removeCallbacks(noTraffic) does not rem ove this callback 775 // It's weird but notrafficHandler.removeCallbacks(noTraffic) does not rem ove this callback
774 if (notrafficHandler == null) 776 if (notrafficHandler == null)
775 return; 777 return;
776 // Show warning notification 778 // Show warning notification
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 public void onReceive(final Context context, final Intent intent) 828 public void onReceive(final Context context, final Intent intent)
827 { 829 {
828 if (intent.getAction().equals(ProxyService.BROADCAST_PROXY_FAILED)) 830 if (intent.getAction().equals(ProxyService.BROADCAST_PROXY_FAILED))
829 { 831 {
830 stopSelf(); 832 stopSelf();
831 } 833 }
832 } 834 }
833 }; 835 };
834 836
835 /** 837 /**
836 * Monitors system network connection settings changes and updates proxy setti ngs accordingly. 838 * Monitors system network connection settings changes and updates proxy
839 * settings accordingly.
837 */ 840 */
838 private final BroadcastReceiver connectionReceiver = new BroadcastReceiver() 841 private final BroadcastReceiver connectionReceiver = new BroadcastReceiver()
839 { 842 {
840 @Override 843 @Override
841 public void onReceive(final Context ctx, final Intent intent) 844 public void onReceive(final Context ctx, final Intent intent)
842 { 845 {
843 final String action = intent.getAction(); 846 final String action = intent.getAction();
844 Log.i(TAG, "Action: " + action); 847 Log.i(TAG, "Action: " + action);
845 // Connectivity change 848 // Connectivity change
846 if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) 849 if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action))
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
922 @Override 925 @Override
923 public void log(final int level, final Object obj, final String message) 926 public void log(final int level, final Object obj, final String message)
924 { 927 {
925 if (level <= logLevel) 928 if (level <= logLevel)
926 { 929 {
927 Log.println(7 - level, obj != null ? obj.toString() : TAG, message); 930 Log.println(7 - level, obj != null ? obj.toString() : TAG, message);
928 } 931 }
929 } 932 }
930 } 933 }
931 } 934 }
LEFTRIGHT

Powered by Google App Engine
This is Rietveld