summaryrefslogtreecommitdiffstats
path: root/services/java
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-12-07 15:27:02 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-12-07 15:27:02 -0800
commit9d3cb9bfc6d7a5f340d2dd8132b201b933687564 (patch)
treeea9fd9ebd31ed1b7f1cba4f9d21764eb5409d9c7 /services/java
parent90d1b745ec4a7ccd15cdcc185420bf2000b4f7a3 (diff)
parent084c665421502b13271e94bd0a342b0ddbbaa7ca (diff)
downloadframeworks_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.java29
-rw-r--r--services/java/com/android/server/status/StatusBarPolicy.java21
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;
}