diff options
author | Kenny Root <kenny@the-b.org> | 2010-05-31 18:13:04 +0000 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2010-05-31 18:13:04 +0000 |
commit | 32bc0edb89e708b873533de94d3e58d5099cc3ba (patch) | |
tree | 59daae646718cc58dd43c190861b23fa60160782 /src/org/connectbot/service/ConnectivityReceiver.java | |
parent | 29d9e77a136f65cfd65fa6be6611eb0516cc6cb3 (diff) | |
download | connectbot-32bc0edb89e708b873533de94d3e58d5099cc3ba.tar.gz connectbot-32bc0edb89e708b873533de94d3e58d5099cc3ba.tar.bz2 connectbot-32bc0edb89e708b873533de94d3e58d5099cc3ba.zip |
Refactor the way connection notification works
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@505 df292f66-193f-0410-a5fc-6d59da041ff2
Diffstat (limited to 'src/org/connectbot/service/ConnectivityReceiver.java')
-rw-r--r-- | src/org/connectbot/service/ConnectivityReceiver.java | 41 |
1 files changed, 20 insertions, 21 deletions
diff --git a/src/org/connectbot/service/ConnectivityReceiver.java b/src/org/connectbot/service/ConnectivityReceiver.java index e2d2d3b..908298f 100644 --- a/src/org/connectbot/service/ConnectivityReceiver.java +++ b/src/org/connectbot/service/ConnectivityReceiver.java @@ -31,6 +31,8 @@ public class ConnectivityReceiver extends BroadcastReceiver { private boolean mLockingWifi; + private Object[] mLock = new Object[0]; + public ConnectivityReceiver(TerminalManager manager, boolean lockingWifi) { mTerminalManager = manager; @@ -93,21 +95,26 @@ public class ConnectivityReceiver extends BroadcastReceiver { } /** - * Increase the number of things using the network. Acquire a Wifi lock if necessary. + * Increase the number of things using the network. Acquire a Wi-Fi lock + * if necessary. */ public void incRef() { - synchronized (this) { - acquireWifiLockIfNecessary(); + synchronized (mLock) { + acquireWifiLockIfNecessaryLocked(); mNetworkRef += 1; } } + /** + * Decrease the number of things using the network. Release the Wi-Fi lock + * if necessary. + */ public void decRef() { - synchronized (this) { + synchronized (mLock) { mNetworkRef -= 1; - releaseWifiLockIfNecessary(); + releaseWifiLockIfNecessaryLocked(); } } @@ -115,32 +122,24 @@ public class ConnectivityReceiver extends BroadcastReceiver { * @param mLockingWifi */ public void setWantWifiLock(boolean lockingWifi) { - synchronized (this) { + synchronized (mLock) { mLockingWifi = lockingWifi; if (mLockingWifi) { - acquireWifiLockIfNecessary(); - } else if (!mLockingWifi) { - releaseWifiLockIfNecessary(); + acquireWifiLockIfNecessaryLocked(); + } else { + releaseWifiLockIfNecessaryLocked(); } } } - /** - * - */ - private void acquireWifiLockIfNecessary() { - synchronized (this) { - if (mLockingWifi && mNetworkRef > 0 && !mWifiLock.isHeld()) { - mWifiLock.acquire(); - } + private void acquireWifiLockIfNecessaryLocked() { + if (mLockingWifi && mNetworkRef > 0 && !mWifiLock.isHeld()) { + mWifiLock.acquire(); } } - /** - * - */ - private void releaseWifiLockIfNecessary() { + private void releaseWifiLockIfNecessaryLocked() { if (mNetworkRef == 0 && mWifiLock.isHeld()) { mWifiLock.release(); } |