Loading services/java/com/android/server/WifiService.java +14 −2 Original line number Diff line number Diff line Loading @@ -1449,10 +1449,12 @@ public class WifiService extends IWifiManager.Stub { Settings.System.getInt(mContext.getContentResolver(), Settings.System.STAY_ON_WHILE_PLUGGED_IN, 0); if (action.equals(Intent.ACTION_SCREEN_ON)) { Log.d(TAG, "ACTION_SCREEN_ON"); mAlarmManager.cancel(mIdleIntent); mDeviceIdle = false; mScreenOff = false; } else if (action.equals(Intent.ACTION_SCREEN_OFF)) { Log.d(TAG, "ACTION_SCREEN_OFF"); mScreenOff = true; /* * Set a timer to put Wi-Fi to sleep, but only if the screen is off Loading @@ -1461,12 +1463,20 @@ public class WifiService extends IWifiManager.Stub { * or plugged in to AC). */ if (!shouldWifiStayAwake(stayAwakeConditions, mPluggedType)) { if (!mWifiStateTracker.hasIpAddress()) { // do not keep Wifi awake when screen is off if Wifi is not fully active mDeviceIdle = true; updateWifiState(); } else { long triggerTime = System.currentTimeMillis() + idleMillis; Log.d(TAG, "setting ACTION_DEVICE_IDLE timer for " + idleMillis + "ms"); mAlarmManager.set(AlarmManager.RTC_WAKEUP, triggerTime, mIdleIntent); } } /* we can return now -- there's nothing to do until we get the idle intent back */ return; } else if (action.equals(ACTION_DEVICE_IDLE)) { Log.d(TAG, "got ACTION_DEVICE_IDLE"); mDeviceIdle = true; } else if (action.equals(Intent.ACTION_BATTERY_CHANGED)) { /* Loading @@ -1477,9 +1487,11 @@ public class WifiService extends IWifiManager.Stub { * the already-set timer. */ int pluggedType = intent.getIntExtra("plugged", 0); Log.d(TAG, "ACTION_BATTERY_CHANGED pluggedType: " + pluggedType); if (mScreenOff && shouldWifiStayAwake(stayAwakeConditions, mPluggedType) && !shouldWifiStayAwake(stayAwakeConditions, pluggedType)) { long triggerTime = System.currentTimeMillis() + idleMillis; Log.d(TAG, "setting ACTION_DEVICE_IDLE timer for " + idleMillis + "ms"); mAlarmManager.set(AlarmManager.RTC_WAKEUP, triggerTime, mIdleIntent); mPluggedType = pluggedType; return; Loading wifi/java/android/net/wifi/WifiStateTracker.java +29 −21 Original line number Diff line number Diff line Loading @@ -161,8 +161,8 @@ public class WifiStateTracker extends NetworkStateTracker { private WifiInfo mWifiInfo; private List<ScanResult> mScanResults; private WifiManager mWM; private boolean mHaveIPAddress; private boolean mObtainingIPAddress; private boolean mHaveIpAddress; private boolean mObtainingIpAddress; private boolean mTornDownByConnMgr; /** * A DISCONNECT event has been received, but processing it Loading Loading @@ -303,8 +303,8 @@ public class WifiStateTracker extends NetworkStateTracker { mWifiInfo = new WifiInfo(); mWifiMonitor = new WifiMonitor(this); mHaveIPAddress = false; mObtainingIPAddress = false; mHaveIpAddress = false; mObtainingIpAddress = false; setTornDownByConnMgr(false); mDisconnectPending = false; mScanResults = new ArrayList<ScanResult>(); Loading Loading @@ -443,6 +443,14 @@ public class WifiStateTracker extends NetworkStateTracker { return mWifiInfo.getSupplicantState() == SupplicantState.COMPLETED; } /** * Report whether the Wi-Fi connection has successfully acquired an IP address. * @return {@code true} if the Wi-Fi connection has been assigned an IP address. */ public boolean hasIpAddress() { return mHaveIpAddress; } /** * Send the tracker a notification that a user-entered password key * may be incorrect (i.e., caused authentication to fail). Loading Loading @@ -724,7 +732,7 @@ public class WifiStateTracker extends NetworkStateTracker { intent.putExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED, true); mContext.sendBroadcast(intent); } if (supplState == SupplicantState.COMPLETED && mHaveIPAddress) { if (supplState == SupplicantState.COMPLETED && mHaveIpAddress) { setDetailedState(DetailedState.CONNECTED); } else { setDetailedState(WifiInfo.getDetailedStateOf(supplState)); Loading Loading @@ -783,8 +791,8 @@ public class WifiStateTracker extends NetworkStateTracker { } setDetailedState(DetailedState.DISCONNECTED); setSupplicantState(SupplicantState.UNINITIALIZED); mHaveIPAddress = false; mObtainingIPAddress = false; mHaveIpAddress = false; mObtainingIpAddress = false; if (died) { mWM.setWifiEnabled(false); } Loading Loading @@ -954,7 +962,7 @@ public class WifiStateTracker extends NetworkStateTracker { } requestConnectionStatus(mWifiInfo); if (!(result.state == DetailedState.CONNECTED && (!mHaveIPAddress || mDisconnectPending))) { (!mHaveIpAddress || mDisconnectPending))) { setDetailedState(result.state); } Loading Loading @@ -983,7 +991,7 @@ public class WifiStateTracker extends NetworkStateTracker { mLastBssid = result.BSSID; mLastSsid = mWifiInfo.getSSID(); mLastNetworkId = result.networkId; if (mHaveIPAddress) { if (mHaveIpAddress) { setDetailedState(DetailedState.CONNECTED); } else { setDetailedState(DetailedState.OBTAINING_IPADDR); Loading Loading @@ -1051,8 +1059,8 @@ public class WifiStateTracker extends NetworkStateTracker { break; } mReconnectCount = 0; mHaveIPAddress = true; mObtainingIPAddress = false; mHaveIpAddress = true; mObtainingIpAddress = false; mWifiInfo.setIpAddress(mDhcpInfo.ipAddress); mLastSignalLevel = -1; // force update of signal strength if (mNetworkInfo.getDetailedState() != DetailedState.CONNECTED) { Loading @@ -1078,9 +1086,9 @@ public class WifiStateTracker extends NetworkStateTracker { // [ 0- 0] Interface configuration succeeded (1) or failed (0) EventLog.writeEvent(EVENTLOG_INTERFACE_CONFIGURATION_STATE_CHANGED, 0); mHaveIPAddress = false; mHaveIpAddress = false; mWifiInfo.setIpAddress(0); mObtainingIPAddress = false; mObtainingIpAddress = false; synchronized(this) { WifiNative.disconnectCommand(); } Loading Loading @@ -1156,18 +1164,18 @@ public class WifiStateTracker extends NetworkStateTracker { setPollTimer(); mLastSignalLevel = -1; if (!mUseStaticIp) { if (!mHaveIPAddress && !mObtainingIPAddress) { mObtainingIPAddress = true; if (!mHaveIpAddress && !mObtainingIpAddress) { mObtainingIpAddress = true; mDhcpTarget.sendEmptyMessage(EVENT_DHCP_START); } } else { int event; if (NetworkUtils.configureInterface(mInterfaceName, mDhcpInfo)) { mHaveIPAddress = true; mHaveIpAddress = true; event = EVENT_INTERFACE_CONFIGURATION_SUCCEEDED; if (LOCAL_LOGD) Log.v(TAG, "Static IP configuration succeeded"); } else { mHaveIPAddress = false; mHaveIpAddress = false; event = EVENT_INTERFACE_CONFIGURATION_FAILED; if (LOCAL_LOGD) Log.v(TAG, "Static IP configuration failed"); } Loading Loading @@ -1200,8 +1208,8 @@ public class WifiStateTracker extends NetworkStateTracker { * using the interface, stopping DHCP, and disabling the interface. */ public void resetInterface() { mHaveIPAddress = false; mObtainingIPAddress = false; mHaveIpAddress = false; mObtainingIpAddress = false; mWifiInfo.setIpAddress(0); /* Loading Loading @@ -1612,8 +1620,8 @@ public class WifiStateTracker extends NetworkStateTracker { } sb.append(LS).append(mWifiInfo).append(LS); sb.append(mDhcpInfo).append(LS); sb.append("haveIpAddress=").append(mHaveIPAddress). append(", obtainingIpAddress=").append(mObtainingIPAddress). sb.append("haveIpAddress=").append(mHaveIpAddress). append(", obtainingIpAddress=").append(mObtainingIpAddress). append(", scanModeActive=").append(mIsScanModeActive).append(LS). append("lastSignalLevel=").append(mLastSignalLevel). append(", explicitlyDisabled=").append(mTornDownByConnMgr); Loading Loading
services/java/com/android/server/WifiService.java +14 −2 Original line number Diff line number Diff line Loading @@ -1449,10 +1449,12 @@ public class WifiService extends IWifiManager.Stub { Settings.System.getInt(mContext.getContentResolver(), Settings.System.STAY_ON_WHILE_PLUGGED_IN, 0); if (action.equals(Intent.ACTION_SCREEN_ON)) { Log.d(TAG, "ACTION_SCREEN_ON"); mAlarmManager.cancel(mIdleIntent); mDeviceIdle = false; mScreenOff = false; } else if (action.equals(Intent.ACTION_SCREEN_OFF)) { Log.d(TAG, "ACTION_SCREEN_OFF"); mScreenOff = true; /* * Set a timer to put Wi-Fi to sleep, but only if the screen is off Loading @@ -1461,12 +1463,20 @@ public class WifiService extends IWifiManager.Stub { * or plugged in to AC). */ if (!shouldWifiStayAwake(stayAwakeConditions, mPluggedType)) { if (!mWifiStateTracker.hasIpAddress()) { // do not keep Wifi awake when screen is off if Wifi is not fully active mDeviceIdle = true; updateWifiState(); } else { long triggerTime = System.currentTimeMillis() + idleMillis; Log.d(TAG, "setting ACTION_DEVICE_IDLE timer for " + idleMillis + "ms"); mAlarmManager.set(AlarmManager.RTC_WAKEUP, triggerTime, mIdleIntent); } } /* we can return now -- there's nothing to do until we get the idle intent back */ return; } else if (action.equals(ACTION_DEVICE_IDLE)) { Log.d(TAG, "got ACTION_DEVICE_IDLE"); mDeviceIdle = true; } else if (action.equals(Intent.ACTION_BATTERY_CHANGED)) { /* Loading @@ -1477,9 +1487,11 @@ public class WifiService extends IWifiManager.Stub { * the already-set timer. */ int pluggedType = intent.getIntExtra("plugged", 0); Log.d(TAG, "ACTION_BATTERY_CHANGED pluggedType: " + pluggedType); if (mScreenOff && shouldWifiStayAwake(stayAwakeConditions, mPluggedType) && !shouldWifiStayAwake(stayAwakeConditions, pluggedType)) { long triggerTime = System.currentTimeMillis() + idleMillis; Log.d(TAG, "setting ACTION_DEVICE_IDLE timer for " + idleMillis + "ms"); mAlarmManager.set(AlarmManager.RTC_WAKEUP, triggerTime, mIdleIntent); mPluggedType = pluggedType; return; Loading
wifi/java/android/net/wifi/WifiStateTracker.java +29 −21 Original line number Diff line number Diff line Loading @@ -161,8 +161,8 @@ public class WifiStateTracker extends NetworkStateTracker { private WifiInfo mWifiInfo; private List<ScanResult> mScanResults; private WifiManager mWM; private boolean mHaveIPAddress; private boolean mObtainingIPAddress; private boolean mHaveIpAddress; private boolean mObtainingIpAddress; private boolean mTornDownByConnMgr; /** * A DISCONNECT event has been received, but processing it Loading Loading @@ -303,8 +303,8 @@ public class WifiStateTracker extends NetworkStateTracker { mWifiInfo = new WifiInfo(); mWifiMonitor = new WifiMonitor(this); mHaveIPAddress = false; mObtainingIPAddress = false; mHaveIpAddress = false; mObtainingIpAddress = false; setTornDownByConnMgr(false); mDisconnectPending = false; mScanResults = new ArrayList<ScanResult>(); Loading Loading @@ -443,6 +443,14 @@ public class WifiStateTracker extends NetworkStateTracker { return mWifiInfo.getSupplicantState() == SupplicantState.COMPLETED; } /** * Report whether the Wi-Fi connection has successfully acquired an IP address. * @return {@code true} if the Wi-Fi connection has been assigned an IP address. */ public boolean hasIpAddress() { return mHaveIpAddress; } /** * Send the tracker a notification that a user-entered password key * may be incorrect (i.e., caused authentication to fail). Loading Loading @@ -724,7 +732,7 @@ public class WifiStateTracker extends NetworkStateTracker { intent.putExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED, true); mContext.sendBroadcast(intent); } if (supplState == SupplicantState.COMPLETED && mHaveIPAddress) { if (supplState == SupplicantState.COMPLETED && mHaveIpAddress) { setDetailedState(DetailedState.CONNECTED); } else { setDetailedState(WifiInfo.getDetailedStateOf(supplState)); Loading Loading @@ -783,8 +791,8 @@ public class WifiStateTracker extends NetworkStateTracker { } setDetailedState(DetailedState.DISCONNECTED); setSupplicantState(SupplicantState.UNINITIALIZED); mHaveIPAddress = false; mObtainingIPAddress = false; mHaveIpAddress = false; mObtainingIpAddress = false; if (died) { mWM.setWifiEnabled(false); } Loading Loading @@ -954,7 +962,7 @@ public class WifiStateTracker extends NetworkStateTracker { } requestConnectionStatus(mWifiInfo); if (!(result.state == DetailedState.CONNECTED && (!mHaveIPAddress || mDisconnectPending))) { (!mHaveIpAddress || mDisconnectPending))) { setDetailedState(result.state); } Loading Loading @@ -983,7 +991,7 @@ public class WifiStateTracker extends NetworkStateTracker { mLastBssid = result.BSSID; mLastSsid = mWifiInfo.getSSID(); mLastNetworkId = result.networkId; if (mHaveIPAddress) { if (mHaveIpAddress) { setDetailedState(DetailedState.CONNECTED); } else { setDetailedState(DetailedState.OBTAINING_IPADDR); Loading Loading @@ -1051,8 +1059,8 @@ public class WifiStateTracker extends NetworkStateTracker { break; } mReconnectCount = 0; mHaveIPAddress = true; mObtainingIPAddress = false; mHaveIpAddress = true; mObtainingIpAddress = false; mWifiInfo.setIpAddress(mDhcpInfo.ipAddress); mLastSignalLevel = -1; // force update of signal strength if (mNetworkInfo.getDetailedState() != DetailedState.CONNECTED) { Loading @@ -1078,9 +1086,9 @@ public class WifiStateTracker extends NetworkStateTracker { // [ 0- 0] Interface configuration succeeded (1) or failed (0) EventLog.writeEvent(EVENTLOG_INTERFACE_CONFIGURATION_STATE_CHANGED, 0); mHaveIPAddress = false; mHaveIpAddress = false; mWifiInfo.setIpAddress(0); mObtainingIPAddress = false; mObtainingIpAddress = false; synchronized(this) { WifiNative.disconnectCommand(); } Loading Loading @@ -1156,18 +1164,18 @@ public class WifiStateTracker extends NetworkStateTracker { setPollTimer(); mLastSignalLevel = -1; if (!mUseStaticIp) { if (!mHaveIPAddress && !mObtainingIPAddress) { mObtainingIPAddress = true; if (!mHaveIpAddress && !mObtainingIpAddress) { mObtainingIpAddress = true; mDhcpTarget.sendEmptyMessage(EVENT_DHCP_START); } } else { int event; if (NetworkUtils.configureInterface(mInterfaceName, mDhcpInfo)) { mHaveIPAddress = true; mHaveIpAddress = true; event = EVENT_INTERFACE_CONFIGURATION_SUCCEEDED; if (LOCAL_LOGD) Log.v(TAG, "Static IP configuration succeeded"); } else { mHaveIPAddress = false; mHaveIpAddress = false; event = EVENT_INTERFACE_CONFIGURATION_FAILED; if (LOCAL_LOGD) Log.v(TAG, "Static IP configuration failed"); } Loading Loading @@ -1200,8 +1208,8 @@ public class WifiStateTracker extends NetworkStateTracker { * using the interface, stopping DHCP, and disabling the interface. */ public void resetInterface() { mHaveIPAddress = false; mObtainingIPAddress = false; mHaveIpAddress = false; mObtainingIpAddress = false; mWifiInfo.setIpAddress(0); /* Loading Loading @@ -1612,8 +1620,8 @@ public class WifiStateTracker extends NetworkStateTracker { } sb.append(LS).append(mWifiInfo).append(LS); sb.append(mDhcpInfo).append(LS); sb.append("haveIpAddress=").append(mHaveIPAddress). append(", obtainingIpAddress=").append(mObtainingIPAddress). sb.append("haveIpAddress=").append(mHaveIpAddress). append(", obtainingIpAddress=").append(mObtainingIpAddress). append(", scanModeActive=").append(mIsScanModeActive).append(LS). append("lastSignalLevel=").append(mLastSignalLevel). append(", explicitlyDisabled=").append(mTornDownByConnMgr); Loading