aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/connectbot/service/ConnectivityReceiver.java
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2010-05-31 18:13:04 +0000
committerKenny Root <kenny@the-b.org>2010-05-31 18:13:04 +0000
commit32bc0edb89e708b873533de94d3e58d5099cc3ba (patch)
tree59daae646718cc58dd43c190861b23fa60160782 /src/org/connectbot/service/ConnectivityReceiver.java
parent29d9e77a136f65cfd65fa6be6611eb0516cc6cb3 (diff)
downloadconnectbot-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.java41
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();
}