diff options
| author | Mike Lockwood <lockwood@android.com> | 2009-07-14 21:35:36 -0400 |
|---|---|---|
| committer | Mike Lockwood <lockwood@android.com> | 2009-07-14 21:44:30 -0400 |
| commit | e2a5385c70b48b57476a0c8c52bad4ea40398641 (patch) | |
| tree | 3bce146e2dc81fe4cee2b5edf3e4b7ef27353feb | |
| parent | c047d68372ece9fa74446b13ea66bc12b060b882 (diff) | |
| parent | f77035193152a0edba5abeb33d9c1a5f446c7dd8 (diff) | |
| download | frameworks_base-e2a5385c70b48b57476a0c8c52bad4ea40398641.zip frameworks_base-e2a5385c70b48b57476a0c8c52bad4ea40398641.tar.gz frameworks_base-e2a5385c70b48b57476a0c8c52bad4ea40398641.tar.bz2 | |
resolved conflicts for merge of f7703519 to master
| -rw-r--r-- | services/java/com/android/server/WifiService.java | 3 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/WifiStateTracker.java | 22 |
2 files changed, 19 insertions, 6 deletions
diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java index a561d11..67e8cf3 100644 --- a/services/java/com/android/server/WifiService.java +++ b/services/java/com/android/server/WifiService.java @@ -171,6 +171,7 @@ public class WifiService extends IWifiManager.Stub { WifiService(Context context, WifiStateTracker tracker) { mContext = context; mWifiStateTracker = tracker; + mWifiStateTracker.enableRssiPolling(true); mBatteryStats = BatteryStatsService.getService(); mScanResultCache = new LinkedHashMap<String, ScanResult>( @@ -1367,9 +1368,11 @@ public class WifiService extends IWifiManager.Stub { mAlarmManager.cancel(mIdleIntent); mDeviceIdle = false; mScreenOff = false; + mWifiStateTracker.enableRssiPolling(true); } else if (action.equals(Intent.ACTION_SCREEN_OFF)) { Log.d(TAG, "ACTION_SCREEN_OFF"); mScreenOff = true; + mWifiStateTracker.enableRssiPolling(false); /* * Set a timer to put Wi-Fi to sleep, but only if the screen is off * AND the "stay on while plugged in" setting doesn't match the diff --git a/wifi/java/android/net/wifi/WifiStateTracker.java b/wifi/java/android/net/wifi/WifiStateTracker.java index a2cdcc1..12abce5 100644 --- a/wifi/java/android/net/wifi/WifiStateTracker.java +++ b/wifi/java/android/net/wifi/WifiStateTracker.java @@ -242,6 +242,7 @@ public class WifiStateTracker extends NetworkStateTracker { private SettingsObserver mSettingsObserver; private boolean mIsScanModeActive; + private boolean mEnableRssiPolling; // Wi-Fi run states: private static final int RUN_STATE_STARTING = 1; @@ -340,6 +341,7 @@ public class WifiStateTracker extends NetworkStateTracker { private void setSupplicantState(SupplicantState state) { mWifiInfo.setSupplicantState(state); updateNetworkInfo(); + checkPollTimer(); } public SupplicantState getSupplicantState() { @@ -354,6 +356,7 @@ public class WifiStateTracker extends NetworkStateTracker { private void setSupplicantState(String stateName) { mWifiInfo.setSupplicantState(stateName); updateNetworkInfo(); + checkPollTimer(); } /** @@ -550,8 +553,10 @@ public class WifiStateTracker extends NetworkStateTracker { * Set the interval timer for polling connection information * that is not delivered asynchronously. */ - private synchronized void setPollTimer () { - if (!hasMessages(EVENT_POLL_INTERVAL)) { + private synchronized void checkPollTimer() { + if (mEnableRssiPolling && + mWifiInfo.getSupplicantState() == SupplicantState.COMPLETED && + !hasMessages(EVENT_POLL_INTERVAL)) { sendEmptyMessageDelayed(EVENT_POLL_INTERVAL, POLL_STATUS_INTERVAL_MSECS); } } @@ -651,6 +656,13 @@ public class WifiStateTracker extends NetworkStateTracker { setBluetoothScanMode(isBluetoothPlaying); } + public void enableRssiPolling(boolean enable) { + if (mEnableRssiPolling != enable) { + mEnableRssiPolling = enable; + checkPollTimer(); + } + } + @Override public void releaseWakeLock() { if (mReleaseWakeLockCallback != null) { @@ -1031,9 +1043,7 @@ public class WifiStateTracker extends NetworkStateTracker { case EVENT_POLL_INTERVAL: if (mWifiInfo.getSupplicantState() != SupplicantState.UNINITIALIZED) { requestPolledInfo(mWifiInfo, true); - if (mWifiInfo.getSupplicantState() == SupplicantState.COMPLETED) { - setPollTimer(); - } + checkPollTimer(); } break; @@ -1170,7 +1180,7 @@ public class WifiStateTracker extends NetworkStateTracker { } private void configureInterface() { - setPollTimer(); + checkPollTimer(); mLastSignalLevel = -1; if (!mUseStaticIp) { if (!mHaveIpAddress && !mObtainingIpAddress) { |
