summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRandy Pan <zpan@google.com>2016-04-12 17:30:03 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-04-12 17:30:03 +0000
commit50f2c0b31f4b8e8f523efa2d820a1517a31c6fb2 (patch)
treea4b73f5ef9a7fe475afc8d02037e314c366c1f8e
parent7429ca2593265cc1b97fb0d616ef3c07364b2931 (diff)
parent74c56848625bdc3c358475e87d7b15a44bd5a985 (diff)
Merge "Remove startDelayedScan() from WifiStateMachine" into nyc-dev
-rw-r--r--service/java/com/android/server/wifi/WifiStateMachine.java148
1 files changed, 4 insertions, 144 deletions
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java
index a93270ebb..3054e69ee 100644
--- a/service/java/com/android/server/wifi/WifiStateMachine.java
+++ b/service/java/com/android/server/wifi/WifiStateMachine.java
@@ -968,8 +968,6 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
private final AtomicInteger mWifiApState = new AtomicInteger(WIFI_AP_STATE_DISABLED);
private static final int SCAN_REQUEST = 0;
- private static final String ACTION_START_SCAN =
- "com.android.server.WifiManager.action.START_SCAN";
/**
* Work source to use to blame usage on the WiFi service
@@ -1071,7 +1069,6 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
mIpManager.setMulticastFilter(true);
mAlarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
- mScanIntent = getPrivateBroadcast(ACTION_START_SCAN, SCAN_REQUEST);
// Make sure the interval is not configured less than 10 seconds
int period = mContext.getResources().getInteger(
@@ -1104,20 +1101,6 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
// TODO - needs to be a bit more dynamic
mDfltNetworkCapabilities = new NetworkCapabilities(mNetworkCapabilitiesFilter);
- mContext.registerReceiver(
- new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- sScanAlarmIntentCount++; // Used for debug only
- startScan(SCAN_ALARM_SOURCE, mDelayedScanCounter.incrementAndGet(), null,
- WIFI_WORK_SOURCE);
- if (DBG)
- logd("SCAN ALARM -> " + mDelayedScanCounter.get());
- }
- },
- new IntentFilter(ACTION_START_SCAN));
-
-
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
@@ -1378,8 +1361,9 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
boolean old_state = mWifiConfigManager.getEnableAutoJoinWhenAssociated();
mWifiConfigManager.setEnableAutoJoinWhenAssociated(enabled);
if (!old_state && enabled && mScreenOn && getCurrentState() == mConnectedState) {
- startDelayedScan(mWifiConfigManager.mWifiAssociatedShortScanIntervalMs.get(), null,
- WIFI_WORK_SOURCE);
+ if (mWifiConnectivityManager != null) {
+ mWifiConnectivityManager.forceConnectivityScan();
+ }
}
return true;
}
@@ -1388,91 +1372,6 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
return mWifiConfigManager.getEnableAutoJoinWhenAssociated();
}
- /*
- *
- * Framework scan control
- */
-
- private boolean mAlarmEnabled = false;
-
- private AtomicInteger mDelayedScanCounter = new AtomicInteger();
-
- private void setScanAlarm(boolean enabled) {
- if (DBG) {
- String state;
- if (enabled) state = "enabled"; else state = "disabled";
- logd("setScanAlarm " + state
- + " defaultperiod " + mDefaultFrameworkScanIntervalMs
- + " mBackgroundScanSupported " + mBackgroundScanSupported);
- }
- if (mBackgroundScanSupported == false) {
- // Scan alarm is only used for background scans if they are not
- // offloaded to the wifi chipset, hence enable the scan alarm
- // gicing us RTC_WAKEUP of backgroundScan is NOT supported
- enabled = true;
- }
-
- if (enabled == mAlarmEnabled) return;
- if (enabled) {
- /* Set RTC_WAKEUP alarms if PNO is not supported - because no one is */
- /* going to wake up the host processor to look for access points */
- mAlarmManager.set(AlarmManager.RTC_WAKEUP,
- System.currentTimeMillis() + mDefaultFrameworkScanIntervalMs,
- mScanIntent);
- mAlarmEnabled = true;
- } else {
- mAlarmManager.cancel(mScanIntent);
- mAlarmEnabled = false;
- }
- }
-
- private void cancelDelayedScan() {
- mDelayedScanCounter.incrementAndGet();
- }
-
- private boolean checkAndRestartDelayedScan(int counter, boolean restart, int milli,
- ScanSettings settings, WorkSource workSource) {
-
- if (counter != mDelayedScanCounter.get()) {
- return false;
- }
- if (restart)
- startDelayedScan(milli, settings, workSource);
- return true;
- }
-
- private void startDelayedScan(int milli, ScanSettings settings, WorkSource workSource) {
- if (milli <= 0) return;
- /**
- * The cases where the scan alarm should be run are :
- * - DisconnectedState && screenOn => used delayed timer
- * - DisconnectedState && !screenOn && mBackgroundScanSupported => PNO
- * - DisconnectedState && !screenOn && !mBackgroundScanSupported => used RTC_WAKEUP Alarm
- * - ConnectedState && screenOn => used delayed timer
- */
-
- mDelayedScanCounter.incrementAndGet();
- if (mScreenOn &&
- (getCurrentState() == mDisconnectedState
- || getCurrentState() == mConnectedState)) {
- Bundle bundle = new Bundle();
- bundle.putParcelable(CUSTOMIZED_SCAN_SETTING, settings);
- bundle.putParcelable(CUSTOMIZED_SCAN_WORKSOURCE, workSource);
- bundle.putLong(SCAN_REQUEST_TIME, System.currentTimeMillis());
- sendMessageDelayed(CMD_START_SCAN, SCAN_ALARM_SOURCE,
- mDelayedScanCounter.get(), bundle, milli);
- if (DBG) logd("startDelayedScan send -> " + mDelayedScanCounter + " milli " + milli);
- } else if (mBackgroundScanSupported == false
- && !mScreenOn && getCurrentState() == mDisconnectedState) {
- setScanAlarm(true);
- if (DBG) logd("startDelayedScan start scan alarm -> "
- + mDelayedScanCounter + " milli " + milli);
- } else {
- if (DBG) logd("startDelayedScan unhandled -> "
- + mDelayedScanCounter + " milli " + milli);
- }
- }
-
private boolean setRandomMacOui() {
String oui = mContext.getResources().getString(R.string.config_wifi_random_mac_oui);
if (TextUtils.isEmpty(oui)) {
@@ -1509,14 +1408,6 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
}
/**
- * When settings allowing making use of untrusted networks change, trigger a scan
- * so as to kick of autojoin.
- */
- public void startScanForUntrustedSettingChange() {
- startScan(SET_ALLOW_UNTRUSTED_SOURCE, 0, null, WIFI_WORK_SOURCE);
- }
-
- /**
* Initiate a wifi scan. If workSource is not null, blame is given to it, otherwise blame is
* given to callingUid.
*
@@ -2519,7 +2410,6 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
}
if (mIsScanOngoing) sb.append(" onGoing");
if (mIsFullScanOngoing) sb.append(" full");
- sb.append(" cnt=").append(mDelayedScanCounter);
sb.append(" rssi=").append(mWifiInfo.getRssi());
sb.append(" f=").append(mWifiInfo.getFrequency());
sb.append(" sc=").append(mWifiInfo.score);
@@ -6672,23 +6562,11 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
if (!mWifiConfigManager.getEnableAutoJoinWhenAssociated()) {
return HANDLED;
}
- boolean shouldScan = mScreenOn;
- if (!checkAndRestartDelayedScan(message.arg2,
- shouldScan,
- mWifiConfigManager.mWifiAssociatedShortScanIntervalMs.get(),
- null, WIFI_WORK_SOURCE)) {
- messageHandlingStatus = MESSAGE_HANDLING_STATUS_OBSOLETE;
- logd("L2Connected CMD_START_SCAN source "
- + message.arg1
- + " " + message.arg2 + ", " + mDelayedScanCounter
- + " -> obsolete");
- return HANDLED;
- }
if (mP2pConnected.get()) {
logd("L2Connected CMD_START_SCAN source "
+ message.arg1
- + " " + message.arg2 + ", " + mDelayedScanCounter
+ + " " + message.arg2 + ", "
+ " ignore because P2P is connected");
messageHandlingStatus = MESSAGE_HANDLING_STATUS_DISCARD;
return HANDLED;
@@ -7093,7 +6971,6 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
log("RoamingState Enter"
+ " mScreenOn=" + mScreenOn );
}
- setScanAlarm(false);
// Make sure we disconnect if roaming fails
roamWatchdogCount++;
@@ -7716,15 +7593,6 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
Settings.Global.WIFI_SCAN_INTERVAL_WHEN_P2P_CONNECTED_MS,
period);
}
- if (!checkAndRestartDelayedScan(message.arg2,
- true, period, null, WIFI_WORK_SOURCE)) {
- messageHandlingStatus = MESSAGE_HANDLING_STATUS_OBSOLETE;
- logd("Disconnected CMD_START_SCAN source "
- + message.arg1
- + " " + message.arg2 + ", " + mDelayedScanCounter
- + " -> obsolete");
- return HANDLED;
- }
handleScanRequest(message);
ret = HANDLED;
@@ -7746,14 +7614,6 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
if (DBG) log("Turn on scanning after p2p disconnected");
sendMessageDelayed(obtainMessage(CMD_NO_NETWORKS_PERIODIC_SCAN,
++mPeriodicScanToken, 0), mNoNetworksPeriodicScan);
- } else {
- // If P2P is not connected and there are saved networks, then restart
- // scanning at the normal period. This is necessary because scanning might
- // have been disabled altogether if WIFI_SCAN_INTERVAL_WHEN_P2P_CONNECTED_MS
- // was set to zero.
- startDelayedScan(
- mWifiConfigManager.mWifiDisconnectedShortScanIntervalMs.get(),
- null, WIFI_WORK_SOURCE);
}
break;
case CMD_RECONNECT: