diff options
-rw-r--r-- | src/com/android/settings/vpn/AuthenticationActor.java | 2 | ||||
-rw-r--r-- | src/com/android/settings/vpn/VpnSettings.java | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/com/android/settings/vpn/AuthenticationActor.java b/src/com/android/settings/vpn/AuthenticationActor.java index 2584fbd..a05cfa7 100644 --- a/src/com/android/settings/vpn/AuthenticationActor.java +++ b/src/com/android/settings/vpn/AuthenticationActor.java @@ -195,8 +195,8 @@ public class AuthenticationActor implements VpnProfileActor { if (bindService(c)) { // wait for a second, let status propagate wait(c, ONE_SECOND); + mContext.unbindService(c); } - mContext.unbindService(c); } private boolean bindService(ServiceConnection c) { diff --git a/src/com/android/settings/vpn/VpnSettings.java b/src/com/android/settings/vpn/VpnSettings.java index 08dd8dd..1446164 100644 --- a/src/com/android/settings/vpn/VpnSettings.java +++ b/src/com/android/settings/vpn/VpnSettings.java @@ -932,7 +932,7 @@ public class VpnSettings extends PreferenceActivity implements // managing status check in a background thread private class StatusChecker { private Set<VpnProfile> mQueue = new HashSet<VpnProfile>(); - private boolean mPaused; + private boolean mPaused = true; private ConditionVariable mThreadCv = new ConditionVariable(); void onPause() { @@ -941,7 +941,6 @@ public class VpnSettings extends PreferenceActivity implements } synchronized void onResume() { - mPaused = false; start(); } @@ -961,7 +960,9 @@ public class VpnSettings extends PreferenceActivity implements return p; } - private void start() { + private synchronized void start() { + if (!mPaused) return; + mPaused = false; mThreadCv.close(); new Thread(new Runnable() { public void run() { |