summaryrefslogtreecommitdiffstats
path: root/packages/services/Proxy/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/services/Proxy/src')
-rw-r--r--packages/services/Proxy/src/com/android/proxyhandler/ProxyService.java10
-rw-r--r--packages/services/Proxy/src/com/android/proxyhandler/ProxyServiceReceiver.java13
2 files changed, 17 insertions, 6 deletions
diff --git a/packages/services/Proxy/src/com/android/proxyhandler/ProxyService.java b/packages/services/Proxy/src/com/android/proxyhandler/ProxyService.java
index 0aea5ee..18ed645 100644
--- a/packages/services/Proxy/src/com/android/proxyhandler/ProxyService.java
+++ b/packages/services/Proxy/src/com/android/proxyhandler/ProxyService.java
@@ -24,24 +24,28 @@ public class ProxyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent != null) {
- handleCommand(intent);
+ if (handleCommand(intent)) {
+ return START_REDELIVER_INTENT;
+ }
}
- return START_STICKY;
+ return START_NOT_STICKY;
}
- private void handleCommand(Intent intent) {
+ private boolean handleCommand(Intent intent) {
Bundle bundle = intent.getExtras();
ProxyProperties proxy = null;
if ((bundle != null) && bundle.containsKey(Proxy.EXTRA_PROXY_INFO)) {
proxy = bundle.getParcelable(Proxy.EXTRA_PROXY_INFO);
if ((proxy != null) && !TextUtils.isEmpty(proxy.getPacFileUrl())) {
startProxy(proxy);
+ return true;
} else {
stopSelf();
}
} else {
stopSelf();
}
+ return false;
}
diff --git a/packages/services/Proxy/src/com/android/proxyhandler/ProxyServiceReceiver.java b/packages/services/Proxy/src/com/android/proxyhandler/ProxyServiceReceiver.java
index f5c2ca5..4638def 100644
--- a/packages/services/Proxy/src/com/android/proxyhandler/ProxyServiceReceiver.java
+++ b/packages/services/Proxy/src/com/android/proxyhandler/ProxyServiceReceiver.java
@@ -4,7 +4,9 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.Proxy;
+import android.net.ProxyProperties;
import android.os.Bundle;
+import android.text.TextUtils;
public class ProxyServiceReceiver extends BroadcastReceiver {
@@ -12,11 +14,16 @@ public class ProxyServiceReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Intent service = new Intent(context, ProxyService.class);
Bundle bundle = intent.getExtras();
+ ProxyProperties proxy = null;
if (bundle != null) {
- service.putExtra(Proxy.EXTRA_PROXY_INFO,
- bundle.getParcelable(Proxy.EXTRA_PROXY_INFO));
+ proxy = bundle.getParcelable(Proxy.EXTRA_PROXY_INFO);
+ service.putExtra(Proxy.EXTRA_PROXY_INFO, proxy);
+ }
+ if ((proxy != null) && (!TextUtils.isEmpty(proxy.getPacFileUrl()))) {
+ context.startService(service);
+ } else {
+ context.stopService(service);
}
- context.startService(service);
}
}