am f9e2a491: Fix issue to clear scan alarms

* commit 'f9e2a491176b086cd3c238b209e025cd68d76001':
  Fix issue to clear scan alarms
This commit is contained in:
Irfan Sheriff
2011-02-28 14:05:06 -08:00
committed by Android Git Automerger

View File

@ -2730,11 +2730,30 @@ public class WifiStateMachine extends HierarchicalStateMachine {
class DisconnectedState extends HierarchicalState {
private boolean mAlarmEnabled = false;
private long mScanIntervalMs;
private void setScanAlarm(boolean enabled) {
if (enabled == mAlarmEnabled) return;
if (enabled) {
mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + mScanIntervalMs,
mScanIntervalMs,
mScanIntent);
mAlarmEnabled = true;
} else {
mAlarmManager.cancel(mScanIntent);
mAlarmEnabled = false;
}
}
@Override
public void enter() {
if (DBG) Log.d(TAG, getName() + "\n");
EventLog.writeEvent(EVENTLOG_WIFI_STATE_CHANGED, getName());
mScanIntervalMs = Settings.Secure.getLong(mContext.getContentResolver(),
Settings.Secure.WIFI_SCAN_INTERVAL_MS, DEFAULT_SCAN_INTERVAL_MS);
/*
* We initiate background scanning if it is enabled, otherwise we
* initiate an infrequent scan that wakes up the device to ensure
@ -2751,12 +2770,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
WifiNative.enableBackgroundScan(true);
}
} else {
long scanMs = Settings.Secure.getLong(mContext.getContentResolver(),
Settings.Secure.WIFI_SCAN_INTERVAL_MS, DEFAULT_SCAN_INTERVAL_MS);
mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + scanMs, scanMs, mScanIntent);
mAlarmEnabled = true;
setScanAlarm(true);
}
}
@Override
@ -2774,7 +2788,13 @@ public class WifiStateMachine extends HierarchicalStateMachine {
break;
case CMD_ENABLE_BACKGROUND_SCAN:
mEnableBackgroundScan = (message.arg1 == 1);
WifiNative.enableBackgroundScan(mEnableBackgroundScan);
if (mEnableBackgroundScan) {
WifiNative.enableBackgroundScan(true);
setScanAlarm(false);
} else {
WifiNative.enableBackgroundScan(false);
setScanAlarm(true);
}
break;
/* Ignore network disconnect */
case NETWORK_DISCONNECTION_EVENT:
@ -2811,10 +2831,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
if (mEnableBackgroundScan) {
WifiNative.enableBackgroundScan(false);
}
if (mAlarmEnabled) {
mAlarmManager.cancel(mScanIntent);
mAlarmEnabled = false;
}
setScanAlarm(false);
}
}