am 47cc8112: am 9d3cb9bf: Merge change I204e4787 into eclair

Merge commit '47cc8112c3f77637ef408ef18e48d146e8250a27' into eclair-mr2-plus-aosp

* commit '47cc8112c3f77637ef408ef18e48d146e8250a27':
  Fix updating Bluetooth icon on status bar and for Wifi.
This commit is contained in:
Jaikumar Ganesh
2009-12-07 15:36:19 -08:00
committed by Android Git Automerger
2 changed files with 29 additions and 21 deletions

View File

@@ -25,6 +25,7 @@ import static android.net.wifi.WifiManager.WIFI_STATE_UNKNOWN;
import android.app.AlarmManager; import android.app.AlarmManager;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.bluetooth.BluetoothA2dp; import android.bluetooth.BluetoothA2dp;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
@@ -62,6 +63,7 @@ import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.io.FileDescriptor; import java.io.FileDescriptor;
import java.io.PrintWriter; import java.io.PrintWriter;
@@ -1380,11 +1382,16 @@ public class WifiService extends IWifiManager.Stub {
} }
mPluggedType = pluggedType; mPluggedType = pluggedType;
} else if (action.equals(BluetoothA2dp.ACTION_SINK_STATE_CHANGED)) { } else if (action.equals(BluetoothA2dp.ACTION_SINK_STATE_CHANGED)) {
boolean isBluetoothPlaying = BluetoothA2dp a2dp = new BluetoothA2dp(mContext);
intent.getIntExtra( Set<BluetoothDevice> sinks = a2dp.getConnectedSinks();
BluetoothA2dp.EXTRA_SINK_STATE, boolean isBluetoothPlaying = false;
BluetoothA2dp.STATE_DISCONNECTED) == BluetoothA2dp.STATE_PLAYING; for (BluetoothDevice sink : sinks) {
if (a2dp.getSinkState(sink) == BluetoothA2dp.STATE_PLAYING) {
isBluetoothPlaying = true;
}
}
mWifiStateTracker.setBluetoothScanMode(isBluetoothPlaying); mWifiStateTracker.setBluetoothScanMode(isBluetoothPlaying);
} else { } else {
return; return;
} }

View File

@@ -283,7 +283,7 @@ public class StatusBarPolicy {
private IBinder mBluetoothIcon; private IBinder mBluetoothIcon;
private IconData mBluetoothData; private IconData mBluetoothData;
private int mBluetoothHeadsetState; private int mBluetoothHeadsetState;
private int mBluetoothA2dpState; private boolean mBluetoothA2dpConnected;
private int mBluetoothPbapState; private int mBluetoothPbapState;
private boolean mBluetoothEnabled; private boolean mBluetoothEnabled;
@@ -455,7 +455,7 @@ public class StatusBarPolicy {
} else { } else {
mBluetoothEnabled = false; mBluetoothEnabled = false;
} }
mBluetoothA2dpState = BluetoothA2dp.STATE_DISCONNECTED; mBluetoothA2dpConnected = false;
mBluetoothHeadsetState = BluetoothHeadset.STATE_DISCONNECTED; mBluetoothHeadsetState = BluetoothHeadset.STATE_DISCONNECTED;
mBluetoothPbapState = BluetoothPbap.STATE_DISCONNECTED; mBluetoothPbapState = BluetoothPbap.STATE_DISCONNECTED;
mService.setIconVisibility(mBluetoothIcon, mBluetoothEnabled); mService.setIconVisibility(mBluetoothIcon, mBluetoothEnabled);
@@ -1083,7 +1083,6 @@ public class StatusBarPolicy {
private final void updateBluetooth(Intent intent) { private final void updateBluetooth(Intent intent) {
int iconId = com.android.internal.R.drawable.stat_sys_data_bluetooth; int iconId = com.android.internal.R.drawable.stat_sys_data_bluetooth;
String action = intent.getAction(); String action = intent.getAction();
if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) { if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR); int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
@@ -1092,8 +1091,12 @@ public class StatusBarPolicy {
mBluetoothHeadsetState = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE, mBluetoothHeadsetState = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE,
BluetoothHeadset.STATE_ERROR); BluetoothHeadset.STATE_ERROR);
} else if (action.equals(BluetoothA2dp.ACTION_SINK_STATE_CHANGED)) { } else if (action.equals(BluetoothA2dp.ACTION_SINK_STATE_CHANGED)) {
mBluetoothA2dpState = intent.getIntExtra(BluetoothA2dp.EXTRA_SINK_STATE, BluetoothA2dp a2dp = new BluetoothA2dp(mContext);
BluetoothA2dp.STATE_DISCONNECTED); if (a2dp.getConnectedSinks().size() != 0) {
mBluetoothA2dpConnected = true;
} else {
mBluetoothA2dpConnected = false;
}
} else if (action.equals(BluetoothPbap.PBAP_STATE_CHANGED_ACTION)) { } else if (action.equals(BluetoothPbap.PBAP_STATE_CHANGED_ACTION)) {
mBluetoothPbapState = intent.getIntExtra(BluetoothPbap.PBAP_STATE, mBluetoothPbapState = intent.getIntExtra(BluetoothPbap.PBAP_STATE,
BluetoothPbap.STATE_DISCONNECTED); BluetoothPbap.STATE_DISCONNECTED);
@@ -1101,9 +1104,7 @@ public class StatusBarPolicy {
return; return;
} }
if (mBluetoothHeadsetState == BluetoothHeadset.STATE_CONNECTED || if (mBluetoothHeadsetState == BluetoothHeadset.STATE_CONNECTED || mBluetoothA2dpConnected ||
mBluetoothA2dpState == BluetoothA2dp.STATE_CONNECTED ||
mBluetoothA2dpState == BluetoothA2dp.STATE_PLAYING ||
mBluetoothPbapState == BluetoothPbap.STATE_CONNECTED) { mBluetoothPbapState == BluetoothPbap.STATE_CONNECTED) {
iconId = com.android.internal.R.drawable.stat_sys_data_bluetooth_connected; iconId = com.android.internal.R.drawable.stat_sys_data_bluetooth_connected;
} }