Merge "DO NOT MERGE Enable all networks on screen on" into gingerbread
This commit is contained in:
committed by
Android (Google) Code Review
commit
80db4381c0
@ -171,6 +171,7 @@ public class WifiService extends IWifiManager.Stub {
|
|||||||
private static final int MESSAGE_START_ACCESS_POINT = 6;
|
private static final int MESSAGE_START_ACCESS_POINT = 6;
|
||||||
private static final int MESSAGE_STOP_ACCESS_POINT = 7;
|
private static final int MESSAGE_STOP_ACCESS_POINT = 7;
|
||||||
private static final int MESSAGE_SET_CHANNELS = 8;
|
private static final int MESSAGE_SET_CHANNELS = 8;
|
||||||
|
private static final int MESSAGE_ENABLE_NETWORKS = 9;
|
||||||
|
|
||||||
|
|
||||||
private final WifiHandler mWifiHandler;
|
private final WifiHandler mWifiHandler;
|
||||||
@ -1663,6 +1664,12 @@ public class WifiService extends IWifiManager.Stub {
|
|||||||
mDeviceIdle = false;
|
mDeviceIdle = false;
|
||||||
mScreenOff = false;
|
mScreenOff = false;
|
||||||
mWifiStateTracker.enableRssiPolling(true);
|
mWifiStateTracker.enableRssiPolling(true);
|
||||||
|
/* DHCP or other temporary failures in the past can prevent
|
||||||
|
* a disabled network from being connected to, enable on screen on
|
||||||
|
*/
|
||||||
|
if (mWifiStateTracker.isAnyNetworkDisabled()) {
|
||||||
|
sendEnableNetworksMessage();
|
||||||
|
}
|
||||||
} else if (action.equals(Intent.ACTION_SCREEN_OFF)) {
|
} else if (action.equals(Intent.ACTION_SCREEN_OFF)) {
|
||||||
Slog.d(TAG, "ACTION_SCREEN_OFF");
|
Slog.d(TAG, "ACTION_SCREEN_OFF");
|
||||||
mScreenOff = true;
|
mScreenOff = true;
|
||||||
@ -1794,6 +1801,10 @@ public class WifiService extends IWifiManager.Stub {
|
|||||||
uid, 0, wifiConfig).sendToTarget();
|
uid, 0, wifiConfig).sendToTarget();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendEnableNetworksMessage() {
|
||||||
|
Message.obtain(mWifiHandler, MESSAGE_ENABLE_NETWORKS).sendToTarget();
|
||||||
|
}
|
||||||
|
|
||||||
private void updateWifiState() {
|
private void updateWifiState() {
|
||||||
// send a message so it's all serialized
|
// send a message so it's all serialized
|
||||||
Message.obtain(mWifiHandler, MESSAGE_UPDATE_STATE, 0, 0).sendToTarget();
|
Message.obtain(mWifiHandler, MESSAGE_UPDATE_STATE, 0, 0).sendToTarget();
|
||||||
@ -1956,6 +1967,10 @@ public class WifiService extends IWifiManager.Stub {
|
|||||||
setNumAllowedChannelsBlocking(msg.arg1, msg.arg2 == 1);
|
setNumAllowedChannelsBlocking(msg.arg1, msg.arg2 == 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MESSAGE_ENABLE_NETWORKS:
|
||||||
|
mWifiStateTracker.enableAllNetworks(getConfiguredNetworks());
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Track the state of Wifi connectivity. All event handling is done here,
|
* Track the state of Wifi connectivity. All event handling is done here,
|
||||||
@ -216,6 +217,9 @@ public class WifiStateTracker extends NetworkStateTracker {
|
|||||||
private boolean mUseStaticIp = false;
|
private boolean mUseStaticIp = false;
|
||||||
private int mReconnectCount;
|
private int mReconnectCount;
|
||||||
|
|
||||||
|
/* Tracks if any network in the configuration is disabled */
|
||||||
|
private AtomicBoolean mIsAnyNetworkDisabled = new AtomicBoolean(false);
|
||||||
|
|
||||||
// used to store the (non-persisted) num determined during device boot
|
// used to store the (non-persisted) num determined during device boot
|
||||||
// (from mcc or other phone info) before the driver is started.
|
// (from mcc or other phone info) before the driver is started.
|
||||||
private int mNumAllowedChannels = 0;
|
private int mNumAllowedChannels = 0;
|
||||||
@ -814,6 +818,7 @@ public class WifiStateTracker extends NetworkStateTracker {
|
|||||||
mTornDownByConnMgr = false;
|
mTornDownByConnMgr = false;
|
||||||
mLastBssid = null;
|
mLastBssid = null;
|
||||||
mLastSsid = null;
|
mLastSsid = null;
|
||||||
|
mIsAnyNetworkDisabled.set(false);
|
||||||
requestConnectionInfo();
|
requestConnectionInfo();
|
||||||
SupplicantState supplState = mWifiInfo.getSupplicantState();
|
SupplicantState supplState = mWifiInfo.getSupplicantState();
|
||||||
/**
|
/**
|
||||||
@ -1585,6 +1590,10 @@ public class WifiStateTracker extends NetworkStateTracker {
|
|||||||
mWifiState.set(wifiState);
|
mWifiState.set(wifiState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isAnyNetworkDisabled() {
|
||||||
|
return mIsAnyNetworkDisabled.get();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The WifiNative interface functions are listed below.
|
* The WifiNative interface functions are listed below.
|
||||||
* The only native call that is not synchronized on
|
* The only native call that is not synchronized on
|
||||||
@ -1785,9 +1794,27 @@ public class WifiStateTracker extends NetworkStateTracker {
|
|||||||
if (mWifiState.get() != WIFI_STATE_ENABLED) {
|
if (mWifiState.get() != WIFI_STATE_ENABLED) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (disableOthers) mIsAnyNetworkDisabled.set(true);
|
||||||
return WifiNative.enableNetworkCommand(netId, disableOthers);
|
return WifiNative.enableNetworkCommand(netId, disableOthers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable all networks
|
||||||
|
*
|
||||||
|
* @param networks list of configured networks
|
||||||
|
*/
|
||||||
|
public synchronized void enableAllNetworks(List<WifiConfiguration> networks) {
|
||||||
|
if (mWifiState.get() != WIFI_STATE_ENABLED) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mIsAnyNetworkDisabled.set(false);
|
||||||
|
for (WifiConfiguration config : networks) {
|
||||||
|
if (config.status == WifiConfiguration.Status.DISABLED) {
|
||||||
|
WifiNative.enableNetworkCommand(config.networkId, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Disable a network
|
* Disable a network
|
||||||
*
|
*
|
||||||
@ -1798,6 +1825,7 @@ public class WifiStateTracker extends NetworkStateTracker {
|
|||||||
if (mWifiState.get() != WIFI_STATE_ENABLED) {
|
if (mWifiState.get() != WIFI_STATE_ENABLED) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
mIsAnyNetworkDisabled.set(true);
|
||||||
return WifiNative.disableNetworkCommand(netId);
|
return WifiNative.disableNetworkCommand(netId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user