diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-12-07 15:27:02 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-12-07 15:27:02 -0800 |
commit | 9d3cb9bfc6d7a5f340d2dd8132b201b933687564 (patch) | |
tree | ea9fd9ebd31ed1b7f1cba4f9d21764eb5409d9c7 /services/java | |
parent | 90d1b745ec4a7ccd15cdcc185420bf2000b4f7a3 (diff) | |
parent | 084c665421502b13271e94bd0a342b0ddbbaa7ca (diff) | |
download | frameworks_base-9d3cb9bfc6d7a5f340d2dd8132b201b933687564.zip frameworks_base-9d3cb9bfc6d7a5f340d2dd8132b201b933687564.tar.gz frameworks_base-9d3cb9bfc6d7a5f340d2dd8132b201b933687564.tar.bz2 |
Merge change I204e4787 into eclair
* changes:
Fix updating Bluetooth icon on status bar and for Wifi.
Diffstat (limited to 'services/java')
-rw-r--r-- | services/java/com/android/server/WifiService.java | 29 | ||||
-rw-r--r-- | services/java/com/android/server/status/StatusBarPolicy.java | 21 |
2 files changed, 29 insertions, 21 deletions
diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java index 32ad6c6..b29e769 100644 --- a/services/java/com/android/server/WifiService.java +++ b/services/java/com/android/server/WifiService.java @@ -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); diff --git a/services/java/com/android/server/status/StatusBarPolicy.java b/services/java/com/android/server/status/StatusBarPolicy.java index 2b9d18f..bee0930 100644 --- a/services/java/com/android/server/status/StatusBarPolicy.java +++ b/services/java/com/android/server/status/StatusBarPolicy.java @@ -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; } |