Merge change I204e4787 into eclair
* changes: Fix updating Bluetooth icon on status bar and for Wifi.
This commit is contained in:
@@ -25,6 +25,7 @@ import static android.net.wifi.WifiManager.WIFI_STATE_UNKNOWN;
|
||||
import android.app.AlarmManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.bluetooth.BluetoothA2dp;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
@@ -62,6 +63,7 @@ import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Pattern;
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
@@ -109,7 +111,7 @@ public class WifiService extends IWifiManager.Stub {
|
||||
private int mMulticastDisabled;
|
||||
|
||||
private final IBatteryStats mBatteryStats;
|
||||
|
||||
|
||||
/**
|
||||
* See {@link Settings.Gservices#WIFI_IDLE_MS}. This is the default value if a
|
||||
* Settings.Gservices value is not present. This timeout value is chosen as
|
||||
@@ -161,7 +163,7 @@ public class WifiService extends IWifiManager.Stub {
|
||||
* Last UID that asked to enable WIFI.
|
||||
*/
|
||||
private int mLastEnableUid = Process.myUid();
|
||||
|
||||
|
||||
/**
|
||||
* Number of allowed radio frequency channels in various regulatory domains.
|
||||
* This list is sufficient for 802.11b/g networks (2.4GHz range).
|
||||
@@ -176,7 +178,7 @@ public class WifiService extends IWifiManager.Stub {
|
||||
mWifiStateTracker = tracker;
|
||||
mWifiStateTracker.enableRssiPolling(true);
|
||||
mBatteryStats = BatteryStatsService.getService();
|
||||
|
||||
|
||||
mScanResultCache = new LinkedHashMap<String, ScanResult>(
|
||||
SCAN_RESULT_CACHE_SIZE, 0.75f, true) {
|
||||
/*
|
||||
@@ -395,7 +397,7 @@ public class WifiService extends IWifiManager.Stub {
|
||||
} finally {
|
||||
Binder.restoreCallingIdentity(ident);
|
||||
}
|
||||
|
||||
|
||||
// Update state
|
||||
mWifiState = wifiState;
|
||||
|
||||
@@ -1365,11 +1367,16 @@ public class WifiService extends IWifiManager.Stub {
|
||||
}
|
||||
mPluggedType = pluggedType;
|
||||
} else if (action.equals(BluetoothA2dp.ACTION_SINK_STATE_CHANGED)) {
|
||||
boolean isBluetoothPlaying =
|
||||
intent.getIntExtra(
|
||||
BluetoothA2dp.EXTRA_SINK_STATE,
|
||||
BluetoothA2dp.STATE_DISCONNECTED) == BluetoothA2dp.STATE_PLAYING;
|
||||
BluetoothA2dp a2dp = new BluetoothA2dp(mContext);
|
||||
Set<BluetoothDevice> sinks = a2dp.getConnectedSinks();
|
||||
boolean isBluetoothPlaying = false;
|
||||
for (BluetoothDevice sink : sinks) {
|
||||
if (a2dp.getSinkState(sink) == BluetoothA2dp.STATE_PLAYING) {
|
||||
isBluetoothPlaying = true;
|
||||
}
|
||||
}
|
||||
mWifiStateTracker.setBluetoothScanMode(isBluetoothPlaying);
|
||||
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
@@ -1381,7 +1388,7 @@ public class WifiService extends IWifiManager.Stub {
|
||||
* Determines whether the Wi-Fi chipset should stay awake or be put to
|
||||
* sleep. Looks at the setting for the sleep policy and the current
|
||||
* conditions.
|
||||
*
|
||||
*
|
||||
* @see #shouldDeviceStayAwake(int, int)
|
||||
*/
|
||||
private boolean shouldWifiStayAwake(int stayAwakeConditions, int pluggedType) {
|
||||
@@ -1400,7 +1407,7 @@ public class WifiService extends IWifiManager.Stub {
|
||||
return shouldDeviceStayAwake(stayAwakeConditions, pluggedType);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Determine whether the bit value corresponding to {@code pluggedType} is set in
|
||||
* the bit string {@code stayAwakeConditions}. Because a {@code pluggedType} value
|
||||
@@ -1489,7 +1496,7 @@ public class WifiService extends IWifiManager.Stub {
|
||||
intentFilter.addAction(BluetoothA2dp.ACTION_SINK_STATE_CHANGED);
|
||||
mContext.registerReceiver(mReceiver, intentFilter);
|
||||
}
|
||||
|
||||
|
||||
private boolean isAirplaneSensitive() {
|
||||
String airplaneModeRadios = Settings.System.getString(mContext.getContentResolver(),
|
||||
Settings.System.AIRPLANE_MODE_RADIOS);
|
||||
|
||||
@@ -283,7 +283,7 @@ public class StatusBarPolicy {
|
||||
private IBinder mBluetoothIcon;
|
||||
private IconData mBluetoothData;
|
||||
private int mBluetoothHeadsetState;
|
||||
private int mBluetoothA2dpState;
|
||||
private boolean mBluetoothA2dpConnected;
|
||||
private int mBluetoothPbapState;
|
||||
private boolean mBluetoothEnabled;
|
||||
|
||||
@@ -455,7 +455,7 @@ public class StatusBarPolicy {
|
||||
} else {
|
||||
mBluetoothEnabled = false;
|
||||
}
|
||||
mBluetoothA2dpState = BluetoothA2dp.STATE_DISCONNECTED;
|
||||
mBluetoothA2dpConnected = false;
|
||||
mBluetoothHeadsetState = BluetoothHeadset.STATE_DISCONNECTED;
|
||||
mBluetoothPbapState = BluetoothPbap.STATE_DISCONNECTED;
|
||||
mService.setIconVisibility(mBluetoothIcon, mBluetoothEnabled);
|
||||
@@ -636,12 +636,12 @@ public class StatusBarPolicy {
|
||||
int flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
|
||||
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
|
||||
| WindowManager.LayoutParams.FLAG_DIM_BEHIND;
|
||||
|
||||
|
||||
if (!mContext.getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_sf_slowBlur)) {
|
||||
flags |= WindowManager.LayoutParams.FLAG_BLUR_BEHIND;
|
||||
}
|
||||
|
||||
|
||||
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT,
|
||||
@@ -1083,7 +1083,6 @@ public class StatusBarPolicy {
|
||||
|
||||
private final void updateBluetooth(Intent intent) {
|
||||
int iconId = com.android.internal.R.drawable.stat_sys_data_bluetooth;
|
||||
|
||||
String action = intent.getAction();
|
||||
if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
|
||||
int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
|
||||
@@ -1092,8 +1091,12 @@ public class StatusBarPolicy {
|
||||
mBluetoothHeadsetState = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE,
|
||||
BluetoothHeadset.STATE_ERROR);
|
||||
} else if (action.equals(BluetoothA2dp.ACTION_SINK_STATE_CHANGED)) {
|
||||
mBluetoothA2dpState = intent.getIntExtra(BluetoothA2dp.EXTRA_SINK_STATE,
|
||||
BluetoothA2dp.STATE_DISCONNECTED);
|
||||
BluetoothA2dp a2dp = new BluetoothA2dp(mContext);
|
||||
if (a2dp.getConnectedSinks().size() != 0) {
|
||||
mBluetoothA2dpConnected = true;
|
||||
} else {
|
||||
mBluetoothA2dpConnected = false;
|
||||
}
|
||||
} else if (action.equals(BluetoothPbap.PBAP_STATE_CHANGED_ACTION)) {
|
||||
mBluetoothPbapState = intent.getIntExtra(BluetoothPbap.PBAP_STATE,
|
||||
BluetoothPbap.STATE_DISCONNECTED);
|
||||
@@ -1101,9 +1104,7 @@ public class StatusBarPolicy {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mBluetoothHeadsetState == BluetoothHeadset.STATE_CONNECTED ||
|
||||
mBluetoothA2dpState == BluetoothA2dp.STATE_CONNECTED ||
|
||||
mBluetoothA2dpState == BluetoothA2dp.STATE_PLAYING ||
|
||||
if (mBluetoothHeadsetState == BluetoothHeadset.STATE_CONNECTED || mBluetoothA2dpConnected ||
|
||||
mBluetoothPbapState == BluetoothPbap.STATE_CONNECTED) {
|
||||
iconId = com.android.internal.R.drawable.stat_sys_data_bluetooth_connected;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user