final Resources r = mContext.getResources();
state.iconId = cb.noSim
? R.drawable.stat_sys_no_sim
- : cb.enabled && (cb.mobileSignalIconId > 0)
+ : cb.enabled && (cb.mobileSignalIconId > 0) && !cb.airplaneModeEnabled
? cb.mobileSignalIconId
: R.drawable.ic_qs_signal_no_signal;
- state.overlayIconId = cb.enabled && (cb.dataTypeIconId > 0) && !cb.wifiEnabled
+ state.overlayIconId = cb.enabled && (cb.dataTypeIconId > 0) && !cb.wifiConnected
? cb.dataTypeIconId
: 0;
state.filter = state.iconId != R.drawable.stat_sys_no_sim;
private static final class CallbackInfo {
boolean enabled;
boolean wifiEnabled;
+ boolean wifiConnected;
+ boolean airplaneModeEnabled;
int mobileSignalIconId;
String signalContentDescription;
int dataTypeIconId;
private final NetworkSignalChangedCallback mCallback = new NetworkSignalChangedCallback() {
private boolean mWifiEnabled;
+ private boolean mWifiConnected;
+ private boolean mAirplaneModeEnabled;
@Override
- public void onWifiSignalChanged(boolean enabled, int wifiSignalIconId,
+ public void onWifiSignalChanged(boolean enabled, boolean connected, int wifiSignalIconId,
boolean activityIn, boolean activityOut,
String wifiSignalContentDescriptionId, String description) {
mWifiEnabled = enabled;
+ mWifiConnected = connected;
}
@Override
final CallbackInfo info = new CallbackInfo(); // TODO pool?
info.enabled = enabled;
info.wifiEnabled = mWifiEnabled;
+ info.wifiConnected = mWifiConnected;
+ info.airplaneModeEnabled = mAirplaneModeEnabled;
info.mobileSignalIconId = mobileSignalIconId;
info.signalContentDescription = mobileSignalContentDescriptionId;
info.dataTypeIconId = dataTypeIconId;
@Override
public void onAirplaneModeChanged(boolean enabled) {
- // noop
+ mAirplaneModeEnabled = enabled;
}
public void onMobileDataEnabled(boolean enabled) {
private static final class CallbackInfo {
boolean enabled;
+ boolean connected;
int wifiSignalIconId;
String enabledDesc;
boolean activityIn;
public String toString() {
return new StringBuilder("CallbackInfo[")
.append("enabled=").append(enabled)
+ .append(",connected=").append(connected)
.append(",wifiSignalIconId=").append(wifiSignalIconId)
.append(",enabledDesc=").append(enabledDesc)
.append(",activityIn=").append(activityIn)
private final NetworkSignalChangedCallback mCallback = new NetworkSignalChangedCallback() {
@Override
- public void onWifiSignalChanged(boolean enabled, int wifiSignalIconId,
+ public void onWifiSignalChanged(boolean enabled, boolean connected, int wifiSignalIconId,
boolean activityIn, boolean activityOut,
String wifiSignalContentDescriptionId, String description) {
if (DEBUG) Log.d(TAG, "onWifiSignalChanged enabled=" + enabled);
final CallbackInfo info = new CallbackInfo();
info.enabled = enabled;
+ info.connected = connected;
info.wifiSignalIconId = wifiSignalIconId;
info.enabledDesc = description;
info.activityIn = activityIn;
void setWifiEnabled(boolean enabled);
public interface NetworkSignalChangedCallback {
- void onWifiSignalChanged(boolean enabled, int wifiSignalIconId,
+ void onWifiSignalChanged(boolean enabled, boolean connected, int wifiSignalIconId,
boolean activityIn, boolean activityOut,
String wifiSignalContentDescriptionId, String description);
void onMobileDataSignalChanged(boolean enabled, int mobileSignalIconId,
boolean wifiOut = wifiEnabled && mWifiSsid != null
&& (mWifiActivity == WifiManager.DATA_ACTIVITY_INOUT
|| mWifiActivity == WifiManager.DATA_ACTIVITY_OUT);
- cb.onWifiSignalChanged(mWifiEnabled, mQSWifiIconId, wifiIn, wifiOut,
+ cb.onWifiSignalChanged(mWifiEnabled, mWifiConnected, mQSWifiIconId, wifiIn, wifiOut,
mContentDescriptionWifi, wifiDesc);
boolean mobileIn = mDataConnected && (mDataActivity == TelephonyManager.DATA_ACTIVITY_INOUT